Как получить потерю модели в sklearn

Scott спросил: 12 мая 2018 в 04:15 в: python

Всякий раз, когда модель sklearn подходит для некоторых данных, она минимизирует некоторую функцию потерь. Как я могу получить потерю модели с помощью этой функции потерь?

eg

model = sklearn.linear_model.LogisticRegression().fit(X_train,y_train)
model.get_loss(X_train, y_train) #gives the loss for these values
model.get_loss(X_test, y_test) #gives the loss for other values

Обратите внимание, что метод .score НЕ делает эту вещь .

1 ответ

Jamie Bull ответил: 12 мая 2018 в 07:48

LogisticRegression минимизирует потерю журнала, поэтому вы ожидаете, что потеря будет .score, только отрицается. Тем не менее, это фактически возвращает среднюю точность.

Чтобы вычислить потерю журнала, вам нужно использовать метку log_loss:

Я не тестировал ее, но что-то например:

from sklearn.metrics import log_lossmodel = sklearn.linear_model.LogisticRegression().fit(X_train, y_train)loss = log_loss(X_test, model.predict_proba(X_test), eps=1e-15)
KRKirov ответил: 12 мая 2018 в 05:10
он должен быть log_loss (y_test, model.predict (X_test), eps = 1e-15)
Scott ответил: 12 мая 2018 в 05:31
model.predict дает пороговое предсказание. Я думаю, возможно, нужно использовать model.predict_proba
Jamie Bull ответил: 12 мая 2018 в 07:48
да, это звучит правильно. я отредактирую