log loss 对数损失

log_loss(对数损失)是一种用于衡量分类模型的损失函数,常用于二分类或多分类问题中。它衡量了模型的预测概率分布与真实标签之间的差异。
数学定义为:
$$
H_{p}(q)= -\frac{1}{N} \sum_{i=1}^{N} y_{i} \cdot \log \left(p\left(y_{i}\right)\right)+\left(1-y_{i}\right) \cdot \log \left(1-p\left(y_{i}\right)\right)
$$
在二分类问题中,log_loss的定义如下:

log_loss(y_true, y_pred) = -(y_true * log(y_pred) + (1 - y_true) * log(1 - y_pred))

其中,y_true 是真实的标签(0 或 1),y_pred 是模型的预测概率(取值范围在 0 和 1 之间)。log 表示自然对数。

公式中的第一项 - (y_true * log(y_pred)) 是真实标签为 1 时的损失,第二项 - ((1 - y_true) * log(1 - y_pred)) 是真实标签为 0 时的损失。公式的负号是为了将最小化问题转化为最大化问题。

该公式的含义是,对于每个样本,如果真实标签为 1,损失函数希望模型预测的概率越接近 1,即希望 y_pred 越大;如果真实标签为 0,损失函数希望模型预测的概率越接近 0,即希望 1 - y_pred 越大。

通过对所有样本的损失进行求和或平均,可以得到整体的对数损失。

对于多分类问题,log_loss的定义稍有不同,它对每个类别的预测概率分布进行评估,计算每个类别的对数损失并求平均值。

在实际应用中,log_loss常用于评估分类模型的性能,特别是在需要考虑概率预测精度和不确定性的情况下。较低的 log_loss 值表示模型的预测结果与真实标签的吻合度较高。

通常我们使用 sklearn.metrics.log_loss 函数计算log_loss。该函数接受真实标签和模型预测的概率作为输入,并返回对数损失值。

以下是使用 sklearn.metrics.log_loss 计算 log_loss 的示例代码:

from sklearn.metrics import log_loss

# 真实标签
y_true = [0, 1, 0, 1]

# 模型预测的概率
y_pred = [0.2, 0.8, 0.6, 0.3]

# 计算 log_loss
loss = log_loss(y_true, y_pred)

print("Log Loss:", loss)
正文完
 
admin
版权声明:本站原创文章,由 admin 2023-11-26发表,共计1014字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请联系tensortimes@gmail.com。
评论(没有评论)
验证码