Tensorflow
这是清单中最新的神经网络库。在前几天刚刚发行,Tensorflow是高级神经网络库,可以帮助你设计你的网络架构,避免出现低水平的细节错误。重点是允许你将计算表示成数据流图,它更适合于解决复杂问题。
此库主要使用C++编写,包括Python绑定,所以你不必担心其性能问题。我最喜欢的一个特点是它灵活的体系结构,允许你使用相同的API将其部署到一个或多个CPU或GPU的台式机、服务器或者移动设备。有此功能的库并不多,如果要说有,Tensorflow就是其一。
它是为谷歌大脑项目开发的,目前已被数百名工程师使用,所以无须怀疑它是否能够创造有趣的解决方案。
尽管和其它的库一样,你可能必须花一些时间来学习它的API,但花掉的时间应该是很值得的。我只花了几分钟了解了一下它的核心功能,就已经知道Tensorflow值得我花更多的时间让我来实现我的网络设计,而不仅仅是通过API来使用。
擅长:神经网络
网址:http://tensorflow.org/
Github: https://github.com/tensorflow/tensorflow
scikit-learn
scikit-learn绝对是其中一个,如果不是最流行的,那么也算得上是所有语言中流行的机器学习库之一。它拥有大量的数据挖掘和数据分析功能,使其成为研究人员和开发者的首选库。
其内置了流行的NumPy、SciPy,matplotlib库,因此对许多已经使用这些库的人来说就有一种熟悉的感觉。尽管与下面列出的其他库相比,这个库显得水平层次略低,并倾向于作为许多其他机器学习实现的基础。
擅长:非常多
网址:http://scikit-learn.org/
Github: http://github.com/scikit-learn/scikit-learn
Theano
Theano是一个机器学习库,允许你定义、优化和评估涉及多维数组的数学表达式,这可能是其它库开发商的一个挫折点。与scikit-learn一样,Theano也很好地整合了NumPy库。GPU的透明使用使得Theano可以快速并且无错地设置,这对于那些初学者来说非常重要。然而有些人更多的是把它描述成一个研究工具,而不是当作产品来使用,因此要按需使用。
Theano最好的功能之一是拥有优秀的参考文档和大量的教程。事实上,多亏了此库的流行程度,使你在寻找资源的时候不会遇到太多的麻烦,比如如何得到你的模型以及运行等。
擅长:神经网络和深度学习
网址:http://deeplearning.net/software/theano/
Github:https://github.com/Theano/Theano
Pylearn2
大多数Pylearn2的功能实际上都是建立在Theano之上,所以它有一个非常坚实的基础。
据Pylearn2网址介绍:
Pylearn2不同于scikit-learn,Pylearn2旨在提供极大的灵活性,使研究者几乎可以做任何想做的事情,而scikit-learn的目的是作为一个“黑盒”来工作,即使用户不了解实现也能产生很好的结果。
记住,Pylearn2在合适的时候会封装其它的库,如scikit-learn,所以在这里你不会得到100%用户编写的代码。然而,这确实很好,因为大多数错误已经被解决了。像Pylearn2这样的封装库在此列表中有很重要的地位。
擅长:神经网络
网址:http://deeplearning.net/software/pylearn2/
Github:http://github.com/lisa-lab/pylearn2
Pyevolve
神经网络研究更让人兴奋和不同的领域之一是遗传算法。从根本上说,遗传算法只是一个模拟自然选择的启发式搜索过程。本质上它是在一些数据上测试神经网络,并从一个拟合函数中得到网络性能的反馈。然后对网络迭代地做小的、随机的变化,再使用相同的数据进行测试。将具有高度拟合分数的网络作为输出,然后使其作为下一个网络的父节点。
Pyevolve提供了一个用于建立和执行这类算法很棒的框架。作者曾表示,V0.6版本也支持遗传编程,所以在不久的将来,该框架将更倾向于作为一个进化的计算框架,而不只是简单地遗传算法框架。
擅长:遗传算法的神经网络
Github:https://github.com/perone/Pyevolve
NuPIC
Nupic是另一个库,与标准的机器学习算法相比,它提供了一些不同的功能。它基于一个称作层次时间记忆(HTM)的新皮层理论,。HTMs可以看作是一类神经网络,但在一些理论上有所不同。
从根本上说,HTMs是一个分层的、基于时间的记忆系统,可以接受各种数据。这意味着会成为一个新的计算框架,来模仿我们大脑中的记忆和计算是如何密不可分的。
擅长:HTMs
Github:http://github.com/numenta/nupic
Pattern
此库更像是一个“全套”库,因为它不仅提供了一些机器学习算法,而且还提供了工具来帮助你收集和分析数据。数据挖掘部分可以帮助你收集来自谷歌、推特和维基百科等网络服务的数据。它也有一个Web爬虫和HTML DOM解析器。“引入这些工具的优点就是:在同一个程序中收集和训练数据显得更加容易。
在文档中有个很好的例子,使用一堆推文来训练一个分类器,用来区分一个推文是“win”还是“fail”。
|
|
首先使用twitter.search()通过标签’#win’和’#fail’来收集推文数据。然后利用从推文中提取的形容词来训练一个K-近邻(KNN)模型。经过足够的训练,你会得到一个分类器。仅仅只需15行代码,还不错。
擅长:自然语言处理(NLP)和分类。
Github:http://github.com/clips/pattern
Caffe
Caffe是面向视觉应用领域的机器学习库。你可能会用它来创建深度神经网络,识别图像中的实体,甚至可以识别一个视觉样式。
Caffe提供GPU训练的无缝集成,当你训练图像时极力推荐使用此库。虽然Caffe似乎主要是面向学术和研究的,但它对用于生产使用的训练模型同样有足够多的用途。
擅长:神经网络/视觉深度学习
网址:http://caffe.berkeleyvision.org/
Github:https://github.com/BVLC/caffe
其他知名库
这里还列出了一些其它面向Python的机器学习库。其中一些库与上述库有着相同的功能,而另一些则有更窄小的目标或是更适合当作学习工具来使用。
Nilearn
基于scikit-learn
Github
Statsmodels
PyBrain (inactive)
Fuel
Bob
skdata
MILK
IEPY
Quepy
Hebel
mlxtend
nolearn
Ramp
Feature Forge
REP
Python-ELM
PythonXY
XCS
PyML
MLPY (inactive)
Orange
Monte
PYMVPA
MDP (inactive)
…..不完整 可参考原文
参考资料
[1] 最好的Python机器学习库
[2] 最好的Python机器学习库
[3] Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
[4] Python机器学习库
[5] 数据科学中最好的5个机器学习API