我正在使用Python的SKLearn模块进行逻辑回归。我有一个依赖变量向量Y
(取M类之一的值)和独立变量矩阵X
(具有N个特征)。我的代码如下:
LR = LogisticRegression()
LR.fit(X,np.resize(Y,(len(Y))))
我的问题是,
LR.coef_
和LR.intercept_
代表什么。我最初认为它们保存了值intercept(i)
和coef(i,j)
,其中i和j是特征的索引。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
就是矩阵p(1) ... p(M)
对应于观测值X
的矩阵。这个值应该与以下值相同:
LR.predict_proba(X)
然而它们很相似,但又不同。为什么呢?
P = A/(1+A)
,那么P / P.sum(axis=1).reshape((-1, 1))
是否与predict_proba
的输出完全相同? - Fred Foo