模型评估有时候要用precision和recall,有时候用AUC,不存在优缺点问题,只存在适用性问题。
模型评估为啥不用precision和recall?因为它支持不了我的决策啊。。 同样的问题,根据不同情况,我可以问100个: 为啥这个模型评估不用AUC?而要用logloss,因为它支持不了我的决策啊 为啥这个模型评估不用logloss,而要用ROI?因为它支持不了我的决策啊 为啥这个模型不用ROI logloss而只用recall,因为recall更支持我的决策啊
还有为啥还有PRC啊,F1,KS值啊,ROI,logloss值等一大堆指标?这些有啥用?这应该是很多新手都会疑惑的问题。也是我当年作为小白,看了一点书也会问的问题,后来看了大量案例和实践才慢慢有了体会的,一知半解的初学者,无法理解。。学校里没业务sense的教授,大多也解释不清楚。。
总之
题主搞清楚,先有决策需求,再有评估方案和指标的。。。而不是问,为啥不是所有模型的评估都用这套P&R的指标?这是挺奇葩的认知。。手里拿着锤子,见啥都是钉子,敲一敲么?
........
为了增强您对“决策需求”这个问题的理解,针对您的提问,先举个例子吧:
assume两个老哥AB,各做了一个欺诈识别模型pk,谁赢了就升职,out了就裁员,对于原始分布测试集,A测出来是precision80% recall 50%,B测出来两项各是70%和60%,那个模型更好呢?
A说了,我的模型精度更高,出来的人群包精度更高,很准啊,而且召回率也不低 B说了,我的模型召回率更高,而且精度也不低
听谁的呢? 业务VP某w总说话了:我们最做欺诈发现,主要是看recall召回率,precision低的可以用人工审核和增信手段进行管理,所以我觉得B的模型更好
A听了很不服气,突然心生一计,把自己逻辑回归模型里面sigmoid函数的截距调了,变成0.4概率的为1,其他为0,模型也没重新训练,w权值向量也没动,但,就这样模型效果变成precision50%recall80%(这最低端的调参动作)
这时候,A得意洋洋的开吹了,你看,我这个模型是可以调的,现在我的recall80%了,更加满足了w总您的需求 谁知,B也调了一个参数,recall85%精度也接近,两个人吵的不可开交,快打起来了
w总又说话了,这你们两变来变去,要不你们把你们能调的参数都放进坐标轴去,看谁更合适吧
假的roc曲线图(轴已转换为recall和precision,数据很假,不太可能出现,只是for example)
看着这个图,w总说了,咱们这样,这两曲线也不知道谁更厉害,只能说各有千秋,要不咱公平点,用微积分的方式,谁的曲线和x轴的面积大,谁就整体来说,预测的更准,毕竟我看到B的曲线左边那块好像表现好一点,A的曲线在右侧只是略优于B
这就是AUC(ROC曲线下部分的面积),结果表明B的更好
似乎要下定论了,这时,一旁一直没说话的数据分析师开口了,他之前负责用数据统计的方式做这个预测,似乎是最有发言权的人
可他,竟然说
我不赞同w总这种评估方式,我认为b的更好,原因有二 1-w总说ab相交处,右侧面积a远远大于b,a在召回率低的情况下,精度大幅度高于b,这个没意义,因为我手工圈人也可以做到类似的精度,我们模型里面有几个逾期和拒接电话等违约行为特征,这种精度带来的auc面积提升没有太大意义 2-我更关注的是,在保持最低人工复核成本精度前提下,b竟然做到了95%的召回率,你要知道一个客户给我们带来数十万的损失,它帮我们多召回一个,提前干预得当,以我目前5块一个的审核成本计算,抵得上数百倍我的人工审核成本了,而a的模型在这块却表现不佳 3-我觉得模型创造价值最大的地方,是在于中间地带人群的识别,他们建模应该把那些铁定违约的人拿走,因为那些人都已经逾期和拒接电话了,傻的都知道啥情况,建议模型只对中间人群做预测,看谁分辩的更准,谁能帮我们提前发现可能违约的人,这才是模型真正创造业务价值的地方
综上,我更支持b模型!
W总听的连连点头,可还是没想好怎么选。。。
小朋友们,你会怎么选呢?
回过头来,想想题主你的问题,你觉得自己这个考虑问题的方式对吗?先有鸡,还是先有蛋?先考虑清楚决策需求,还是先考虑指标?
其实,很多答主,随便拷贝点网文或教科书都可以告诉你一大堆标准答案,但经验告诉我,这对增长初学者对模型评估的insight基本无益,因为没人帮你抓住最本质问题。。。
尝试解答你的疑惑,理清本质,我想向你指出2个关键问题,并和你分享我在这两个方面的洞察:
1-模型评估的目的有哪些? 2-不同目的,采用什么指标来做评估?
如果对两个问题有深入的思考,你学习数据挖掘模型的评估和调参,会更有感觉(机器学习感觉也接近,只是他们的数据sense和场景洞察会更难,比如nlp和ctr预估之类)
part1,模型评估的目的是什么? 一般来说,数据挖掘项目经理,在模型评估这个阶段一般要输出以下3个层面的递进结论:
1-模型调优:各个模型表现如何?在参数,训练集,特征,算法,cost function等方面,还有那些需要调整的地方?这时是为了要把模型迭代调整到最优状态。
2-模型筛选:对于调到各自最优状态的多个模型(不同参数不同算法不同特征组合甚至不同比例和样本权重设置的训练集),究竟那个模型表现更好?结合业务和技术角度,那个是更值得部署的冠军模型?作为建模人员你要有一个结论!
3-业务决策:跑完验证集评估,各个模型也调到最优状态了,也选好冠军模型了,这个冠军模型是不是work?work到什么程度?和原来的方案比怎么样?怎么跟业务部门老总解释这个模型的效果?如何帮助老板决定花多少预算在这个模型上?(可能是几十万,也可能是影响千万的生意)
以上这三个方面,可不是捣鼓那点数据集之类的问题,是每个项目都要经受的挑战
part2不同目的,要用到那些指标?怎么做分析?并得出结论? 对于1,模型调优方向问题 先看样本角度,ROC曲线,不同种类样本的recall precision,是否需要平衡,加权,删减等 再看特征角度,各个模型的特征权重,比如coef. gini 等,是否需要删除,添加,优化,组合,归一化,异常处理做的好不好 后看算法的技术参数角度,看cost function指标 比如logloss epoch-loss 熵 等指标,不同算法不一样,结合不同样本的分类效果,感受你需要调整的参数(有点玄,晕,但这真的很需要数据sense) 最后看具体模型的非技术参数角度,主要看precision和recall就行了
对于2,冠军模型的选择问题 如果是分类算法,假设各个模型都调到最优了,各个模型对着原始分布测试集跑一遍,看一下ROC,看测出来的AUC和KS之类的高阶指标就能解决冠军模型的筛选问题,precision和recall在这里作用基本没法用。也许这就是你的疑惑所在?哈哈。。我的案例应该解答了你的问题啦 另外像AUC KS logloss这些常用于模型筛选的指标最好都建立一下数据感觉,比如1比1样本里AUC值最低是0.5(这值就等于随机抽样了),但是样本比例变化后,p&r两个值会变化,你不要拿着不同分布样本集测出来的P&R来跟别人说模型筛选的事情。。。
对于3,模型部署的最终业务决策
主要靠测试集的precision和recall这种比较直接浅显的指标来解决,更重要的是要基于ROC或者别的曲线,甚至是直接模型上马以后,输入现实的成本和收益指标,去算不同pentile分数段的ROI等等(我刚才举的吵架的例子,往往是看不同分数段的召回率,及其每召回一个需要付出的人工审核成本,毕竟几十个只有一个是真的坏账),帮助老板做预算决策,因为数据挖掘模型的部署,往往意味着成本投入,和原有业务的重构,你要为高层的决策提供更进一步的各种数据支持。。