大规模机器学习 [已关闭]

我需要在一个大数据集(100-1000亿条记录)上运行各种机器学习技术,问题主要围绕文本挖掘/信息提取,包括各种内核技术,但不限于它们(我们使用一些贝叶斯方法,引导,梯度提升,回归树 - 许多不同的问题和解决这些问题的方法)

什么是最佳实现?我在ML方面经验丰富,但没有太多经验如何为庞大的数据集做到这一点 是否有任何可扩展和可定制的机器学习库利用MapReduce基础设施 强烈偏好c ++,但Java和python可以亚马逊Azure或自己的数据中心(我们可以负担得起)?


答案 1

除非您尝试学习的分类状态空间非常大,否则我预计在具有 100-1000 亿条记录或训练样本的以文本挖掘为中心的数据集中存在显著的冗余。作为一个粗略的猜测,我怀疑人们需要远远超过1-2%的随机样本子集来学习可靠的分类器,这些分类器在交叉验证测试中会保持良好状态。

快速文献检索得出了以下相关论文。Tsang的论文声称n个训练样本的O(n)时间复杂度,并且有与之相关的软件可作为LibCVM工具包提供。Wolfe的论文描述了一种基于MapReduce的分布式EM方法。

最后,在2009 NIPS会议上有一个大型机器学习研讨会,看起来有很多有趣且相关的演讲。

引用

曾伟文, 郭富城, 张柏明 (2005).“核心向量机:在非常大的数据集上进行快速SVM训练”,《机器学习研究杂志》,第6卷,第363-392页。

J Wolfe, A Haghighi, D Klein (2008).“用于超大型数据集的完全分布式EM”,第25届机器学习国际会议论文集,第1184-1191页。

Olivier Camp,Joaquim B. L. Filipe,Slimane Hammoudi和Mario Piattini(2005)。“使用支持向量机算法挖掘非常大的数据集”,Enterprise Information Systems V,Springer Netherlands,第177-184页。


答案 2

Apache Mahout就是你正在寻找的。


推荐