Python 中 Java 的 Mahout 等价物

Posted

技术标签:

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

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

【问题讨论】:

您可以使用 Jython 或 JPype 将 Mahout 与您的 Python 代码集成。请参阅我的类似问题:***.com/questions/7491953/… Python 不被认为是大型数据集计算的好选择,因为性能变得非常缓慢。 【参考方案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 实现,但它的实验性和基于内容的算法正在规划中。

去看看吧!

【讨论】:

以上是关于Python 中 Java 的 Mahout 等价物的主要内容,如果未能解决你的问题,请参考以下文章

Mahout 0.13.0 spark-shell 示例因“java.library.path 中没有 jniViennaCL”而失败

在 Java 的 Apache Mahout 中测试随机梯度下降模型

Python 等价于 Java StringBuffer?

Python Java forEach 等价物

Java 等价于 Python repr()?

如何用java训练mahout?