机器学习算法衡量指标

本贴最后更新于 2333 天前,其中的信息可能已经时移俗易

算法的衡量指标

算法的衡量指标主要有七种:

  • 分类精度(准确性)
  • 对数损失
  • 混淆矩阵
  • 曲线下面积(AUC)
  • F1 分数
  • 平均绝对误差
  • 均方误差

分类精度

分类精度就是我们通常使用的准确性。含义是正确分类的数据占总数据的比率。

Accuracy = correct predictions / total predictions

但是当数据偏差很大时准确性不能准确衡量算法性能。

比如有 98% 的数据都是正例,只有 2% 的数据是反例。那么只要全部预测是正例就可以获得 98% 的准确性。

对数损失

对数损失是通过惩罚错误的分类来工作。适用于多分类。

对数损失公式

公式内 yij 表示样本 i 是否属于类别 j。pij 表示样本 i 属于类别 j 的概率。

对数损失取值是[0,∞)。离 0 越远代表准确性越低。

混淆矩阵

混淆矩阵是通过一个矩阵描述算法性能。矩阵如下表所示:

预测为 No 预测为 Yes
实际为 No 50 10
实际为 Yes 5 100

表内包含四个重要指标:

  • True Positives(TP):预测为“是”,实际为“是”
  • False Negatives(FN):预测为“否”,实际为“是”
  • True Negatives(TN):预测为“否”,实际为“否”
  • False Positives(FP):预测为“是”,实际为“否”

准确性就是混淆矩阵的对角线的均值:(TP+FN)/total

混淆矩阵是其他度量的基础。

曲线下面积

曲线下面积就是常说的 AUC,全称是 Area Under Curve。用于二分类问题。

AUC 主要依赖于两个指标:

  • True Positives Rates(真阳性率):定义为 TP/(TP+FN),也就是正确分类的正例占所有正例的比率,当 TPR=1 的时候,说明正例被全部正确分类。
  • False Positives Rates(假阳性率):定义为 FP/(FP+TN),也就是错误分类的反例占所有反例的比率,当 FPR=0 的时候,说明反例被全部正确分类。

一个好的算法会让 TPR 尽可能大,同时 FPR 尽可能小。

但是针对一个确定的算法,TPR 和 FPR 是一条确定的曲线,这条曲线以 FPR 为横轴,以 TPR 为纵轴。曲线下面的面积越大,说明 TPR 尽可能大的同时 FPR 尽可能小。

极限情况就是一条竖直的直线,此时能够实现 TPR=1,FPR=0。

F1 分数

F1 分数是精确度和召回率的调和平均值,可以描述算法的精确程度及稳健程度。

  • 精确度:TP/(TP+FP),预测对的正例占所有预测的正例的比率,越大说明算法越保守,把确定性较低的正例预测为反例,可以保证精确度大。
  • 召回率:TP/(TP+FN),预测对的正例占所有正例的比率,也就是真阳性率。

一个好的算法的精确度和召回率都尽可能大。其实也就是利用精确度描述预测的正例里错误的比率。

但是针对一个确定的算法,精确度和召回率也是一条曲线。通常为了保持更高的精确度,算法会比较保守,一些把握性不大的正例就会被预测为反例,反之亦然。

F1 定义如下:

F1 = 2 / (1/precision + 1/recall) = 2 * precision * recall / (precision + recall)

F1 的范围是[0,1],越大越好。有时候侧重点不同,会有一些变种。

平均绝对误差

衡量原始值和预测值之间的差距的平均值,但是没有方向信息。

均方误差

均方误差就是(MSE),是原始值和预测值之间的差距的平方的平均值,就是我们平常使用的 loss

  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖
  • 正例
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...