如何获得逻辑回归中的权重向量?

Posted

技术标签:

【中文标题】如何获得逻辑回归中的权重向量?【英文标题】:How to get the weight vector in Logistic Regression? 【发布时间】:2018-04-24 21:18:58 【问题描述】:

我有一个 X 特征矩阵和一个 y 标签矩阵,我正在使用二元逻辑回归,如何在给定矩阵 X 特征和 Y 标签矩阵的情况下获得权重向量 w。我对如何在 sklean 中实现这一点感到有些困惑。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果我理解正确,您正在寻找the coef_ attribute:

lr = LogisticRegression(C=1e5)
lr.fit(X, Y)

print(lr.coef_) # returns a matrix of weights (coefficients)

coef_ 属性的形状应该是:(# of classes, # of features)

如果您还需要截距(AKA 偏差)列,请使用:

np.hstack((clf.intercept_[:,None], clf.coef_))

这会给你一个形状数组:(n_classes, n_features + 1)

【讨论】:

偏差和权重的默认值是多少?【参考方案2】:
clf_bow_perb = LogisticRegression(C= 10, penalty= 'l2')
clf_bow_perb.fit(X_1,y_1)
y_pred = clf_bow_perb.predict(X_1)
print("Accuracy on test set: %0.3f%%"%(accuracy_score(y_1, y_pred)*100))
print("Non Zero weights:",np.count_nonzero(clf.coef_))

【讨论】:

以上是关于如何获得逻辑回归中的权重向量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sklearn逻辑回归中设置样本权重?

如何计算逻辑回归的权重?

逻辑回归和SVM的区别是啥?各适用于解决啥问题

逻辑回归寻找最佳θ向量

为啥 sklearn 逻辑回归正则化权重和截距?

python逻辑回归怎么求正系数