机器学习模型的评估方法
机器学习分类模型的评估方法
机器学习模型简单分为回归模型与分类模型,回归模型与分类模型的预测类型一个是连续的变量,一个是离散的变量。这使得评估的方法各有不同。
对于分类模型判断一个西瓜是不是成熟的,按照机器学习的方法我们需要采集关于西瓜的一系列数据,这些数据比如西瓜的颜色,大小等特征还有每个西瓜是否成熟的标签,然后选择模型,将数据划分为测试集与训练集,利用测试集训练模型。这个时候我们已经得到了一个根据西瓜的颜色、大小等特征预测西瓜是否成熟的模型了。
为了测试模型的质量,我们将测试集的特征数据输入模型得到一系列的预测值,这些预测值与真实值之间进行比较。我们可以简单的说有多少预测对了,有多少预测错了。预测对了的认为是正确,预测错了就是错误。那我们就对数据进行加工即可得到模型的正确率。正确率=预测正确的样本数/总体的样本数。
但这样评估模型在样本数据均衡的情况下尚好。如果样本的数据是一个不平衡的数据,比如预测商品点击率,在大多数情况下商品是不会被点击的。假设商品在90%的情况下不会被点击,如果此时的模型是一个不论任何商品,都会预测不会点击的模型。在这样不合理的情况下,我们依然会得到90%的正确率。但这个模型肯定不是我们想要的,因为我们需要的是推荐那些点击率高的商品,但这个模型对任何的商品都是没有意义的。显然我们需要引入其他的评估指标。
为了解决以上问题,我们引入混淆矩阵的概念,对任何一个二分类的模型预测都可以分为预测为正样本和预测为负样本,真实值同样分为正样本与负样本。考虑到这一点我们可以分别以预测的样本为横轴,真实样本为纵轴。
预测正例恰好是真实正例的数目是TP,
预测正例恰好是真实负例的数目是FP,
预测负例恰好是真实正例的数目是FN,
预测负例恰好是真实负例的数目是TN。
(这些符号的后一个字母代表的是预测的值,前一个值通过正确与否可以得推测出真实值是怎么样的,很聪明的一种写法,以至于后边好多地方要用到。)
真实正例(P) | 真实负例(N) | |
预测正例(P) | TP | FP |
预测负例(N) | FN | TN |
通过混淆矩阵,我们可以进一步喜欢得到精确率,准确率以及由其延伸的F1 score,P-R曲线,ROC曲线,AUC等一系列的概念。后面介绍这些概念,现在你只要知道这个表很牛逼就够了,类似于众神之母。
OK下面介绍精确率与召回率。
精确率表示的是预测的正值中有多少预测对了。即预测对的正例数/预测为正,由我们前面的可以知道预测对的正例数目是TP,品品这词,就一个字:讲究,开口就老学究了。预测为正的那在表格中包括两大类,预测是正的,但预测错了;预测为正值,但预测对了。不管怎么样后面的字母是P,这点没跑了。(FP,TP)
精确率就可以写成TP/(FP + TP),精确率在英文是Precision,中文还有周志华老师在《机器学习》中翻译的查准率。其他的翻译就不说了,这里按照《百面机器学习》的叫法。
召回率表示是的预测对的正例占全部真实正例的比例,即为TP/(TP+FN),英文是Recall。
精确率与召回率分别从预测与真实的角度说明了模型的优劣(分母分别是预测正值与真实正值),但对于这两个值之间是矛盾的,我们无法直接同时将两个值都去到最大值,这点其实从定义上就能看出来,为了提高模型的精确率我们需要增大预测正确的正例数目,为此我们需要提高预测为正例的门槛,只要在“很大把握的”情况下才会预测为正例,这样使得预测为正例的正确率增加了,但预测为正例的数目却(TP)下降了,这样导致了召回率的损失。为了提高召回率我们需要将预测为正例的数目提高,只要有“差不多的把握”我们都可以认为是正例,这样TP的数目增加了,但因为不够严格导致了很多的预测错误,导致了精确率下降。
如果将P-R曲线画出来就是上面的图了。
在上图中模型A的前半段由于模型B的前半段的,但模型B的后半段由于模型A,所以我们不能单纯的通过图上的单个点来评估那个模型好,还应该结合曲线的走势。
为了综合考虑到精确率与召回率,我们引入了F1 score,F1 score是精确率与召回率的调和平均数。
F_1 score = 2*Precision *Recall/(Precision + Recall)
同样适用广泛应用于模型评估的还有ROC曲线
ROC曲线的中文名是“受试者工作特性曲线”,横轴是假阳性率(预测错了的正样本/真实的正样本的数目),纵轴是真阳性率(预测正确的正样本/真实的负样本的数目),然后通过改变评判标准的高低(阀值)得到不同的假阳性率与正阳性率,得到ROC曲线。对于ROC曲线,其与横轴围成的面积即为AUC,因为ROC曲线在y =x的上方,所以值在0.5~1之间。AUC的值越大模型的性能越好。
- 主要作用是很容易查出任意界限值对模型性能的影响;
- 可以根据需求选择最佳的阀值;
- 不同的模型比较时,那个AUC值大,那么那个模型就更好。
ORC曲线与P-R曲线的对比:
当数据不均衡时,P-R曲线容易受其影响,但ORC曲线的基本不变。
但在特定的数据集上,P-R曲线更能反映其性能。
数据不均衡时,P-R曲线容易受其影响,但ORC曲线的基本不变。
但在特定的数据集上,P-R曲线更能反映其性能。