从优惠券的投放人群,教你看分类模型的评判标准
为什么要写这篇文章?
大数据背景下,优惠券的投放都用到了机器学习的分类模型。对于这个全新的概念,很多人一知半解。更好的使用分类模型,对优惠券发放起到了至关重要的作用。这篇文章想用最直观的语言,向企业各类人群,传达机器学习模型的在大数据营销时代的重要性。
对于分类模型(Logistic 回归、Decision Tree、Neural Networks等)的输出指标,比如 Confusion Matrix、ROC、AUC,召回率,准确率等。分析师往往向业务部门同事解释这些含义时感到头疼。如何直观的去理解这个指标含义,而不是机械的解释,是我这篇文章所要传达的目的。
什么是分类模型?
简单的说,我想发送100张优惠券,我应该发给哪些人,而且这些人会最大可能去使用这些优惠券。于是我建了一个模型,把现在的客户按照会使用的可能性打了一个分数。我觉得分数大于某个值的人,就会使用,小于某个值的就不会使用。这就是最普通的分类模型。
在建立模型的过程中,我们用过去的数据,让模型去学习,所以当模型给每个人打好分数时,我们是知道这些人中,哪些分数打对了,哪些打错了。我们用这些答对,答错的数据,来评判一个模型的好坏。
学过统计的人肯定都看过下面的图:
Confusion Matrix | 实际1 | 实际0 |
---|---|---|
预测1 | TP | FP |
预测0 | FN | TN |
很多人都是画出上面的图,然后手工计算各种指标:比如True Positive Rate,False Positive Rate,Presicion, Accuracy 等等,来评判模型好坏。我曾今见过一个分析师,拿着这张表格和业务部同事讲,告诉他们自己建的模型如何如何好,最后那个同事两眼无神的听了5分钟就走了。
了解True Positive Rate,False Positive Rate,ROC,AUC
例子:生病的小女孩
下图中,
- 上面那排皱眉流汗的小女孩是确实生病的;
-
下面那排流鼻涕的是没有生病的小女孩。
我们请机器人模型根据她们的化验指标判断这10个人有没有生病,机器人的诊断结果用勾和叉表示。我们看到,真正生病的女孩中,机器人找对了4个,但是有一个没有生病的小女孩,机器人觉得她是生病的。
这样我们可以算出:True Positive Rate 是 4/6 (0.67) , False Positive Rate 是¼ (0.25)
之前我们提过,机器人模型会给每个小女孩打分,然后通过分值大小判断有没有得病。
首先机器人,设定的标准是,小女孩打分在0.5以上,就判定为生病了。这样我们可以算出,
TPR,FPR分别是(0.25,0.67),我们可以把这个点画在X轴是FPR,Y轴是TPR的坐标中。
然后机器人觉得,我定的标准是不是有点高,如果换成0.4为判定标准呢?因为低了0.1,所以打分0.4的小女孩,从原来没有生病的小女孩,变成了生病的小女孩。这样我们又有了一组新的坐标
机器人想,既然我是自动化的机器人,用不同的判断标准都算一遍,应该不是难事吧。于是,无数点连城了一条曲线。ROC是图中的一条线,而AUC是ROC下面包含的面积大小,用百分百表示,区间范围在(50%~100%),通常来说AUC越大越好。
除了ROC/AUC,还有什么指标评价模型好坏吗?
LIFT 和 GAIN 图形
例子:优惠券
商家想做一个市场活动,发个8折优惠券。建模分析师为了判定自己建的模型好坏,从去年优惠券活动中随机挑选了1500个人,用模型给他们从高到低打了分。通常来说如果不挑人投放的话,这种优惠券的响应率在53%左右,下面我们看看用模型挑人的话,会怎么样?
- 以下表格推荐用PC浏览器阅读
%dataset | 人数 | 使用人数 | 累计人数 | 累计使用人数 | 累计响应率 | LIFT 与基础响应率比值 | GAIN |
---|---|---|---|---|---|---|---|
第一档10% | 15 | 130 | 150 | 130 | 87% | 1.63 | 16.3% |
第二档20% | 15 | 120 | 300 | 250 | 83% | 1.56 | 31.3% |
第三档30% | 15 | 130 | 450 | 380 | 84% | 1.58 | 47.5% |
第四档40% | 15 | 110 | 600 | 490 | 82% | 1.53 | 61.3% |
第五档50% | 15 | 100 | 750 | 590 | 79% | 1.48 | 73% |
第六档60% | 15 | 90 | 900 | 680 | 76% | 1.42 | 85.0% |
第七档70% | 15 | 30 | 1050 | 710 | 68% | 1.27 | 88.8% |
第八档80% | 15 | 40 | 1200 | 750 | 63% | 1.17 | 93.8% |
第九档90% | 15 | 30 | 1350 | 780 | 58% | 1.08 | 97.5% |
第十档100% | 15 | 20 | 1500 | 800 | 53% | 1.00 | 100% |
总人数:1500人,优惠券使用数800,基础响应率 80/1500 = 53%
我们把1500个人,根据模型认为会使用优惠券的可能性,按打分从高到低排列,分成10档,每档150个人。
从图中看,第一档的人数是150人,其中有130人使用优惠券,响应率是87%。前面提到,不用模型挑选,活动响应率是53%,那么用模型挑选出的第一档的人群比起不用模型,提升了1.63倍(=87%/53%)。
接下来模型定义的第一档和第二档,累计人数是300人,累计使用优惠券是250人,那么响应率是83%,这用模型定义的两档人群比起不用模型,提升了1.56倍。
再看第一档,第二档,第三档,累计人数450人。。。 以此类推。我们可以得到红色的LIFT(提升)图。其中X轴是每个档做包含的占比,Y轴是对应的提升率。
同样的,我们可以画出GAIN(获得率)图,模型挑选的第一档人群中,有130个人使用了优惠券,而总共有800个人使用,所以模型第一档的获得率是16.3%(=130/800)。第一档和第二档累计是有250个人使用,这两档的获得率是31.3%, 以此类推。。。
一个好的模型的判定标准之一,就是要大于不用模型挑选的响应率,而且越大越好。在 lift 图中,表现就是,在 Y轴对应的提升度为 1 之前,lift 一直保持较高的(大于 1 的)数值,并且曲线足够的陡峭,逐渐变小趋近1。
像我们图中的优惠券其实并不是一个很好的模型。因为在LIFT图中,第三档的圆点高于第二档的圆点,也就是说这个模型并没有把会响应的人打相对的高分,导致有些确实响应的人被模型分配去了更低的档位。
还有其他什么指标能判定吗?
我们还会计算Precision,Accuracy,计算方法如下
关于TPR,FPR等指标的其他叫法
不同的文献对于这些专业名词有不同的叫法,有些人还喜欢中英混杂,下面列出了是其他叫法:
-
TRUE POSITIVE RATE(TPR), 其他的叫法有:覆盖率,召回率,敏感度,真阳率,Recall,SENSITIVITY,等等,当你面试的时候,面试官问,那你的模型召回率是多少啊,可千万心中别默想,我怎么从来没有听说过这个名字 (囧)。
-
FALSE POSITIVE RATE(FPR),又叫假阳率,1- Specificity。
-
Precision 除了叫精准率之外,还有叫命中率,POSITIVE PREDICTIVE VALUE等等。
-
Accuracy 叫精确率(不要和precision混淆)。
各种指标如何应用
说了那么多,其实分类模型最重要的就是选那个划定指标(阙值/Threshold)。 但是如何挑选我们要根据实际应用,比如广告的投放预算,可承担的风险来设定。
比如:医生看病,比如非典,错诊一个的代价非常大。那这时我们需要模型的TPR尽可能高。因为我希望真正得病的人中,医生找到的比例也多。
再比如,亚马逊给每个人推荐10个产品,那这时候,我就希望模型的Precision很高,因为我希望,我推荐的产品中,确实是用户喜欢的比例高。
还有根据市场部的预算,我们可以通过Lift图,看一下哪些档的人群累计响应率高,更好的利用预算
市场部从业人员的思考
大数据环境下的优惠券发放,已经不局限于用传统的CRM理论来设计场景。想要在如今赢的更多的利润,获得更多的市场份额,大数据的思维必不可少。
传统企业的从业人员应该剔除固有思维,在企业内部开始形成全面的数据流转,存储机制,并且积极参与大数据的应用,才能做大自己的蛋糕。