机器学习案例系列教程——模型评估总结

时间:2022-12-07 11:30:11

回归评价指标

均方误差(MSE)

MSE (Mean Squared Error)叫做均方误差。看公式

1mi=1m(yif(xi))2

均方根误差(RMSE)

RMSE(Root Mean Squard Error)均方根误差。

1mi=1m(yif(xi))2

这是MSE开个根号,其实实质是一样的。只不过用于数据更好的描述。

MAE

MAE(平均绝对误差)

1mi=1m|yif(xi)|

分类评估

混淆矩阵
对于2分类问题存在4种可能的情况:

机器学习案例系列教程——模型评估总结

准确率及误差率的度量

为了度量预测的精确度,隐含假设每一个错误分类的样本成本相同,引入误差率和准确率两个指标作为这种成本的度量。
误差率:错误分类的样本数(E)与检测样本总数(S)的比值
R=E/S
准确率:正确分类的样本数与检测样本总数(S)的比值
A=1−R=S−ES
我们也可以引入更全面的指标:
用pos表示真实正例的样本数,neg表示真实负例的样本数,t−pos表示正确预测的正例样本数,f−pos表示负例被当成正例的样本数,t−neg表示正确预测的负例样本数,f−neg表示正例被当成负例的样本数。以下括号中的文字有些是自己给取的名字,不要跟其他地方混淆了。
**灵敏度(真正率):**Sensitivity=t−pospos,即正例中被准确预测的比例(有点查全的感觉,真的有这么多正例,有多少被挑出来了)
召回率(查全率R):计算方法同灵敏度,相同东西在不同场合下的叫法。
**特异性(真负率):**Specificity=t−negneg,即负债中被准确预测的比例(有点查全的感觉,真的有这么多负例,有多少被挑出来了)
**精度(正例检出率):**Precision=t−post−pos+f−pos,即在预测结果的正例里真实正例的比例(有点查准的感觉,预测了这么多,多少预测对了)
准确率(查准率P):与精度计算方法相同
**错误正例(假正率):**FalsePositiveRate=1−t−negneg,即正例被当成负例的样本数占预测结果的负例样本数的比例
**错误负例(假负率):**FalseNegetiveRate=1−t−pospos,即负例被错误当成正例的样本数占预测结果的正例样本数的比例
最终
准确率A=t−pos+t−negpos+neg=t−pospos∗pospos+neg+t−negnegnegpos+neg
F_1值:F1=2∗P∗RP+R,更一般的形式为F1=(1+β2)P∗R(β2∗P)+R
β=1退化为F1;β>1查全率有更大影响;β<1查准率有更大影响。
宏平均(macro-average):一般用在文本分类器,是先对每一个类统计指标值,然后在对所有类求算术平均值。宏平均指标相对微平均指标而言受小类别的影响更大。
微平均(micro-average):一般用在文本分类器,是对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。
平均准确率(Average Per-class Accuracy):为了应对每个类别下样本的个数不一样的情况,计算每个类别下的准确率,然后再计算它们的平均值。
对数损失函数(Log-loss):在分类输出中,若输出不再是0-1,而是实数值,即属于每个类别的概率,那么可以使用Log-loss对分类结果进行评价。这个输出概率表示该记录所属的其对应的类别的置信度。比如如果样本本属于类别0,但是分类器则输出其属于类别1的概率为0.51,那么这种情况认为分类器出错了。该概率接近了分类器的分类的边界概率0.5。Log-loss是一个软的分类准确率度量方法,使用概率来表示其所属的类别的置信度。

ROC曲线

ROC曲线是利用真正率为纵轴,假正率为横轴画出的曲线,用来评估模型预测准确率。很明显,当真正率大越近1,假正率越接近0是模型越好。
对于给定的一组样本,我们只能得到一个真正率和一个假正率(对应图上的一个点),那如何画ROC曲线呢?

通过设置不同的阈值,比如逻辑回归中可以设定概率>0.5的点为正例,在此阈值下可以得到ROC曲线上的一个点;更改阈值,如概率>0.6的点为正例,同样可以得到ROC曲线上的一个点;不同的阈值可以得到一组点,即得到了ROC曲线;

机器学习案例系列教程——模型评估总结

真正率大越近1,假正率越接近0是模型越好,在图上的表现就是ROC曲线越靠近(0,1)点,越远离45o对角线;
评价模型有很多指标,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。

AUC曲线

AUC(area under curve):即ROC曲线下的面积。
若一个学习器的ROC曲线被另一个包住,后者的性能能优于前者;若交叉,判断ROC曲线下的面积,即AUC。

下面给出AUC的一个计算方法。

假设有m+n个样本,其中m个正样本,n个负样本。
模型对(m+n)个样本进行概率预测,得到的每个样本属于正样本的概率,并对这些样本的概率值由大到小进行排序。为 p1,p2,p3....pm+n

那么我们从样本随意取两个样本的预测概率 pi,pj ,其中 pi>pj ,如果样本i为正样本,样本j为负样本,则这种组合为正面组合,如果样本i为负样本,样本j为负样本,则这种组合负面组合。

auc=mn

也就是说,如果模型预测的概率,所有正样本的预测概率都比所有负样本的预测概率大,则auc输出为1。

也就是说auc评估的是样本概率的排序能力。