【发布时间】:2013-05-23 23:40:40
【问题描述】:
训练数据集非常广泛(大约 200K 特征)并且非常短(数百个)。显然数据集占用了大量内存,但 R 读取它没有问题。
然后我训练了随机森林分类器,它的内存不足。所以我改用更简单的分类器,比如朴素贝叶斯。 NB也导致内存不足。
一般来说,最节省内存的分类器是什么?我怀疑逻辑回归和朴素贝叶斯应该列入名单......
UPD:
在使用随机森林之前,我最终使用了特征缩减方法。包caret 可以提供帮助,但在我的情况下,变量的初始数量没有帮助。
使用的功能缩减:
- 方差阈值过滤器(去除方差低于阈值的特征);
- 特征与预测值之间的相关性:移除了相关性较低的特征;
- 特征成对相关性:去除高成对相关性特征。
【问题讨论】:
-
你是如何努力让随机森林在 R 中高效运行的?并非所有默认设置都适用于像您这样的数据。
-
要补充 joran 所说的内容,我建议您在
randomForest(x, y,...)公式中使用以下选项:ntree、mtry、nodesize、maxnodes。所有这些都会影响随机森林的构建速度。从您对数据集的简要描述来看,我想说您可能想尝试减少mtry并增加nodesize和maxnodes。 -
我确实感谢对随机森林的帮助,但我仍然希望看到其他分类器建议。
标签: r classification regression correlation random-forest