在 R 的 randomForest 包中,因子是否必须明确标记为因子?

ost*_*mer 5 statistics r factors random-forest

或者包会意识到它们不连续并将它们视为因素吗?我知道,对于分类来说,被分类的特征确实需要成为一个因素。但是预测功能呢?我已经在几个玩具数据集上运行了它,根据分类特征是数字还是因子,我得到的结果略有不同,但算法是随机的,所以我不知道结果的差异是否有意义。

谢谢你!

Lyz*_*deR 4

是的,两者之间是有区别的。如果您想使用因子变量,您应该将其指定为因子变量,而不是将其保留为数字。

\n\n

对于分类数据(实际上是 CrossValidated 上的一个非常好的答案):

\n\n
\n

对具有 N 个级别的因子进行拆分实际上是选择 (2^N)\xe2\x88\x922 种可能组合之一。因此,算法将检查所有可能的组合并选择产生更好分割的组合

\n
\n\n
\n\n

对于数值数据(如此处所示

\n\n
\n

对数值预测变量进行排序,然后计算每个值的基尼杂质或熵,并选择给出最佳分割的阈值。

\n
\n\n
\n\n

所以是的,无论您将其添加为因子还是数字变量,都会有所不同。差异有多大,还要看实际数据。

\n

  • 正如您所说,它确实取决于手头的数据。我在基因组数据上使用了“randomForest”包(因此所有预测变量都在 {0, 1} 中)并将它们作为连续或分类传递没有任何区别。在前一种情况下,分割的条件是“x > 0.5”或“x < 0.5”,这相当于 0 和 1 之间的二元选择。然而,令人费解的是,RF 对于分类预测器要慢得多,所以如果可以的话,我总是选择退出连续属性。 (2认同)