R 中的内存高效分类器适用于极宽且不太长的训练集

top*_*hef 5 regression r classification correlation random-forest

训练数据集非常广泛(大约 200K 个特征)并且非常短(数百个)。显然该数据集占用了大量内存,但 R 读取它没有问题。

然后我训练了随机森林分类器,但它的内存不足。所以我改用更简单的分类器,比如朴素贝叶斯。NB也导致内存不足。

一般来说,内存效率最高的分类器是什么?我怀疑逻辑回归和朴素贝叶斯应该列入名单......

更新:

在使用随机森林之前,我最终使用了特征缩减方法。包插入符号可以提供帮助,但在我的情况下对变量的初始数量没有帮助。

使用的特征缩减:

  • 方差阈值过滤器(删除方差低于阈值的特征);
  • 特征与预测值的相关性:去除相关性较低的特征;
  • 特征成对相关性:去除高成对相关性特征。

And*_*bas 2

内存效率最高的算法是基于在线学习(不会将整个数据集加载到内存中,而是一次学习一个实例)和特征哈希(也称为哈希技巧)的算法(它可以将任意大的特征向量转换为通过使用散列来预定义/固定大小)。逻辑回归和线性 SVM 都有在线学习和基于特征哈希的实现(分别归结为逻辑损失或铰链损失的优化)。

我不知道 R 中的实现(可能有,只是不太了解 R 库),但使用这些技术的一个非常可靠且广泛使用的学习器是Vowpal Wabbit。它们也在Scikit-Learn中实现。