是否有一个随机森林实现可以很好地处理非常稀疏的数据?

机器算法验证 r 随机森林
2022-01-30 17:28:45

是否有一个 R 随机森林实现可以很好地处理非常稀疏的数据?我有数千或数百万个布尔输入变量,但对于任何给定的示例,只有数百个左右为真。

我对 R 比较陌生,注意到有一个用于处理稀疏数据的“Matrix”包,但标准的“randomForest”包似乎无法识别这种数据类型。如果重要的话,输入数据将在 R 之外生成并导入。

有什么建议吗?我还可以考虑使用 Weka、Mahout 或其他软件包。

4个回答

不,R 中没有针对稀疏数据的 RF 实现。部分原因是 RF 不太适合此类问题——装袋和次优的拆分选择可能会浪费大部分模型对仅零区域的洞察力。

尝试一些内核方法,或者更好地考虑使用一些描述符将您的数据转换为更丰富的表示(或使用一些降维方法)。

实际上,是的

xgboost是为 eXtreme 梯度提升而设计的。这是目前许多人在 R 中运行具有稀疏矩阵的模型的首选包,正如上面的链接所解释的,您可以通过调整参数将它用于随机森林

R包“游侠”应该做。

https://cran.r-project.org/web/packages/ranger/ranger.pdf

随机森林的快速实现,特别适用于高维数据。

与 randomForest 相比,这个包可能是我见过的最快的 RF 实现。它以本机方式处理分类变量。

有一个名为 Quick-R 的博客可以帮助您了解 R 的基础知识。

R 适用于包。每个包都可以做不同的事情。有一个名为“randomForests”的包应该正是你所要求的。

请注意,无论您采用哪种方法,稀疏数据都会产生问题。据我所知,这是一个非常开放的问题,一般而言,数据挖掘与其说是科学,不如说是一门艺术。随机森林总体上做得很好,但它们并不总是最好的方法。你可能想尝试一个有很多层的神经网络,这可能会有所帮助。