【问题标题】:Large scale Machine Learning [closed]大规模机器学习 [关闭]
【发布时间】:2011-03-13 15:25:36
【问题描述】:

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

最好的实现是什么?我在 ML 方面经验丰富,但没有太多经验如何处理大型数据集 是否有任何使用 MapReduce 基础设施的可扩展和可定制的机器学习库 强烈偏爱c++,但是Java和python都可以 Amazon Azure 还是自己的数据中心(我们负担得起)?

【问题讨论】:

    标签: java c++ machine-learning mapreduce text-mining


    【解决方案1】:
    【解决方案2】:
    【解决方案3】:

    查看http://hunch.net/?p=1068 了解有关 Vowpal Wabbit 的信息;这是一个用于大规模应用的随机梯度下降库。

    【讨论】:

      【解决方案4】:

      我的一个朋友从事过类似的项目。他使用 perl 进行文本挖掘,使用 matlab 进行贝叶斯方法、潜在语义分析和高斯混合等技术...

      【讨论】:

      • 只使用一个系统并不能算作大规模,这也不是 OP 要求的。
      【解决方案5】:

      除非您尝试学习的分类状态空间非常大,否则我预计在包含 10-1000 亿条记录或训练样本的以文本挖掘为重点的数据集中存在大量冗余。作为一个粗略的猜测,我怀疑人们需要的不仅仅是 1-2% 的随机样本子集来学习可靠的分类器,这些分类器在交叉验证测试中也能很好地支持。

      通过快速文献搜索,我们找到了以下相关论文。 Tsang 论文声称 n 个训练样本的时间复杂度为 O(n),并且有与之相关的软件可用作 LibCVM toolkit。 Wolfe 论文描述了一种基于 MapReduce 的分布式 EM 方法。

      最后,在 NIPS 2009 会议上有一个Large-Scale Machine Learning workshop,看起来有很多有趣且相关的演讲。

      参考文献

      Ivor W. Tsang、James T. Kwok、Pak-Ming Cheung (2005)。 “Core Vector Machines: Fast SVM Training on Very Large Data Sets”,机器学习研究杂志,第 6 卷,第 363-392 页。

      J Wolfe、A Haghighi、D Klein (2008)。 “Fully Distributed EM for Very Large Datasets”,第 25 届机器学习国际会议论文集,第 1184-1191 页。

      Olivier Camp、Joaquim B. L. Filipe、Slimane Hammoudi 和 Mario Piattini(2005 年)。 “Mining Very Large Datasets with Support Vector Machine Algorithms ”,企业信息系统 V,Springer 荷兰,第 177-184 页。

      【讨论】:

        【解决方案6】:

        我不知道有任何 ML 库可以支持 10 到 1000 亿条记录,这有点极端,所以我不希望找到现成的任何东西。我建议你看看 NetFlix 的获奖者:http://www.netflixprize.com//community/viewtopic.php?id=1537

        NetFlix 奖有超过 1 亿个条目,因此虽然它没有您的数据集那么大,但您可能仍然会发现他们的解决方案是适用的。 BelKor 团队所做的是将多个算法(类似于集成学习)组合起来,并对每个算法的“预测”或输出进行加权。

        【讨论】:

        • Mahout/hadoop 支持这些规模
        【解决方案7】:

        Apache Mahout 就是你要找的东西。

        【讨论】:

        • 它可以在 Windows 上运行吗?
        【解决方案8】:

        我不知道任何使用 map/reduce 的 ML 库。也许您有能力同时使用 ML 库和 Map/Reduce 库?您可能想查看 Hadoop 的 Map/Reduce: http://hadoop.apache.org/mapreduce/

        您必须实现 reduce 和 map 方法。您使用了如此多的技术这一事实可能会使这一点复杂化。

        您可以在自己的集群上运行它,或者如果您正在进行研究,也许您可​​以查看 BOINC (http://boinc.berkeley.edu/)。

        另一方面,也许您可​​以减少数据集。我不知道你在训练什么,但 100 亿条记录中肯定有一些冗余......

        【讨论】:

        • Mahout 是一个使用 hadoop 进行处理的机器学习库
        猜你喜欢
        • 2012-04-01
        • 1970-01-01
        • 2017-12-25
        • 2015-04-11
        • 2013-02-04
        • 2011-06-16
        • 2018-11-16
        • 1970-01-01
        • 2020-03-06
        相关资源
        最近更新 更多