Machine learning 在变量不适用的情况下,随机林缺少值

Machine learning 在变量不适用的情况下,随机林缺少值,machine-learning,null,regression,missing-data,imputation,Machine Learning,Null,Regression,Missing Data,Imputation,一些背景 我正在开发一个训练随机森林回归器,用于预测作物产量。我的一些预测变量仅适用于某些情况,例如,我有一个表示行数的变量,它仅适用于在多通道中生长的作物。如果作物在温室中生长,则行数不适用,因此保留为空值。我还有另一个变量,它表示作物是在多孔隧道还是温室下生长 问题 由于Random Forest不处理缺失值,是否有一种策略可以处理变量在不适用的情况下取空值的情况?关于这个主题的教程和论文暗示了价值观,但是在他们认为这些变量仍然适用的情况下,由于一些外部因素(例如富人通常不愿意透露他们的薪水

一些背景

我正在开发一个训练随机森林回归器,用于预测作物产量。我的一些预测变量仅适用于某些情况,例如,我有一个表示行数的变量,它仅适用于在多通道中生长的作物。如果作物在温室中生长,则行数不适用,因此保留为空值。我还有另一个变量,它表示作物是在多孔隧道还是温室下生长

问题


由于Random Forest不处理缺失值,是否有一种策略可以处理变量在不适用的情况下取空值的情况?关于这个主题的教程和论文暗示了价值观,但是在他们认为这些变量仍然适用的情况下,由于一些外部因素(例如富人通常不愿意透露他们的薪水)而丢失。p> 解决问题的最佳方法是给这些情况赋予一个特殊值

例如,如果polytunnel作物的行数范围为[0100],则对于温室中的所有样本,您将给出-1


您应该知道的是,树将使用polutunnel/galshouse变量分割数据。然后,polytunnel中的数据将根据行数进行评估,而glasshouse中的行数将被忽略,因为它是常量

是的,解决这个问题的最好方法是给这些情况一个特殊的值。例如,如果polytunnel作物的行数范围为[0100],则对于温室中的所有样本,您将给出-1。您应该知道的是,树将使用polutunnel/galshouse变量分割数据。然后,polytunnel中的数据将根据行数进行评估,而glasshouse中的行数将被忽略,因为它是常量。感谢您的回答-我现在已将您的方法应用于我的数据。我唯一担心的是它是否真的会在glasshouse/polytunnel上分裂——据我所知,random forest可能会决定首先使用行数,在这种情况下,-1填充值将产生有趣的结果。我认识到这取决于基础数据,因此,只要我在当前情况下采取最佳方法,我就很高兴!这是公平的。因此,我建议您检查绘制树结构时会发生什么。如果你有一个小数据集,你可以试着计算熵/基尼值来手动检查发生了什么。我会将评论作为答案发布