错误地应用随机森林模型?

数据挖掘 随机森林 预言
2022-02-11 23:31:35

我对随机森林模型(以及一般的数据科学)相当陌生,并且想知道我是否正在正确操作我创建的模型。

背景:我正在创建一个随机森林模型来预测员工自愿离职。

问题:测试集的准确度为 97%(AUC .992[这似乎太高了],精确度:88%,召回率:99%)vs 训练集的准确度为 96%,但随着我们不断收到新的自愿终止,他们的基于模型的概率往往小于 0.1。IE,表示他们不会离开。

我想这是有道理的,因为在创建模型时,这些员工仍在组织内,因此模型准确地将他们归类为公司,但准确分类员工是否仍在组织中是没有帮助,我需要能够识别出那些离职概率较高的员工,这就是我对 RF 模型的理解(我之前使用逻辑回归模型做过)。

我能想到的可能解释:

1) 数据集似乎不太不平衡:8054 个非术语与 2158 个术语

2)过拟合?但是测试集的准确性并没有大幅下降

3)高相关预测变量?

附代码。

谢谢! 在此处输入图像描述

2个回答

我认为你正确地识别了这个问题:如果你的模型试图对员工是留下还是离开进行分类,根据定义,只要他们是公司的员工,每个员工都会“留下”。

一个可能的方向是将响应变量设计为“员工是否在一年内离职?” (或任何特定时间段)。这样你就可以使用过去离开的员工和过去留下的员工的跨时间记录,即你可以有多个实例对应同一个员工在不同的时间。例如,您可以添加诸如“在过去 2 年内加薪或升职”之类的功能。

这看起来像是一个典型的阶级失衡案例,

  1. 您尝试对数据进行过采样。
  2. 由于您的目标是不太可能发生的事件,因此最好在高精度上进行优化,并且您可以在召回方面做出妥协。
  3. 看起来你很幸运,尝试使用 k 折交叉验证,同时将数据集分成测试和训练,这看起来有点奇怪,因为你的测试准确度高于训练准确度。这可能是由于几个原因,只能通过查看数据集来诊断。