7种常见的机器学习算法衡量指标

时间:2022-12-08 18:06:36

在做机器学习进行实验过程中,我们需要使用分类精度、均方误差等方法衡量模型的性能,从而判断训练出的模型的表现是否符合预期要求。本文整理了7种常见的机器学习算法衡量指标:分类精度、对数损失、混淆矩阵、曲线下面积(AUC)、F1分数、平均绝对误差、均方误差。

1. 分类精度

分类精度其实就是我们所说的准确性,是正确预测数占总样本数的比值。
A c c u r a c y = N u m b e r o f C o r r e c t p r e d i c t i o n s T o t a l n u m b e r o f p r e d i c t i o n s m a d e
只有当属于每个类的样本数量相等时才有效。这个不难理解,假如我们的训练集中有90%的A类样本和10%的B类样本,然后我们的模型对A类样本表现的特别好,能准确的分类出A类样本,而不能分类出B类样本,则这个模型就能获得90%的分类精度。这给我们一种错觉,认为我们的模型表现的很好,但当在50%的A类样本和50%的B类样本的测试集中做测试时,测试精度就只有50%了。

2. 对数损失

对数损失适用于多类分类,他是通过惩罚错误分类来工作的,分类器必须为样本分配属于每个类的概率。假如有N个样本属于M类,则对数损失的计算如下:
L o g a r i t h m i c L o s s = 1 N i = 1 N j = 1 N y i j l o g ( P i j )
这里, y i j 表示样本i是否属于类别j
P i j 表示样本i属于类别j的概率
对数损失函数的值域为0到正无穷。损失函数越接近0准确性越高,所以在训练过程中应尽可能减小对数损失函数来提高分类精度。

3. 混淆矩阵

混淆矩阵是其他很多度量类型的基础,是通过一个矩阵描述了模型的精确度。假如我们有一个二分类的问题,标签为YES和NO。在165个测试样本中我们测试了模型,得到如下结果:
7种常见的机器学习算法衡量指标
矩阵的精确度可以通过取主对角线的平均值来计算,即:
A c c u r a c y = T r u e P o s i t i v e s + F a l s e N e g a t i v e s T o t a l N u m b e r O f S a m p l e s
所以这里面的精度为:
A c c u r a c y = 100 + 50 165

4. 曲线下面积(AUC)

曲线下面积是适用于二分类问题,是评估中使用最广的指标之一。分类器的AUC等价于随机选择正样本高于随机选择负样本的概率。了解AUC首先需要了解以下术语:
True Positive Rate(真阳性率):它被定义为
T P F N + T P .对于所有的正数据点,它对应于正数据点被正确认为是正的比例。
False Positive Rate(假阳性率):它被定义为 F P F P + T N ,即对应于所有的负数据点,负数据点被错误的认为是正的比例。False Positive Rate和True Positive Rate的值都在[0, 1]范围内。下图是[0,1]中不同点的False Positive Rate对True Positive Rate曲线下面积。
7种常见的机器学习算法衡量指标
很明显,AUC的范围是[0, 1],值越大,我们模型的性能越好。

5. F1分数

F1分数(F1 Score),是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的准确率和召回率。F1分数可以看作是模型准确率和召回率的一种加权平均,它的最大值是1,最小值是0。它会告诉我们分类器的精确程度(正确分类的实例数),以及它的稳健成都(它不会错过大量实例)。
高精度低召回率会带来高的精度,但也会错过很难分类的实例。F1得分越高我们的模型表现越好。F1可以表示为:
F 1 = 2 1 1 p r e c i s i o n + 1 r e c a l l
7种常见的机器学习算法衡量指标
其中:Precision为它是正结果的数目除以分类器所预测的正结果的数目
P r e c i s i o n = T r u e P o s i t i v e T r u e P o s i t i v e + F a l s e P o s i t i v e
Recall为它是正结果数量除以分类器应该预测的正结果的数目(即为实际为正结果的数目)
R e c a l l = T r u e P o s i t i v e T r u e P o s i t i v e + F a l s e N e g a t i v e

6. 平均绝对误差(Mean Absolute Error)

平均绝对误差是原始值于预测值之间的平均值,用来衡量预测与实际输出还差多远。但是它们并没有给出任何关于错误方向的信息。平均绝对误差用以下公式表达:
M e a n A b s o l u t e E r r o r = 1 N j = 1 N | y i y j ^ |

7. 均方误差(Mean Squared Error)

均方差与平均绝对误差非常相似,唯一的区别在于MSE取原始值与取预测值之差的平方的平均值。MSE的优点是计算梯度更容易,而平均绝对误差需要更负责的线性编程工具来完成。均方误差用以下公式表达:
M e a n S q u a r e d E r r o r = 1 N j = 1 N ( y i y j ^ ) 2