R语言数据挖掘实践——Rattle在模型评估中的应用

R语言数据挖掘实践——Rattle在模型评估中的应用

混淆矩阵

在Rattle程序包中,Evaluate的默认评估标准即为混淆矩阵。在单击“执行”按钮之后系统将会根据所选数据集,计算得出相应所选模型的混淆矩阵。

该矩阵主要用于比较模型预测值同实际真实值之间的差别。通过混淆矩阵我们能够很清晰地观察到模型中的正确肯定判断、错误肯定判断、正确否定判断以及错误肯定判断的具体情况,这有利于我们根据实际需求去调整相应的模型。

下图为利用天气数据集所建立的随机森林模型混淆矩阵。

R语言数据挖掘实践——Rattle在模型评估中的应用

其中第一个矩阵中的数据代表的是样本的个数,另一个矩阵中的数据则代表了该类别样本占总样本的比率。根据上图显示,我们可以得到的消息有以下三个方面:

  • 进行混淆矩阵分析的模型为随机森林模型;

  • 进行混淆矩阵分析的数据来自于原始数据中的Validation数据集;

  • 模型总计误判率为0.1,其中模型中存在错误的肯定预测1个,所占百分比为2%,而存在错误的否定预测4个,占样本总数的8%。

根据分析结果可以看出,在模型中“错误的否定预测”较多,如果模型所处理的实际问题中对于错误的否定预测损失较大,那么我们就应该对模型进行适当调整,最简单的做法便是在建立模型的时候为模型赋予一个权重值,即加大模型中肯定结果的权重。

风险图

模型的风险图通常也被称之为累计增益图,该图像主要提供了二分类模型评估中的另一种透视图,该图像可以通过Evaluate界面中的Risk选项直接生成而得到。在接下来对于模型风险图的分析中,我们将利用一份审计数据集进行示例。

这份审计数据集包含的是一份关于纳税人的纳税审计情况,该份数据为二分类数据。在该数据集中肯定的结果代表的是纳税人由于报表中的不准确而被要求修改纳税申报表;相反,在该数据中否定的结果则代表纳税人的纳税申报表不用进行调整。对于每次调整我们都记录了它相应的金额,这便是风险表中的风险变量。

我们根据这份审计数据在Rattle程序包中构建随机森林模型,生成的相应风险图如下:

R语言数据挖掘实践——Rattle在模型评估中的应用

在理解风险表的时候,我们首先需要找到该问题的核心,并且找到该模型的特定环境。在本案例中,这个特定的情节就是对纳税人所进行的审计活动。假设我们每年将会对100000人进行审计,根据风险图中显示,那么将会存在24000人需要对它们各自的纳税申报表进行调整。我们将这个比率(24%)称之为strike rate。

在现实生活中,通常会由于经费与时间的限制而导致我们并不能进行大样本的分析。例如,假设我们现有的资金量仅允许我们针对50000名纳税者进行审计工作。相比较原来的100000名纳税人的审计,我们现在需要从以前的样本中随机挑选出50%的样本进行审计,那么我们是否也可以认为在这50%的样本中同样是有24%的纳税人需要进行纳税申报表的调整呢?换言之,在这50000名被审计的纳税人中,是否存在着12000人需要进行纳税申报表的调整呢?

上图所示的模型风险图中,从(0,0)点至(100,100)点的对角线就代表了一个随机抽样的过程,即一个随机的50%抽样同时会带来原模型50%的性能,我们将把这条对角线看作一条基准线。

上面构建的随机森林模型将会对纳税者是否需要进行纳税申报表调整给出一个似然值的预测。对于每一位纳税人,模型都会给出一个评分,而这个评分可以看作“纳税人是否需要进行纳税申报表调整”的概率。那么我们将这个评分进行排序,则分数较高的纳税人将会比分数较低的纳税人有更高风险去进行纳税申报表的调整。试想一下,如果在我们随机挑选50000名纳税人进行审计的时候,所挑选到的纳税人都是具有高风险值的纳税人,那么最后的模型结果又会是什么情况呢?

上图基准线上方的绿色实线所代表的是根据模型对数据进行重新排列后,新得到的模型还能具有原模型多少性能的百分比。在图中我们可以看到,对于一个50%的样本比,模型的性能将会下降到原始性能的88%。换言之,模型在50%样本的情况下还能够识别出88%的肯定样本。

ROC图及相关图表

模型的ROC图像同样也是一种比较常见的用于数据挖掘的模型评估图。此外,与ROC相关且类似的图像还有敏感度与特异性图像、增益图、精确度与敏感度图像,但是在这些图像之中,ROC图像是使用最广泛的。

ROC图像的形式与风险图较为类似,不同之处在于各自的坐标轴不同。上述四种图像中,两两之间的区别在于各自坐标轴所代表的内容不同。

  • 在ROC图像中绘制的为正确肯定判断率与错误肯定判断率之间的关系图;

  • 在敏感度与特异性图像中,横纵坐标分别代表了模型的特异性与模型的敏感度;

  • 在增益图中,图像的横轴代表的是抽取原始样本的比例;

  • 在精确度与敏感度图像中,纵轴代表的是模型的精确度,横轴代表的是模型的敏感度

R语言数据挖掘实践——Rattle在模型评估中的应用

模型得分数据集

Rattle程序包还提供了一个得分数据集的按钮。

该按钮的主要作用是让我们能够将模型分析预测结果保存为文件的形式,以便于我们能够在其它软件中对模型进行更多的分析活动,而不仅仅是跑一遍数据生成一个模型这么简单。Rattle会根据我们所选择的数据利用模型进行预测,并将预测结果以CSV文件的格式进行保存。

R语言数据挖掘实践——Rattle在模型评估中的应用


分享到:


相關文章: