算法的衡量指标
算法的衡量指标主要有七种:
- 分类精度(准确性)
- 对数损失
- 混淆矩阵
- 曲线下面积(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
。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于