我需要在一个大数据集(10-100亿条记录)上运行各种机器学习技术.问题主要是文本挖掘/信息提取,包括各种内核技术但不限于它们(我们使用一些贝叶斯方法,自举,渐变提升,回归树 - 许多不同的问题和解决方法)
什么是最好的实施?我在ML方面经验丰富,但是对于大型数据集没有多少经验.是否有任何可扩展和可定制的机器学习库利用MapReduce基础设施强烈偏好c ++,但Java和python是可以的亚马逊Azure或自己的数据中心(我们可以买得起)?
除非您尝试学习的分类状态空间非常大,否则我认为在以文本挖掘为重点的数据集中存在大量冗余,其中包含10-100亿条记录或训练样本.粗略猜测一下,我怀疑是否需要比1-2%随机样本子集更多的东西来学习可靠的分类器,这些分类器在交叉验证测试中能够很好地保留.
快速文献检索提出了以下相关论文.Tsang论文声称n 个训练样本的时间复杂度为O(n),并且有与之相关的软件可用作LibCVM工具包.Wolfe论文描述了一种基于MapReduce的分布式EM方法.
最后,在NIPS 2009大会上有一个大型机器学习研讨会,看起来有很多有趣和相关的演示.
参考
Ivor W. Tsang,James T. Kwok,Pak-Ming Cheung(2005)." 核心矢量机:超大型数据集上的快速SVM训练 ",机器学习研究期刊,第6卷,第363-392页.
J Wolfe,A Haghighi,D Klein(2008)." 全分布式EM为大型数据集 ",机器学习,第1184至1191年的第25届国际会议论文集.
Olivier Camp,Joaquim BL Filipe,Slimane Hammoudi和Mario Piattini(2005)." 使用支持向量机算法挖掘非常大的数据集 ",企业信息系统V,Springer Netherlands,第177-184页.
Apache Mahout是您正在寻找的.