我正在使用R中的gbm包处理一些大型数据集。我的预测变量矩阵和响应向量都很稀疏(即,大多数条目为零)。我希望使用一种可以利用这种稀疏性的算法来构建决策树,就像在这里所做的那样。在该论文中,就像我所遇到的情况一样,大多数项目只有许多可能的功能中的少数,因此,除非数据中另有明确说明,否则它们可以通过假设其项目缺少给定功能来避免大量的计算浪费。我的希望是,通过使用这种算法(然后将增强算法包装在其周围以提高预测精度),我可以获得类似的加速效果。
由于他们似乎没有发布代码,所以我想知道是否有针对这种情况优化的开源软件包或库(任何语言)。理想情况下,我想要一种可以直接从R的Matrix
包装中获取稀疏矩阵的东西,但我将尽我所能。
我环顾四周,看来应该是这样的事情:
化学家似乎经常遇到这个问题(我上面链接的文章是关于学习寻找新的药物化合物的),但是我可以找到的实现是化学分析的专有或高度专业化的实现。不过,其中之一可能会被重新利用。
文档分类似乎也是从稀疏特征空间学习的一个有用的领域(大多数文档包含的单词不多)。例如,有一个倾斜的参考稀疏实施C4.5的(一个手推车类算法)在本文中,但不包含代码。
根据邮件列表,WEKA可以接受稀疏数据,但是与我上面链接的论文中的方法不同,WEKA在避免浪费CPU周期方面并未进行优化以实际利用它。
提前致谢!
glmnet
并e1071::svm
都支持稀疏Matrix
对象。 GAMboost
并且GLMboost
(来自package GAMboost
)也可以。