Как оценить функцию стоимости для scikit выучить LogisticRegression?
После использования sklearn.linear_model.LogisticRegression
чтобы соответствовать набору данных обучения, я хотел бы получить значение функции стоимости для набора данных обучения и набора данных перекрестной проверки.
Возможно ли иметь sklearn
просто дайте мне значение (как минимум) функции, которую она свернула?
Функция указана в документации по адресу http://scikit-learn.org/stable/modules/linear_model.html (в зависимости от выбранной регуляризации). Но я не могу найти, как получить sklearn
чтобы дать мне значение этой функции.
Я бы подумал вот что LogisticRegression.score
делает, но это просто возвращает точность (доля точек данных, которые ее прогноз правильно классифицирует).
я нашел sklearn.metrics.log_loss
, но, конечно, это не фактическая функция минимизируется.
3 ответа
К сожалению, нет "хорошего" способа сделать это, но есть частная функция
_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
Я использовал приведенный ниже код для расчета стоимости.
import numpy as np
cost = np.sum((reg.predict(x) - y) ** 2)
где
reg
ты учился
LogisticRegression
У меня есть следующие предложения. Вы можете записать коды для функции потерь логистической регрессии как функции. После того, как вы получите прогнозируемые метки данных, вы можете отозвать определенную функцию для расчета значений затрат.