【问题标题】:Java's Mahout equivalent in PythonPython 中 Java 的 Mahout 等价物
【发布时间】:2011-06-16 16:58:57
【问题描述】:

Java based Mahout's 目标是构建可扩展的机器学习库。 Python 中是否有任何等效的库?

【问题讨论】:

  • 您可以使用 Jython 或 JPype 将 Mahout 与您的 Python 代码集成。请参阅我的类似问题:stackoverflow.com/questions/7491953/…
  • Python 不被认为是大型数据集计算的好选择,因为性能变得非常缓慢。

标签: java python scalability machine-learning mahout


【解决方案1】:

scikits learn 强烈推荐http://scikit-learn.sourceforge.net/

【讨论】:

  • 请注意:scikit-learn 的当前实现还不能利用 Hadoop 集群进行分布式计算。然而,它相当可扩展以解决中等规模的问题(例如,线性模型的数十万个样本和特征),尤其是。如果您使用稀疏表示和/或 memmap'ed 数组。
【解决方案2】:

推荐Spark MLlib。它是一个可扩展的机器学习库,可以从 HDFS 读取数据,当然也可以在 Spark 之上运行。

您可以通过 PySpark 访问它(请参阅Programming Guide 的 Python 示例)。

【讨论】:

    【解决方案3】:

    Orange 据说相当不错,据我所知,但我从未亲自使用过它。 PyML 可能也值得一看。另外,Monte。

    【讨论】:

    • Orange 甚至还没有接近可扩展性。它的几乎所有算法都是缓慢的批处理过程,由于项目的学术导向,他们无意制作它们。可悲的是,真的没有任何 Python 等价于 Mahout。
    • @Chris:scikit-learn 可能还没有,但它的目标是可扩展并避免面向学术项目的陷阱。我们针对标准问题的一些实现已经很好地扩展了。
    【解决方案4】:

    pysuggest 是 SUGGEST 的 Python 包装器,它是一个 Top-N 推荐引擎,实现了用于协同过滤的各种推荐算法。

    【讨论】:

      【解决方案5】:

      一个有趣的库是crab。

      截至本文为止,该库只有协同过滤算法的稳定实现:基于用户和基于项目。

      包含一个 SVD 实现,但它的实验性和基于内容的算法正在规划中。

      去看看吧!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 2019-11-03
        • 2011-12-15
        • 2015-02-23
        • 2011-04-13
        • 2016-12-06
        相关资源
        最近更新 更多