2011-11-27 238 views
1

Python机器学习算法对Web应用程序的扩展能力如何?Python机器学习算法的规模如何?

到目前为止,我对Mahout库印象深刻,但作为一名Python程序员,我希望还有一些图书馆能够很好地满足缩放需求。

+1

我还发现根据幻灯片上的幻灯片,蟒蛇是一个python推荐库,定位为python开发者的mahout替代品。 – RubyGladiator

+2

一般规则是,算法与缩放比语言或平台更相关 - 在任何情况下,性能关键部分(如Raymond指出的)可能使用C或C++编码,或使用NumPy(它本身使用C或C++的性能)或其他。我想你会为使用Python支付一个固定的性能损失,并且这个惩罚会很小 - 但唯一可以肯定的方法是用各种不同缩放的例子来测试你感兴趣的特定库。 – Steve314

+1

FWIW,我在其中一个程序中使用了类似ID3的代码。由于未能管理组合爆炸,它的编码非常简单,所以它的运行速度非常缓慢 - 即使它是用C++编写的。由于它只处理非常小的情况,所以我并不在乎 - 但它仍然说明了算法可能比语言或平台更重要的事实。 – Steve314

回答

5

纯Python代码倾向于比编译语言运行速度慢。相反,它有利于快速发展。

当Python编码器需要速度起坐,他们倾向于使用C/C++库与Python包装,使用NumPy,运行pypy,或使用Cython构建快速扩展。

这些替代方法可以分别应用于机器学习应用程序。一些非常流行的工具(并且看起来很好)是PyBrainPyML

+0

将在hadoop帮助上运行python代码,或者在python帮助中运行带有UDF的Hadoop/Pig? – RubyGladiator

+0

scikit学习规模相当不错(在numpy和scipy的帮助下)并且很受欢迎。 – sunqiang

+1

@RubyGladiator Hadoop是一个很好的缩放工具。一些ML算法很容易划分为子问题,但其他的可能更加困难。你的问题的正确答案实际上取决于具体应用的细节。 –