机器学习算法原理系列篇2: 机器学习模型效果的常用评价方法

持续更新的微信订阅号,更多的内容请微信扫描下面二维码,关注订阅

 

 

工作中很多时候我们需要预测一个事件发生的概率或者事件所属类别。比如你申请信用卡时候,银行会预测你将来是否逾期不还钱,或者不还钱的概率。这里我们讨论一下,一旦有了这种模型,怎么去评价一个模型的效果。

 

 

机器学习模型可以广泛的应用在不同的领域,比如预测房价或者股票,预测图片中的动物属于哪一种动物,也可以帮助机器人优化行走路线。在这里我们着重强调在机器学习领域常见的一种应用,二分类模型,比如预测客户是否会逾期。在深入理解机器学习模型的具体的建模技术手段,流程和底层算法原理之前,我们可以先了解如何通过量化的方法去评价一个模型好坏。二分类机器学习模型的输出形式有两种,一种是直接给出预测的种类,第二种是给出每一分类的概率。

                               

一. 基于混淆矩阵

 

对于给出预测种类的模型,最直接的评价方式是查看混淆矩阵(confusion matrix), 如下图所示:

 

 

从上图的混淆矩阵中可以看到,待评价的数据样本中,真正的正样本数量P, 真正的负样本数量N, 正样本被模型预测为正样本的数量TP, 正样本被模型预测为负样本的数量FN, 负样本被模型预测为正样本的数量FP, 以及负样本被模型预测为负样本的数量TN。显然,TP 和TN的数量越高,FN和FP的数量越小,就说明模型预测越好。基于这几个数量值,我们进一步总结出得出下面的几个不同的评价指标:

  1. 精确率(precision) = TP/(TP+FP), 其意义在于,在所有预测为正样本的结果中,到底有多少是真正的正样本。
  2. 召回率(recall) = TP/(TP+FN), 其意义在于,在所有正样本中,到底有多少被正确的预测为正样本。
  3. 准确率(accuracy) = (TP+TN)/ (P+N), 其意义在于,所有样本中,多少预测正确,即正样本被预测为正样本,负样本被预测为负样本。
  4. F1 score = 2*precision*recall/(precision + recall), 其意义在于把precision 和 recall 两个指标综合起来,给出一个更全面的评价指标。类似的评分还有其他形式,但本质上都是对precision 和 recall的一个加权平均,试图给出一个更加综合的评价指标。

 

上面的公式可能有些抽象,我们举个例子。如果是电商公司需要预测什么用户会去网站买东西,那就需要模型人员给出一个营销模型,从而决定对什么样的人推送广告。精确率,关心的就是所有被推送广告的人中,到底有多少人会真正来买东西,是我们的客户? 而召回率就是,假设我们预先被告知某个城市有10万人肯定是我们客户(具体是谁我们不知道),那么我们根据模型推送了广告以后,到底这10万人中我们覆盖了多少人?

 

 

合理的利用上面几个指标来评价模型,需要结合具体的业务和数据。比如,了解数据的不平衡性对使用什么指标来评价有很大帮助。对于高度不平衡的数据,准确率通常是一个具有欺骗性的指标。假如数据里面99%的标签为正样本,那么,即使一个随机模型,准确率都能达到99%,但这样的模型显然不是我们希望得到的模型。这个时候精确率和召回率就能更加公正的评价一个模型。

 

但对于大多数模型而言,往往我们又不可能同时提高精确率和召回率。提高精确率的同时往往会牺牲召回率,反之亦然。如何取舍,更多要取决于当前的业务。比如重大疾病预测模型,提高召回率是第一位的,这是因为漏诊病人的重大疾病和把病人小病误诊为重大疾病相比,前者的危害要高得多。相反,对于网购业务中羊毛党客户的预测模型,如何提高精确率就更加重要。这是因为,把普通消费者误判为羊毛党会极大的损害用户体验。

 

 

二. ROC曲线

 

许多分类模型的输出结果是连续性数值,比如逻辑回归给出概率,随机森林给出多棵树的投票结果,支撑向量机算法给出离分类边界的距离等。这些连续数值有的可以直接被解释为概率,有的可以用刻度的方法转换为概率。如果设定一定的阈值,比如0.5, 那么概率大于0.5 的可以当作一个分类,小等于0.5则被预测为另一个分类。一旦选择这种基于阈值的分类办法,模型评价便可以用上节所述的混淆矩阵方法。

 

但是直接基于输出概率评价模型,可以得到一个更加全面客观的评价方法。问题的核心在于,设定什么样的阈值更加合理。我们可以在0和1之间选定任意的阈值,不同的阈值会导致不同的模型效果。有的阈值可以使模型得到较高的精确率,有的阈值可以使模型得到更高的召回率。因此我们可以针对许多不同的阈值,得到一系列不同的指标,从而全面的去评价一个模型。

 

