Introduction

  • 预测模型遵循积极的反馈原则。你建了一个模型,通过评估标准(metrics)得到反馈,然后不断改善模型知道达到你预期的准确率。评估标准解释了模型的性能。评估标准很重要的一点是它能够辨别不同模型的结果。
  • 很多坦率的分析学者,甚至都没有check模型的准确率。一旦他们建好了模型,他们就会用它来对新的数据进行预测。这是一个错误的做法。
  • 坦白说,建立一个预测模型并不是你的目的,而是你建好了模型还要从中选出一个对新数据预测有较高准确率的模型(泛化能力强)。所以,检测模型的准确率比计算预测值更重要。
  • 在我们的行业中,对于不同的模型有不同的评估标准。评估标准的选择完全依赖于模型的类型和模型的实现。当你建好了模型之后,以下7中模型评估标准的方法会帮助你评估模型的准确率。考虑到交叉验证(cross-validation)的日益流行。我也会本文中提及。

热身:预测模型的类型

  • 当我们谈及预测模型,我们要不是谈到回归模型(连续输出)就是谈到分类模型(名词性的或者二分类输出)。这两种模型所用的评估标准是有所不同的。

  • 在分类问题当中,我们利用两种算法(根据输出的不同):

    1. 类别输出:像SVM和KNN会产生一个类别输出。譬如,在一个二分类问题中,输出不是0就是1。然而,现在我们有了可以把二分类问题转化成概率。但这些方法目前并没有很好的被统计社区所接纳。
    2. 概率输出:像逻辑斯特回归,随机森林,Gradient Boosting,Adaboost等等算法,会得到概率输出。而把概率输出转化成类别输出只是产生一个阈值的问题。
  • 在回归的问题中,我们没有断开的输出,输出都是连续的。

阐述性的例子

  • 关于分类模型评估的讨论。我用到了Kaggle上的BCI挑战问题的预测结果。解决问题的方法和讨论是不相干的。但是训练集上的最后预测值被用到了本文中。这个问题的预测是概率输出,但是利用阈值0.5转化成了分类问题。

混淆矩阵

  • 混淆矩阵是一个N X N的矩阵,N是待预测的类别个数。现有的问题中N = 2,所以我们会得到一个 2 X 2的矩阵。以下是一些定义。你需要记住:
    • 准确率:所有的预测当中预测正确的比例。
    • Positive Predictive Value或者命中率:即预测分类结果为正样本当中分类正确的比例。
    • Negative Predictive Value:即预测分类结果为负样本当中分类正确的比例。
    • 敏感率或者召回率:即真实分类结果为正样本当中预测正确的比例。
    • 特异率:即真实分类结果为负样本当中预测正确的比例。

101

  • 现在的问题准确率达到了88%。由上表你可以看到,Positive predictive Value非常高,但是negative predictive value就非常低。Senstivity和Specificity都是一样。主要是因为我们已经定好了阈值。如果我们减小我们的阈值,那么这两队明显不同的数字就会变得更近。
  • 通常我们会考虑以上的一对作为评估标准。譬如,在一间医药公司,他们就会更加关注更小的错误的正样本诊断。所以,他们就会想要高的Specificity(特异率)。另一方面,损耗模型就会更关注Senstivity(敏感率)。混淆矩阵通常用作分类模型的。

Gain and Lift charts(获得和提升表)

  • Gain and Lift charts主要是用来检测概率的排序。以下就是建立一个Gain/Life表的过程:

    1. 计算每个观测量的概率
    2. 根据概率对观测量从高到低排序
    3. 建立十分位数,每组最多有10%的观测量
    4. 为每组十分位数计算好的,坏的和总共的反应率
  • 你会得到以下的Gain/Lift表:
    201

  • 这是一张很有信息量的表格。累计增益表是一个Cumulative %Right和Cumulative %Population之间的图。这个例子当中的图如下:
    202

  • 这个表格会告诉你你的模型有没有很好把responders和non-responders分离开来。譬如,