作者:Scott Robinson 翻译者: 刘帝伟
结语
众所周知,数学模型和机器学习在过去几年一直是高技术领域最炙手可热的热门话题众所周知。这一点儿很容易窥见,因为它化解了许多真正有意思的用例,如音频辨识、人脸辨识、甚至是曲子谱曲。因而,在这首诗,我决定基本建设一份涵盖许多较好的Python机器学习库的目录,并将其贴出在上面。
事实证明,Python是学习(和同时实现)机器学习控制技术合适的词汇众所周知,其其原因主要就有几点:
语言单纯:如今,Python成为初学者开发人员必选词汇的主要就其原因是它拥有单纯的句法和巨大的街道社区。
使用方便:句法单纯并不意味着它功能脆弱。Python同样也是数据生物学家和Web开发人员最畅销的词汇众所周知。Python街道社区所建立的库能让你做任何你想做的事,主要就包括机器学习。
丰富的ML库:目前有大量面向全国Python的机器学习库。你能根据你的使用情况、控制技术和需求从数十个复本选择合适的两个。
上面最后一点儿能说是最重要的。驱动力机器学习的演算法相当繁杂,主要就包括了许多的微积分,所以自己亲自动手去同时实现它(并保证其正常运行)将会是一件很十分困难的任务。幸运是,有许多精明的、有爱岗敬业的数人他们做了这个十分困难的工作,因而他们只需要著眼于床头的插件方可。
这并不是两个详细锋芒的目录。有许多标识符并未在此列举,在这里我只会发布许多非常相关或著名的库。上面,来看看这本目录吧。
最畅销的库
我已经对许多比较盛行的库和它擅于的方向做了两个意味深长的叙述,在下四节,就要得出两个更完备的项目条目。
Tensorflow36大数据(http://www.36dsj.com/)
这是目录中最新的数学模型库。在前几天刚刚发行,Tensorflow是高级数学模型库,能帮助你设计你的互联网构架,防止出现较高水平的技术细节严重错误。重点是允许你将计算表示成报文图,它更适合于化解繁杂问题。
此库主要就使用C++编写,主要就包括Python绑定,所以你不必担心其性能问题。我最喜欢的两个特点是它灵活的体系结构,允许你使用相同的API将其部署到两个或多个CPU或GPU的台式机、服务器或者移动设备。有此功能的库并不多,如果要说有,Tensorflow就是其一。
它是为谷歌大脑项目开发的,目前已被数百名工程师使用,所以无须怀疑它是否能够创造有意思的化解方案。
尽管和其它的库一样,你可能必须花许多时间来学习它的API,但花掉的时间应该是很值得的。我只花了几分钟了解了一下它的核心功能,就已经知道Tensorflow值得我花更多的时间让我来同时实现我的互联网设计,而不仅仅是通过API来使用。
擅于:数学模型36大数据(http://www.36dsj.com/)
网址:http://tensorflow.org/
Github: https://github.com/tensorflow/tensorflow
scikit-learn
scikit-learn绝对是其中两个,如果不是最盛行的,那么也算得上是所有词汇中盛行的机器学习库众所周知。它拥有大量的数据挖掘和数据分析功能,使其成为研究人员和开发者的必选库。
其内置了盛行的NumPy、SciPy,matplotlib库,因而对许多已经使用这些库的人来说就有一种熟悉的感觉。尽管与上面列举的其他库相比,这个库显得水平层次略低,并倾向于作为许多其他机器学习同时实现的基础。
擅于:非常多36大数据(http://www.36dsj.com/)
网址:http://scikit-learn.org/
Github: http://github.com/scikit-learn/scikit-learn
Theano
Theano是两个机器学习库,允许你定义、优化和评估涉及多维数组的数学表达式,这可能是其它库开发商的两个挫折点。与scikit-learn一样,Theano也较好地整合了NumPy库。GPU的透明使用使得Theano能快速并且无错地设置,这对于那些初学者来说非常重要。然而有些人更多的是把它叙述成两个研究工具,而不是当作产品来使用,因而要按需使用。
Theano合适的功能众所周知是拥有优秀的参考文档和大量的教程。事实上,多亏了此库的盛行程度,使你在寻找资源的时候不会遇到太多的麻烦,比如如何得到你的模型以及运行等。
擅于:数学模型和深度学习36大数据(http://www.36dsj.com/)
网址: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这样的封装库在此条目中有很重要的地位。
擅于:数学模型36大数据(http://www.36dsj.com/)
网址: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是两个分层的、基于时间的记忆系统,能接受各种数据。这意味着会成为两个新的计算框架,来模仿他们大脑中的记忆和计算是如何密不可分的。
擅于:HTMs36大数据(http://www.36dsj.com/)
Github:http://github.com/numenta/nupic
Pattern
此库更像是两个“全套”库,因为它不仅提供了许多机器学习演算法,而且还提供了工具来帮助你收集和分析数据。数据挖掘部分能帮助你收集来自谷歌、推特和维基百科等互联网服务的数据。它也有两个Web爬虫和HTML DOM解析器。“引入这些工具的优点就是:在同两个程序中收集和训练数据显得更加容易。
在文档中有个较好的例子,使用一堆推文来训练两个分类器,用来区分两个推文是“win”还是“fail”。
首先使用twitter.search()通过标签’#win’和’#fail’来收集推文数据。然后利用从推文中提取的形容词来训练两个K-近邻(KNN)模型。经过足够的训练,你会得到两个分类器。仅仅只需15行标识符,还不错。
擅于:自然词汇处理(NLP)和分类。36大数据(http://www.36dsj.com/)
Github:http://github.com/clips/pattern
Caffe
Caffe是面向全国视觉应用领域的机器学习库。你可能会用它来建立深度数学模型,辨识图像中的实体,甚至能辨识两个视觉样式。
Caffe提供GPU训练的无缝集成,当你训练图像时极力推荐使用此库。虽然Caffe似乎主要就是面向全国学术和研究的,但它对用于生产使用的训练模型同样有足够多的用途。
擅于:数学模型/视觉深度学习36大数据(http://www.36dsj.com/)
网址:http://caffe.berkeleyvision.org/
Github:https://github.com/BVLC/caffe
其它著名库
这里还列举了许多其它面向全国Python的机器学习库。其中许多库与上述库有着相同的功能,而另许多则有更窄小的目标或是更适合当作学习工具来使用。
主要就包括:Nilearn、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)等。
End.
原文:http://www.36dsj.com/archives/67237