预测模型是不是准确率越高越好?

对于一个数据挖掘项目而言,我们可以选择的模型众多,比如我们可以选择:线性回归、Logistic 回归、决策树、集成算法等,同样对于一个模型而言,也有很多参数和图形来评估模型好坏。数据挖掘的目的不能是简单地构建一个预测模型,而是创建和选择一个对样本以外数据也能做到高精度的模型。因此,在计算预测值之前,检查模型的准确性至关重要。

模型评估的指标有很多,比如仅分类模型的评估指标就有准确率,精确率,查全率,提升度等等。那么,为什么要搞这么多指标,有一个准确率不就够了吗?

我们从一个夸张点的例子来入手讨论,机场识别恐怖分子,在 100 万人里有 5 个恐怖分子,因为恐怖分子是极少数,如果使用准确率来评估模型的话,那只要把所有人都识别成正常人,其准确率可以达到 99.9995%,但显然这种模型没什么意义,这时就需要建立一个查全率高的模型,比如两个模型的混淆矩阵如下:

只考虑准确率,会选择 A 模型,但它根本无法识别恐怖分子。而模型 B,虽然准确率低,但可以把全部恐怖分子都识别出来,尽管可能冤枉几个好人,但总比被恐怖分子钻空子好的多。在这种正负样本不平衡的场景中,少数样本通常是我们所关注的,仅考虑准确率并没有实际意义。类似的场景在业务中还有很多,比如网贷违约率,相对好用户,我们更关心坏用户。查全率越高,代表实际坏用户中被预测出来的概率越高。还有医药行业中癌症的诊断,保险行业中的理赔风险,制造业中的不良产品判断等等

再来看一个精确率应用的例子,某企业希望销售 50 件产品,该企业建立了两个模型来选择待推销客户,混淆矩阵如下图,应该选择哪个模型?

只考虑准确率,似乎应当选择A 模型,但这时候我们需要对75(=50/0.667,预测购买者中有 66.7% 的实际会购买,即精确率)个客户推销才可能卖出 50 件商品;而选择模型 B,则只要对60(=50/0.833)个客户推销就可能卖出 50 件商品了,推销成本反而降低了。在这个场景中,我们只关心能被推销成功的那些客户,而不能成功推销且被正确预测为不能成功推销的,虽然有助于提高模型的准确率,对我们却没什么意义。因此,这里用精确率来评估模型的好坏会更加合适。

关于评价指标选取的重要性,有时候不是我们没做出好的模型,而是我们没选择对正确的评价指标。不同的指标的应用场景不同,预测模型不能只看准确率而要结合业务问题选择合适的评估指标。上述只是两个非常简单的例子,模型的评估指标有很多准确率只是其中一种,除了指标计算还有一些图形化的方法也可以用来评估模型,比如 ROC 曲线,Lift 曲线,查全率曲线,还有回归模型中用到的残差图等等。如果这些指标和图形都要手动计算和绘制也挺麻烦的,但是使用自动建模工具就非常方便了,除了可以自动建模外,它还会自动计算出各种评价指标,用户只需要知道如何使用这些指标就可以了,使用起来非常方便。

想了解更多的评估指标如何使用或对进一步数据挖掘和 AI 技术感兴趣的同学还可以搜索“乾学院”,上面有面向小白的零基础“数据挖掘”免费课程,或者直接点下面的链接也可以:
http://www.raqsoft.com.cn/wx/course-data-mining.html