编程语言
首页 > 编程语言> > Python SKLearn:逻辑回归概率

Python SKLearn:逻辑回归概率

作者:互联网

我正在使用Python SKLearn模块执行逻辑回归.我有一个因变量矢量Y(从M个类中的1个取值)和独立变量矩阵X(具有N个特征).我的代码是

        LR = LogisticRegression()
        LR.fit(X,np.resize(Y,(len(Y))))

我的问题是,LR.coef_和LR.intercept_代表什么.我最初以为他们持有的值intercept(i)和coef(i,j)s.t.

log(p(1)/(1-p(1))) = intercept(1) + coef(1,1)*X1 + ... coef(1,N)*XN
.
.
.
log(p(M)/(1-p(M))) = intercept(M) + coef(M,1)*X1 + ... coef(M,N)*XN

其中p(i)是具有特征[X1,…,XN]的观察在类i中的概率.但是当我尝试转换

V = X*LR.coef_.transpose()
U = V + LR.intercept_
A = np.exp(U)
A/(1+A)

因此,A是X中观测值的p(1)… p(M)的矩阵.该值应与

LR.predict_proba(X)

但是它们很接近,但又有所不同.为什么是这样?

解决方法:

coef_和intercept_属性表示您的想法,因为您忘记了归一化,所以概率计算不可用:之后

P = A / (1 + A)

你应该做

P /= P.sum(axis=1).reshape((-1, 1))

重现scikit-learn algorithm.

标签:logistic-regression,scikit-learn,machine-learning,python
来源: https://codeday.me/bug/20191122/2059446.html