2.2 性能度量
衡量模型泛化能力的评价标准就是性能度量,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。在性能度量时,回归问题和分类问题用的指标往往不同,所以需要分开讨论。
2.2.1 回归问题常用的性能度量指标有哪些
1)均方误差。
2)Root Mean Squared Error(RMSE)均方根误差是观测值与真值偏差的平方和与观测次数m比值的平方根,用来衡量观测值同真值之间的偏差。
3)和方误差。
4)Mean Absolute Error(MAE)直接计算模型输出与真实值之间的平均绝对误差。
5)Mean Absolute Percentage Error(MAPE)不仅考虑预测值与真实值的误差,还考虑了误差与真实值之间的比例。
6)平均平方百分比误差。
7)决定系数。
2.2.2 分类问题常用的性能度量指标有哪些
常用的性能度量指标有精确率、召回率、F1、TPR、FPR。
表2-1中TP表示正样本被预测为正样本(真正例,true positive)。
表2-1 TP、FN、FP和TN定义
FN表示正样本被预测为负样本(假负例,false negative)。
FP表示负样本被预测为正样本(假正例,false positive)。
TN表示负样本被预测为负样本(真负例,true negative)。
精确率Precision=。
召回率Recall=。
真正例率即为正例被判断为正例的概率。
假正例率即为反例被判断为正例的概率。
精确率又称查准率,顾名思义适用于对准确率要求高的应用,例如网页检索与推荐。召回率又称查全率,适用于检测信贷风险信息、逃犯信息等。由于精确率与召回率是一对矛盾的度量,所以需要找一个平衡点,研究者们往往使用F1,F1是精确率与召回率的调和平均值:
(1)错误率和准确率
错误率。
准确率acc=1-e。
(2)AUC与ROC曲线
对于0、1分类问题,一些分类器得到的结果并不是0或1,如神经网络得到是0.5、0.6等。此时就需要取一个阈值cutoff,那么小于cutoff的归为0类,大于等于cutoff的归为1类,可以得到一个分类结果。取不同的阈值,最后得到的分类情况也不同。
ROC曲线(Receiver Operational Characteristic Curve)是以False Positive Rate为横坐标,True Positive Rate为纵坐标的绘制的曲线。曲线的点表示了在敏感度和特殊性之间的平衡,例如越往左,也就是假阳性越小,则真阳性也越小。曲线下方的面积越大,则表示该方法越有利于区分两种类别。AUC即为ROC曲线所覆盖的区域面积。AUC值是一个概率值,当随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。所以AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。而如果AUC=0.5,跟随机猜测一样(例如丢硬币),模型没有预测价值。如图2-1所示。
图2-1 ROC曲线
ROC曲线的主要意义是方便观察阈值对学习器的泛化性能影响,所以有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的查全率就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。
代码如下: