随机森林:缺失值

Random Forest: Missing Values

我的随机森林模型中的一个特征有缺失值。数据丢失有 5 个原因,我知道所有缺失值的原因。我的问题是如何将这些信息输入模型?由于数据丢失,我可以创建一个分类变量(或编码的虚拟变量),但是当我的主变量中有缺失值时,我如何确保随机森林从这个分类变量中获取信息?

添加另一个变量对您没有多大帮助,因为 1) Random For rest 假定变量是独立的,因此您将无法纠缠两个变量,并且 2) 它不保证它将全部使用它。

如果您想使用随机森林,您将不得不以一种或另一种方式估算缺失值。

最简单的方法是,如果您的变量在某个范围内,则将缺失值设置为编码原因的超出范围值。也就是说,如果您的变量位于 [-1..1] 范围内,如果原因是原因 #1,则将缺失值(比如)设置为 -101,原因 #2 则设置为 -102,等等。这个想法是允许算法找到不同值之间的明显边界。

第二个 method 称为 MissForest,计算复杂一些。由于您不知道它的价值,因此有关您错过它的原因的信息不会有太大帮助。尽管如此,您仍然可以找到最佳值来设置而不是迭代丢失的值。