用于评估输出概率的模型的指标

人工智能 交叉验证 公制
2021-10-29 12:07:45

我知道对事物进行分类的模型的准确性(正确预测/总预测)等指标。但是,我正在研究一个模型,该模型输出属于两个类之一的数据点的概率。可以/应该使用哪些指标来评估这些类型的模型?

我目前正在使用均方误差,但我想知道是否还有其他指标,以及这些指标的优缺点是什么。

1个回答

对于二元分类器,如果您关心相对概率,则交叉熵损失是概率准确性的自然度量。我的意思是,如果你关心估计p^在真实值的某个比例范围内。所以估计p^=0.1是一个更好的估计,如果真值是p=0.2比如果真正的价值是p=0.01(即使后一个值更接近并且在 MSE 下得分会更高)。它也适用于您关心 0.9 通过相同的逻辑“更接近” 0.8 而不是 0.97。随着交叉熵损失,极端的信心(预测接近0或接近1) 错误时会受到更严厉的惩罚。

为了完整起见,损失函数(每个数据点)为:

L(y^,y)=(ylog(y^)+(1y)log(1y^))

这可能与您用于目标的损失函数相同(或至少应该如此),因此对于测试,只需将其用作您的指标*。

y^是您在 A 类中的预测概率,并且可以在范围内[0,1]. 理想情况下,您有基本事实概率和y也在那个范围内。在这种情况下,唯一的问题是“完美”分数不再是0但一些正数。如果这让您感到困扰,那么您可以通过完美分数来抵消,在每个数据集上预先计算它(只需设置y^=y对于每个项目,您将找到可能的最低分数)。

如果您没有基本事实概率,但确实有课程,那么y将是 0 或 1,并且该指标仍然有效。要获得准确的指标,您将需要足够的样本,以使每个类别的相对频率取决于输入具有显着影响。也就是说,您需要更多的数据(包括训练和测试)来训练准确的概率,而不是针对更简单的分类准确度指标。

类似的逻辑也适用于多类概率。然而,许多现成的库在损失函数中使用了优化——假设只有一个真实的类——这使得使用概率作为基本事实是不可能的。因此,在这种情况下,您可能需要基于多类交叉熵损失编写自己的损失函数和梯度函数。


* 我在这里假设您使用标准约定来记录损失函数(通常是每个项目)、成本函数(通常在数据集和可能的多个损失函数中聚合)和度量函数,这些函数不必是可微的或可用的作为前者。成本函数通常也作为目标函数输入到优化器中——即它具有驱动参数达到最大值或最小值的重要工作。对于基于梯度的求解器,这意味着它必须是可微的。