ROC (Receiver Operating Characteristic) 曲线是一种常用的全面评价模型的方法,对每一个选定的阈值,我们计算出对应的 (1)True Positive Rate (TPR) = TP/P, (2) False Positive Rate (FPR) = FP/N.  假如我们选择阈值为1(意思就是我们认为模型输出值大于1的为正样本),那么TPR 和 FPR都为0,因为概率最大也就为1,便没有样本被预测为正样本。假如我们选择阈值为0(意思就是我们认为模型输出值大于0的为正样本),那么TPR 和FPR 都为1, 因为所有样本都被预测为正样本。 按照这样的逻辑,每一个可能的阈值都会给出对应的TPR(Y坐标)和FPR (X坐标), 从而得到下图所示的类似的ROC曲线。

 

 

ROC曲线下的积分面积被称作AUC score,反映了模型的一个比较全面的评价指标。AUC score的大小应该在0.5 和 1之间。原因在于,即使一个随机模型可以给出一条(0,0) 到(1,1)的对角线,面积正好为0.5。ROC曲线也给出了一个选择阈值的直观方法,使用者可以明确的知道某一个阈值对应的TPR 和 FPR, 从而根据业务选择最佳的阈值。假设某个阈值点对应的TPR为0.7, 而FPR为0.1, 那么意味者, 70%的正样本会被正确预测,但是10%的负样本也会被误判为正样本。对于金融网贷业务而言,这正是通过率和对应风险值的权衡问题。10%负样本虽然比例不大,但是如果业务底层数据的负样本远远大于正样本数,那么通过阈值的负样本绝对数量也会大于正样本数量。在这种情况下,可能更好的阈值选择是,TPR比较低,比如0.3, 但是FPR也更低,比如0.05,从而对通过阈值的负样本绝对数量进行一个控制。对于金融风控而言,负样本就是会逾期不还钱的客户。

 

另一个常用的评价指标是KS值,其实也和ROC曲线有直接关系。每一对 TPR 和 FPR差的最大值就是KS, 在上图中,则反映为ROC曲线本身和(0,0)-(1,1)坐标对角线的之间,在y方向的最大距离即是KS值。这样我们可以看出,KS指标和AUC score 是高度相关的。 但不同的是,AUC score 是一个更加全面的评价,尤其是当ROC 曲线由于某种原因显得不大规则和平滑的时候;KS值可能只在某个特别阈值下的过度拟合结果,从而不能正真代表模型的质量。

 

 

三. Lift分析

 

Lift 分析方法在市场分析和BI领域运用广泛,也是依赖于模型输出的连续概率值。比如市场营销时候,需要建立营销模型,从而对所有目标客户的营销成功概率进行预测。在经费和人力有限的时情况下,营销人员可以把目标客户按成功概率进行排序,从而营销最有可能前N个客户。

 

用Lift方法来分析模型效果的具体步骤为:

  1. 把客户按照预测的概率排序后分组,比如10等分,第一组为概率排名在前10%的客户。
  2. 计算每组里面的转化率,即每组里面营销成功的客户数量除以每组的客户总数。

 

通过上面步骤获得数据,我们可以获得下图所示的曲线。

 

 

我们来理解一下上图的含义。左图中横坐标为,按照我们的分组方法,我们每完成一个组,即每联系10%的客户比例。纵坐标为累计的真实客户转换比例。左图中的对角线是一个基准线,意思就是,假如我们的客户分组一开始是随机的,那么我们每完成10%的客户营销和联系,我们的真实客户数量也只会增加10%。如果要覆盖一个城市的所有真正客户,除非我们把城市中每个人都联系到(我们当然知道不是每个人都是客户),否则我们永远转化不了这个城市所有的潜在真正客户。左图中的黑色曲线则代表了在模型的帮助下,我们的进展速度。第一个分组完成以后,我们可能已经能覆盖30%的真正客户,第二个分组完成后,这个数量累计增加到50%,以此类推。显然,这样的增长率快得多,我们不需要营销所有的人即能转化到多数的真正客户。右图的数字更加好理解,是两条曲线转化率的商。

 

从上图我们可以很清楚的看到模型的效果。假设所有目标客户群体有1万人,而我们把所有1万人的客户营销之后,最终会转化成功1000个客户。那么如果没有模型的帮助,我们只能随机的随机营销客户,那么每联系1万人里面10%的用户,就会营销成功1000人里面的10%的最终客户。但是模型对客户进行了排序,在模型的帮助下,我们营销了1万人里面的前10%客户,已经可以获得1000个最终客户里面的30%。Lift分析方法,可以帮助营销人员在同样的人力物力下,获得更多的客户。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值