【问题标题】:Random Forest: Missing Values随机森林:缺失值
【发布时间】:2021-08-17 08:58:08
【问题描述】:

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

【问题讨论】:

  • 只是将该变量的缺失值归为“空”或“未知”?
  • 变量是连续的,所以我不确定这样做是否正确。

标签: matlab machine-learning random-forest


【解决方案1】:

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

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

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

名为 MissForest 的第二个 method 在计算上有点复杂。由于您不知道其价值,因此有关您错过它的原因的信息不会有太大帮助。尽管如此,您仍然可以迭代地找到要设置的最佳值,而不是缺少一个。

【讨论】:

  • 将缺失值(比如说)设置为 -101 如果原因是原因 #1,-102 是原因 #2 等,这意味着对我认为不是很正确的原因进行排名不是序数。不过谢谢!
  • 你说得对,第一种方法很幼稚。使用第二个以获得更好的结果。 MissForest 不做任何假设,即使在几次迭代中也能提供良好的结果。
猜你喜欢
  • 2012-01-12
  • 1970-01-01
  • 2020-04-03
  • 2021-03-21
  • 2019-04-16
  • 2017-12-04
  • 2016-05-07
  • 2017-03-15
  • 2017-04-17
相关资源
最近更新 更多