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


23

是否有一个R随机森林实现方案可以很好地处理稀疏数据?我有成千上万的布尔输入变量,但是对于任何给定的示例,只有几百个布尔值才是TRUE。

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

有什么建议吗?我也可以研究使用Weka,Mahout或其他软件包。


据我所知,没有用于稀疏决策树的R包。我相信那里有稀疏决策树的算法,如果在R中实现,则可用于构建随机森林。
Zach 2012年

2
这是一个很好的候选人:cs.cornell.edu/~nk/fest。如果可以libsvm格式导出数据,则可以使用此命令行程序。希望看到一个R端口...
Zach 2012年

Zach-链接似乎已消失。
Benoit_Plante

2
@ cmoibenlepro链接为lowrank.net/nikos/fest
seanv507

链接的工作对我罚款
大卫·马克思

Answers:


13

不,在R中没有针对稀疏数据的RF实现。部分原因是RF无法很好地解决此类问题-装袋和分割的次优选择可能会浪费大多数对零值区域的模型洞察力。

尝试一些内核方法,或者更好地考虑将数据转换为带有某些描述符的更高级的表示形式(或使用某些降维方法)。


Hack-R的答案指出了xgboost软件包,它完全能够处理稀疏矩阵的随机森林。
埃德加

7

实际上,是的

xgboost是为极限梯度增强而制作的。目前,对于很多人来说,这是运行带有R稀疏矩阵的模型的首选软件包,并且如上面的链接所述,您可以通过调整参数将其用于随机森林



-4

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

R与包一起使用。每个程序包可以做不同的事情。有一个叫做“ randomForests”的软件包,应该正是您所要的。

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


4
不,众所周知,randomForest的数据稀疏,因此很糟糕。在整个randomForest中,classwt参数未正确实现。手动过采样是一种方法,但是却弄乱了OOB错误。顺便说一句,该程序包不称为“ randomForests”。
smci 2015年

1
正确的部分不是问题的答案。
Sycorax说,恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.