sklearn中如何获取模型损失

Sco*_*ott 8 python scikit-learn

每当sklearn模型适合某些数据时,它就会最小化某些损失函数。如何使用该损失函数获得模型损失?

例如

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
Run Code Online (Sandbox Code Playgroud)

请注意,该.score方法不执行此操作。

Jam*_*ull 6

LogisticRegression最大限度地减少对数损失,因此您会期望损失为.score, 只能被否定。然而,这实际上返回的是平均准确度

要计算对数损失,您需要使用以下log_loss指标:

我还没有测试过,但是是这样的:

from sklearn.metrics import log_loss

model = sklearn.linear_model.LogisticRegression().fit(X_train, y_train)

loss = log_loss(X_test, model.predict_proba(X_test), eps=1e-15)
Run Code Online (Sandbox Code Playgroud)

  • “model.predict”给出了阈值预测。我认为也许需要使用“model.predict_proba” (2认同)