机器学习的评价指标
个人觉得机器学习算法的好坏主要由4个因素决定:
- 模型精度
- 判别速度
- 模型占用资源情况
- 模型训练速度
后面三个的情况的好坏都比较直观(判别速度就是模型的吞吐量,每秒可以处理多少条数据;模型占用资源就是模型需要占用多少内存;训练速度就是模型训练需要花费多长时间),而精度的评价指标却比较多,而且评价指标在一定程度上相当于损失函数,模型优化的对象。现在就来总结一下常见的模型精度的评价指标。
回归问题
回归问题常见的评价指标有:
RMSE(Root Mean Square Error)
MSE (Mean Square Error)
前面两个由于误差是平房形式的,所以对某一两个异常值特别敏感,一两个异常值会使得整个模型有所偏斜。但是他们的好处是方便求导,符合高斯分布的假设,用的是最多的。
MAE(mean absolute error)
MAPE(mean absolute percentage error)
改进的MAPE
避免了为0的情况,但会比“直观感受”偏小一点。MAPE相当于相对误差,MAE和MSE相当于绝对误差。
拟合优度(Goodness of Fit)
这个是越大越好。
分类问题
分类问题的评价指标比回归要丰富的多,因为分类的场景不同,需要的评价指标也不同。分类问题对错最基础的概念就是混淆矩阵:
混淆矩阵 | 真实值为真 | 真实值为假 |
---|---|---|
预测值为真 | TP | FP |
预测值为假 | TN | FN |
同理可以推广到多分类问题上,各种评价指标都是依赖于这个矩阵产生的。
准确率(Accuracy)
精确率(Precision)
感觉他另一个名字“查准率”更能体现这个指标的意思,当不要误判成为很关键的因素的时候,就需要重点看这个指标了。用通俗的话解释他就是A类别的精确率等于预测为A且正确的样本数除以预测为A的样本总数。
召回率(Recall)
另外一个名字“查全率”更容易理解。当不要漏判成为很关键的因素的时候,就需要重点看这个指标了。用通俗的话解释他就是A类别的精确率等于预测为A且正确的样本数除以A的样本总数。
F1 score
score
F系列的指标是精确率、召回率的调和平均,体现了对精确率和召回率的权衡,加入相当于一个对精确率召回率的偏好。
Gini系数
Gini系数相当于纯度,是集合中数据为类的概率
交叉熵
交叉熵也是从概率的角度来确定损失函数的,直观
准确率、 Gini系数、交叉熵的各个类别类是平权的,精确率更在意的预测为真的不要预测错了,召回率更在意的是本来是真的不要预测错了。 、是精确率和召回率的权衡。
等错误率(EER, Equal Error Rate)
FA(False Acceptance)错误接受率:
FR(False Rejection)错误拒绝率:
等错误率(EER, Equal Error Rate): 当时,
ROC曲线与AUC值
纵轴为真阳性率(TPR),即,灵敏度、命中率、召回,定义为。
横轴假阳性率(FPR),即,误检率,定义为。
如果ROC是光滑的,那么基本可以判断没有太大的overfitting。
ROC曲线下方的面积为AUC值。
PRC曲线与mAP
PRC(precision recall curve):如果只能选一个指标的话,肯定是选PRC了。可以把一个模型看的一清二楚。在正负样本分布得极不均匀(highly skewed datasets)的情况下,PRC比ROC能更有效地反应分类器的好坏。mAP值是PRC的面积。
检验分布的评价指标
卡方分布:n个独立同分布的随机变量,都服从标准正态分布,那么平方和服从的分布就是*度为n的卡方分布。
卡方检验
卡方检验是用来检验一个分布是否满足一个已知的分布。具体计算公式是
是落在某一区间的实验频次,为理论值,他应该服从*度为的卡方分布,查表判断是否拒绝设定的分布假设。
K-S检验
K-S检验时判断两个分布是否同为相同分布。计算需要做比较的两组观察数据的累积分布函数,然后求这两个累积分布函数的差的绝对值中的最大值D。最后通过查表以确定D值是否落在所要求对应的置信区间内。
t检验
t分布:n个标准正态分布的均值的分布
t检验:比较两个平均数的差异是否显著,主要用于样本含量较小(例如n<30),总体标准差未知的正态分布。
- 步骤1.计算统计量
- 单总体t检验:,
- 双总体t检验:,
- 配对样本t检验:若二群配对样本满足,, , 为本身配对的常数差距。
- 步骤2.满足n-1的t分布,查表判断是否拒绝
F检验
两个分布的方差的比满足f分布,查表判断两组数据的方差没有显著差异
Ad-Fuller test(augmented Dickey–Fuller test (ADF) tests)
检验过程是否平稳。,回归之后查表看是否满足平稳。