阅读更多

1顶
1踩

互联网

原创新闻 最好的Python机器学习库

2015-12-11 14:10 by 副主编 mengyidan1988 评论(1) 有6052人浏览
引言

毫无疑问,神经网络和机器学习在过去几年一直是高科技领域最热门的话题之一。这一点很容易看出,因为它们解决了很多真正有趣的用例,如语音识别、图像识别、甚至是乐曲谱写。因此,在这篇文章,我决定编制一份囊括一些很好的Python机器学习库的清单,并将其张贴在下面。

在我看来,Python是学习(和实现)机器学习技术最好的语言之一,其原因主要有以下几点:
  • 语言简单:如今,Python成为新手程序员首选语言的主要原因是它拥有简单的语法和庞大的社区。
  • 功能强大:语法简单并不意味着它功能薄弱。Python同样也是数据科学家和Web程序员最受欢迎的语言之一。Python社区所创建的库可以让你做任何你想做的事,包括机器学习。
  • 丰富的ML库:目前有大量面向Python的机器学习库。你可以根据你的使用情况、技术和需求从数百个库中选择最合适的一个。

上面最后一点可以说是最重要的。驱动机器学习的算法相当复杂,包括了很多的数学知识,所以自己动手去实现它们(并保证其正常运行)将会是一件很困难的任务。幸运地是,有很多聪明的、有奉献精神的人为我们做了这个困难的工作,因此我们只需要专注于手边的应用程序即可。

这并不是一个详尽无遗的清单。有很多代码并未在此列出,在这里我只会发布一些非常相关或知名的库。下面,来看看这份清单吧。

最受欢迎的库

我已经对一些比较流行的库和它们擅长的方向做了一个简短的描述,在下一节,我会给出一个更完整的项目列表。

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”。
from pattern.web import Twitter  
from pattern.en import tag  
from pattern.vector import KNN, count

twitter, knn = Twitter(), KNN()

for i in range(1, 3):  
    for tweet in twitter.search('#win OR #fail', start=i, count=100):
        s = tweet.text.lower()
        p = '#win' in s and 'WIN' or 'FAIL'
        v = tag(s)
        v = [word for word, pos in v if pos == 'JJ'] # JJ = adjective
        v = count(v) # {'sweet': 1}
        if v:
            knn.train(v, type=p)

print knn.classify('sweet potato burger')  
print knn.classify('stupid autocorrect')  

首先使用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的机器学习库。其中一些库与上述库有着相同的功能,而另一些则有更窄小的目标或是更适合当作学习工具来使用。

原文地址:The Best Machine Learning Libraries In Python(译者/刘帝伟 审校/刘翔宇 责编/仲浩)
译者简介: 刘帝伟,中南大学软件学院在读研究生,关注机器学习、数据挖掘及生物信息领域。
1
1
评论 共 1 条 请登录后发表评论
1 楼 mangguo 2015-12-14 09:05
python是值得学习的一门技术,之前写过些简单的内容,欢迎大家看看:

http://www.hubwiz.com/course/55068d37e564e51d743af52a/

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Helix Producer Plus V9.01 附汉化

    Helix Producer Plus V9.01 拷贝gui.rpui到安装文件夹"Helix Producer Plus\resources"目录下替换同名文件(若想恢复E文版的可先备份该文件)

  • 做自己的视频直播和网络电台用Helix Producer Plus 9+Helix Server

    做自己的视频直播和网络电台用Helix Producer Plus 9+Helix Server 用Helix Producer Plus 9可以实现,其实Helix Producer Plus 8.51自己很早没做流媒体之前做内嵌视频的网页时用到过。不过当时没发现有这个功能。 Helix Server流媒体服务器的安装. ...

  • Helix Producer Plus设置说明.doc

    Helix Producer Plus设置

  • Helix_Producer_Plus_v9.0.1

    212-09483-1266 拷贝gui.rpui到C:\Program files\Real\Helix Producer Plus\resources目录下替换同名文件(若想恢复E文版的可先备份该文件)

  • RealProducerPlus(流媒体制作软件)v11.0特别版(附汉化补丁注册机)

    RealProducer Plus(流媒体制作软件)是一款多功能的流媒体制作软件,可以用于网络电台服务器的塔建和直播,以前网络视频还没那么发达的时候,很多朋友经常使用RealProducer Plus来搭建电台,不过现在已经不是电台的时代了,本站提供RealProducer Plus破解版及汉化补丁和注册机免费下载,如果你想建电台的话可以试试RealProducer Plus。 RealProd

  • Python 机器学习库 NumPy入门教程

    在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础库。本文针对Python 机器学习库 NumPy入门教程,感兴趣的朋友跟随脚本之家小编一起学习吧

  • python机器学习相关库打包下载

    python机器学习相关库打包下载,大家可以直接安装,方便大家使用。

  • 2021十大 Python 机器学习库

    Python 之于机器学习,可以说是最为锋利的武器;而机器学习之于 Python,则有着扩大影响再造辉煌的助力。二者相辅相成,以至于一提到机器学习,人们自然而然的就想到了 Python,虽...

  • Python-PyBrain一个Python机器学习库

    PyBrain:一个 Python 机器学习库

  • Python-Python在线机器学习库

    ➿Online machine learning in Python

  • Helix Producer Plus v9.0.1 keyen

    Helix Producer Plus V9.01 realmedia专业转码器的算号器 不用资源分哦

  • Helix Producer Plus V9.01

    软件介绍: 即Real Server 9.0。业界第一个跨平台,跨流媒体、高性能的流媒体服务器。配合Helix先进的功能,Realnetworks推出了第10代的流媒体压缩软件Helix Producer。Realnetworks全新改写代码的图形化专业流媒体文件制作工具。利用它,你可以轻松地实现RealAudio8、RealAudio9文件格式到实时文件的转换,转换后的文件更加适合实时观看、在线广播和下载。Helix Producer基于Realnetworks完全改写的核心代码,提供简单、高效的界面操作。

  • Helix Server和RealProducer Plus 的直播设置

    首先确认你装好了Helix Server和RealProducer Plus 这二个软件 Helix Server默认值就可以了.主要设置一下RealProducer,打开RealProducer看左边DEVICES选AUDIO设为你的声卡 现在看最关建的一个地方就是右边第二个图标,就是服务形状的那个双击打开destination name随便起个名.stream name这个是播

  • python学习笔记-机器学习库numpy

    python笔记,python学习笔记-机器学习库numpy

  • Python机器学习库sklearn几种回归算法建模及分析实验

    sklearn库,Python机器学习库sklearn几种回归算法建模及分析实验,Python机器学习库sklearn⼏种回归算法建模及分析(实验)最简单的回归模型就是线性回归

  • 实用!7个强大的Python机器学习库!⛵

    本文整理了7个非常有效的机器学习Python库:Prophet、Deep Lake、Optuna、pycm、NannyML、ColossalAI、emcee,用简单的方式编写复杂且耗时的代码,大大提升工作效率!

  • scipy python 机器学习库

    scipy是科学和工程计算工具。包括处理多维数组,多维数组可以是向量、矩阵、图形(图形图像是像素的二维数组)、表

  • Python机器学习库sklearn 文档

    Python机器学习库sklearn 英文文档。。。。。。。。。。。。。。。。

Global site tag (gtag.js) - Google Analytics