在使用 sklearn.linear_model.LogisticRegression
拟合训练数据集后,我想获得训练数据集和交叉验证数据集的成本函数值。
是否可以让 sklearn
简单地给我它最小化的函数的值(在拟合最小值时)?
该函数在 http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression 的文档中说明。 (取决于选择的正则化)。但是我找不到如何让 sklearn
给我这个函数的值。
我原以为这就是 LogisticRegression.score
所做的,但它只是返回准确度(其预测正确分类的数据点的分数)。
我找到了sklearn.metrics.log_loss
,但这当然不是被最小化的实际函数。
最佳答案
不幸的是,没有“好的”方法来做到这一点,但是有一个私有(private)函数
_logistic_loss(w, X, y, alpha, sample_weight=None)
在 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/logistic.py , 因此你可以手动调用它
from sklearn.linear_model.logistic import _logistic_loss
print _logistic_loss(clf.coef_, X, y, 1 / clf.C)
其中 clf
是您学习的 LogisticRegression
关于python - 如何评估 scikit 学习 LogisticRegression 的成本函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956902/