Как оценить функцию стоимости для 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

У меня есть следующие предложения. Вы можете записать коды для функции потерь логистической регрессии как функции. После того, как вы получите прогнозируемые метки данных, вы можете отозвать определенную функцию для расчета значений затрат.

Другие вопросы по тегам