泛统计理论初探——机器学习预测评价指标

数据挖掘-介绍预测评价指标

机器学习预测指标简介
在我们学习数据挖掘的过程中,在刚开始学习的时候认为只要预测正确的准确率越高的模型一定是越好的,但是当我们往后学习的时候,接触到了一些新的问题的时候,我们会发现最开始衡量预测正确的准确率指标是不够客观的,下面来介绍一些常见的机器学习的预测指标,以此学习更为客观合理的评价指标。
首先我们来看传统的预测评价指标,即准确率。准确率=预测正确数/总数
这种指标有一个问题,当样本标记不均衡的时候,会出现问题。举个例子,当一个保险客户群体中,共有1000个客户,总资产在5000万以上的客户有10位,而总资产低于5000万的有990位。在这种情况下,如果不用任何模型,直接进行预测,将所有客户都预测为总资产低于5000万即可,这样预测准确率是99%,而这种指标是存在问题的,因为收入高的人群本身是较少的,所以这个指标并没有反映出不同群体的预测准确率,因为从资产5000万以上的客户群体来看,预测的正确率为0。
在这个基础上,我们引出了精确率、召回率这两个指标。这两个指标其实是较为矛盾的两个维度的指标,精确率反映的是查准率,即预测的准确性;召回率反映的是查全率,即预测覆盖的完整性。从定义上看,精确率代表的是正确预测为正样本数量占全部预测为正样本数量的比例。而召回率代表的是正确预测为正样本数量占全部实际为正样本数量的比例。我们可以通过例子进行说明:
某电商正在做用户画像分析,要找出所有的女性用户,现有200位用户,女性用户有160位,男性用户为40位。通过某统计模型进行建模,任意抽取100名女性用户的数据进行预测,得到预测结果为,女性用户有90位,男性用户有10位。

预测结果 女性实际数量 男性实际数量
女性预测数量 TP=90 FP=10
男性预测数量 FN=70 TN=30

这个时候传统的准确率是60%,即准确率=(TP+TN)/ALL=(90+30)/200=60%
从准确率来看,这个指标是不够客观的,因为它没有反映出具体的女性群体和男性群体的预测准确率。我们尝试使用精确率和召回率进行计算:
精确率=TP/(TP+FP)=90/(90+10)=90%
召回率=TP/(TP+FN)=90/(90+70)=56.25%
我们发现,这个模型的精确率是比较高的,达到了90%,但是召回率却不是很高,还没达到60%。我们在这里引入一个协调精确率和召回率的指标,即F1-Score,这个指标定义是精确率和召回率的调和平均数,即:
F1-Score=2精确率召回率/(精确率+召回率)
在这个例子中,F1-Score=20.90.5625/(0.9+0.5625)=69.23%,即该模型的预测F1-Score是69.23%,是较为合理的衡量值。
在这个基础上,我们引入一个ROC曲线,这个曲线的纵坐标是TPR,TPR=TP/(TP+FN) 即代表预测准确的比率,横坐标是FPR,FPR=FP/(FP+TN) 代表的是预测错误比例。当使用者调整参数或者阈值时,会计算得到不同的预测值,即曲线上的一个点,将这些点连起来后得到ROC曲线。ROC曲线一般在y=x正上方,形状如下图:
泛统计理论初探——机器学习预测评价指标
通过ROC曲线我们详细的看到TPR和FPR的关系,并且通过计算ROC的面积可以得到更为客观的准确率,这个ROC面积我们叫做AUC值。通常来说,AUC值越大并且越接近于1预测效果越好。
综上所述,我们了解了传统的指标局限性,引出了精准率和召回率指标,并通过计算调和平均数F1-Score将两个指标进行平均。从另一个角度来说,ROC曲线可以客观地反映预测效果,即通过TPR和FPR的关系进行观察,最终计算得到的AUC值是较为客观的值,并且AUC值受样本自身的标记情况影响不大,是一个较为稳健的预测评价指标。