随机森林:缺失值

时间:2021-05-29 10:26:57

标签: matlab machine-learning random-forest

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

1 个答案:

答案 0 :(得分:0)

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

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

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

称为 MissForest 的第二个 method 在计算上有点复杂。因为你不知道它的价值,所以关于你为什么错过它的信息并没有多大贡献。尽管如此,您仍然可以找到要设置的最佳值,而不是反复查找缺失的值。