Math 如何在sklearn中获得逻辑回归模型的对数似然?

Math 如何在sklearn中获得逻辑回归模型的对数似然?,math,machine-learning,scikit-learn,logistic-regression,log-likelihood,Math,Machine Learning,Scikit Learn,Logistic Regression,Log Likelihood,我在sklearn中使用了一个逻辑回归模型,我感兴趣的是检索这种模型的对数似然,以便按照建议执行普通似然比测试 该模型使用as评分规则。在文件中,对数损失定义为“给定概率分类器预测的真实标签的负对数可能性”。但是,该值始终为正值,而对数可能性应为负值。例如: 来自sklearn.linear\u模型导入逻辑回归 从sklearn.metrics导入日志\u损失 lr=逻辑回归() lr.安装(X_系列、y_系列) y_概率=lr.预测概率(X_检验) 对数损失(y_测试,y_概率)#0.6673

我在sklearn中使用了一个逻辑回归模型,我感兴趣的是检索这种模型的对数似然,以便按照建议执行普通似然比测试

该模型使用as评分规则。在文件中,对数损失定义为“给定概率分类器预测的真实标签的负对数可能性”。但是,该值始终为正值,而对数可能性应为负值。例如:

来自sklearn.linear\u模型导入逻辑回归
从sklearn.metrics导入日志\u损失
lr=逻辑回归()
lr.安装(X_系列、y_系列)
y_概率=lr.预测概率(X_检验)
对数损失(y_测试,y_概率)#0.66738

我在文档中没有看到模型的任何方法,是否有其他我目前不知道的可能性?

仔细阅读;对数损失是负对数可能性。因为对数似然确实如你所说是负数,所以它的负数将是正数

让我们看一个使用虚拟数据的示例:

从sklearn.metrics导入日志\u丢失
将numpy作为np导入
y_true=np.array([0,1,1])
y_pred=np.array([0.1,0.2,0.9])
日志损失(y_真,y_前)
# 0.60671964791658428
现在,让我们使用您链接到的scikit学习文档中给出的公式(不带减号)手动计算对数似然元素(即,每个标签预测对一个值):

log\u似然元素=y\u真*np.log(y\u pred)+(1-y\u真)*np.log(1-y\u pred)
对数似然元素
#数组([-0.10536052,-1.60943791,-0.10536052])
现在,给定对数似然元素(实际上为负),对数损失是其总和的负数除以样本数:

-np.sum(对数似然元素)/len(y\u真)
# 0.60671964791658428
对数损失(y_真,y_pred)==-np.sum(对数似然元素)/len(y_真)
#真的

要获得您可以计算的对数可能性:

-log_loss(y_true, y_pred)*len(y_true)

非常感谢你!我今天很笨。这意味着,当使用日志损失时,越低越好。或者我可以改变符号,将其视为对数可能性-对吗?@MattiaPaterna每一个被描述为“损失”的数量,都意味着“越低越好”