小编niu*_*999的帖子

如何计算 scikit-learn ML 模型每个样本的二进制对数损失

我正在尝试将二进制日志损失应用于我创建的朴素贝叶斯 ML 模型。我生成了一个分类预测数据集(yNew)和一个概率数据集(probabilityYes),但无法在对数损失函数中成功运行它们。

简单的 sklearn.metrics 函数给出单个对数损失结果 - 不知道如何解释这个

from sklearn.metrics import log_loss
ll = log_loss(yNew, probabilityYes, eps=1e-15)
print(ll)
.0819....
Run Code Online (Sandbox Code Playgroud)

更复杂的函数为每个“否”返回 2.55,为每个“是”返回 2.50(总共 90 列)-同样,不知道如何解释它

def logloss(yNew,probabilityYes):
epsilon = 1e-15
probabilityYes = sp.maximum(epsilon, probabilityYes)
probabilityYes = sp.minimum(1-epsilon, probabilityYes)

#compute logloss function (vectorised)
ll = sum(yNew*sp.log(probabilityYes) +
            sp.subtract(1,yNew)*sp.log(sp.subtract(1,probabilityYes)))
ll = ll * -1.0/len(yNew)
return ll

print(logloss(yNew,probabilityYes))
2.55352047 2.55352047 2.50358354 2.55352047 2.50358354 2.55352047 .....
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning loss scikit-learn

3
推荐指数
1
解决办法
2595
查看次数

标签 统计

loss ×1

machine-learning ×1

numpy ×1

python ×1

scikit-learn ×1