如何评估 scikit 学习逻辑回归的成本函数



使用 sklearn.linear_model.LogisticRegression 拟合训练数据集后,我想获得训练数据集和交叉验证数据集的成本函数的值。

是否可以让sklearn简单地给我它最小化的函数的值(在最小拟合度)?

该函数在文档中 http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression 中说明(取决于所选的正则化)。但是我找不到如何让sklearn给我这个函数的值。

我本以为这就是LogisticRegression.score所做的,但这只返回准确性(其预测正确分类的数据点的比例)。

我找到了sklearn.metrics.log_loss,但当然这不是最小化的实际功能。

不幸的是,没有"好"的方法可以做到这一点,但是 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/logistic.py 中有一个私有函数 _logistic_loss(w, X, y, alpha, sample_weight=None),因此您可以手动调用它

from sklearn.linear_model.logistic import _logistic_loss
print _logistic_loss(clf.coef_, X, y, 1 / clf.C)

clf是你的学LogisticRegression

我使用以下代码来计算成本值。

import numpy as np
cost = np.sum((reg.predict(x) - y) ** 2)

reg在哪里是你的学LogisticRegression

我有以下建议。您可以将逻辑回归的损失函数的代码编写为函数。获取预测的数据标签后,可以撤销定义的函数以计算成本值。

相关内容

  • 没有找到相关文章