猿问

sklearn log_loss 如何知道概率的顺序?

考虑 sklearn 文档中 log_loss 的示例:

from sklearn.metrics import log loss
log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

运行这个,我们得到的输出约为 0.216。该模型相当擅长对正常邮件和垃圾邮件进行分类。

sklearn 如何知道第一个概率是 ,ham第二个概率是spam

如果我想翻转标签,即第一个是spam,第二个是ham,我该怎么做?显式提供 labels 参数不起作用:

log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]], labels=["ham", "spam"])

输出:0.216。

log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]], labels=["spam", "ham"])

输出:0.216。

小唯快跑啊
浏览 97回答 1
1回答

慕少森

sklearn.metrics.log_loss假设概率标签按字母顺序排列。要翻转标签,您需要按相反的字母顺序重命名它们,例如aspam和bham:from sklearn.metrics import log_loss log_loss(["aspam", "bham", "bham", "aspam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]])输出:~1.816。
随时随地看视频慕课网APP

相关分类

Python
我要回答