Python机器学习库

   Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy。其中Numpy是一个用python实现的科学计算包。包括:

  • 一个强大的N维数组对象Array;
  • 比较成熟的(广播)函数库;
  • 用于整合C/C++和Fortran代码的工具包;
  • 实用的线性代数、傅里叶变换和随机数生成函数。

     SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。其功能与软件MATLAB、Scilab和GNU Octave类似。

    Numpy和Scipy常常结合着使用,Python大多数机器学习库都依赖于这两个模块,绘图和可视化依赖于matplotlib模块,matplotlib的风格与matlab类似。Python机器学习库非常多,而且大多数开源,主要有:

1.       scikit-learn

scikit-learn 是一个基于SciPy和Numpy的开源机器学习模块,包括分类、回归、聚类系列算法,主要算法有SVM、逻辑回归、朴素贝叶斯、Kmeans、DBSCAN等,目前由INRI 资助,偶尔Google也资助一点。

项目主页:

https://pypi.python.org/pypi/scikit-learn/

http://scikit-learn.org/

https://github.com/scikit-learn/scikit-learn

2.       NLTK

NLTK(Natural Language Toolkit)是Python的自然语言处理模块,包括一系列的字符处理和语言统计模型。NLTK 常用于学术研究和教学,应用的领域有语言学、认知科学、人工智能、信息检索、机器学习等。 NLTK提供超过50个语料库和词典资源,文本处理库包括分类、分词、词干提取、解析、语义推理。可稳定运行在Windows, Mac OS X和Linux平台上. 

项目主页:

http://sourceforge.net/projects/nltk/

https://pypi.python.org/pypi/nltk/

http://nltk.org/

3.       Mlpy

Mlpy是基于NumPy/SciPy的Python机器学习模块,它是Cython的扩展应用。包含的机器学习算法有:

l  回归

least squaresridge regression, least angle regression, elastic net, kernel ridge regression, support vector machines (SVM), partial least squares (PLS)

l  分类

linear discriminant analysis (LDA), Basic perceptron, Elastic Net, logistic regression, (Kernel) Support Vector Machines (SVM), Diagonal Linear Discriminant Analysis (DLDA), Golub Classifier, Parzen-based, (kernel) Fisher Discriminant Classifier, k-nearest neighbor, Iterative RELIEF, Classification Tree, Maximum Likelihood Classifier

l  聚类

hierarchical clustering, Memory-saving Hierarchical Clustering, k-means

l  维度约减

(Kernel) Fisher discriminant analysis (FDA), Spectral Regression Discriminant Analysis (SRDA), (kernel) Principal component analysis (PCA)

项目主页:

http://sourceforge.net/projects/mlpy

https://mlpy.fbk.eu/

4.       Shogun  

Shogun是一个开源的大规模机器学习工具箱。目前Shogun的机器学习功能分为几个部分:feature表示,feature预处理, 核函数表示,核函数标准化,距离表示,分类器表示,聚类方法,分布, 性能评价方法,回归方法,结构化输出学习器。

SHOGUN 的核心由C++实现,提供 Matlab、 R、 Octave、 Python接口。主要应用在linux平台上。

项目主页:

http://www.shogun-toolbox.org/

5.       MDP

The Modular toolkit for Data Processing (MDP) ,用于数据处理的模块化工具包,一个Python数据处理框架。

从用户的观点,MDP是能够被整合到数据处理序列和更复杂的前馈网络结构的一批监督学习和非监督学习算法和其他数据处理单元。计算依照速度和内存需求而高效的执行。从科学开发者的观点,MDP是一个模块框架,它能够被容易地扩展。新算法的实现是容易且直观的。新实现的单元然后被自动地与程序库的其余部件进行整合。MDP在神经科学的理论研究背景下被编写,但是它已经被设计为在使用可训练数据处理算法的任何情况中都是有用的。其站在用户一边的简单性,各种不同的随时可用的算法,及应用单元的可重用性,使得它也是一个有用的教学工具。

项目主页:

http://mdp-toolkit.sourceforge.net/

https://pypi.python.org/pypi/MDP/

6.       PyBrain

PyBrain(Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network)是Python的一个机器学习模块,它的目标是为机器学习任务提供灵活、易应、强大的机器学习算法。(这名字很霸气)

PyBrain正如其名,包括神经网络、强化学习(及二者结合)、无监督学习、进化算法。因为目前的许多问题需要处理连续态和行为空间,必须使用函数逼近(如神经网络)以应对高维数据。PyBrain以神经网络为核心,所有的训练方法都以神经网络为一个实例。

项目主页:

http://www.pybrain.org/

https://github.com/pybrain/pybrain/

7.       BigML

BigML 使得机器学习为数据驱动决策和预测变得容易,BigML使用容易理解的交互式操作创建优雅的预测模型。BigML使用BigML.io,捆绑Python。

项目主页:

https://bigml.com/

https://pypi.python.org/pypi/bigml

http://bigml.readthedocs.org/

8.       PyML

PyML是一个Python机器学习工具包, 为各分类和回归方法提供灵活的架构。它主要提供特征选择、模型选择、组合分类器、分类评估等功能。

项目主页:

http://cmgm.stanford.edu/~asab/pyml/tutorial/

http://pyml.sourceforge.net/

9.       Milk

Milk是Python的一个机器学习工具箱,其重点是提供监督分类法与几种有效的分类分析:SVMs(基于libsvm),K-NN,随机森林经济和决策树。它还可以进行特征选择。这些分类可以在许多方面相结合,形成不同的分类系统。

对于无监督学习,它提供K-means和affinity propagation聚类算法。

项目主页:

https://pypi.python.org/pypi/milk/

http://luispedro.org/software/milk

10.  PyMVPA

PyMVPA(Multivariate Pattern Analysis in Python)是为大数据集提供统计学习分析的Python工具包,它提供了一个灵活可扩展的框架。它提供的功能有分类、回归、特征选择、数据导入导出、可视化等

项目主页:

http://www.pymvpa.org/

https://github.com/PyMVPA/PyMVPA

11.  Pattern 

Pattern是Python的web挖掘模块,它绑定了  Google、Twitter 、Wikipedia API,提供网络爬虫、HTML解析功能,文本分析包括浅层规则解析、WordNet接口、句法与语义分析、TF-IDF、LSA等,还提供聚类、分类和图网络可视化的功能。

项目主页:

http://www.clips.ua.ac.be/pages/pattern

https://pypi.python.org/pypi/Pattern

12.  pyrallel

Pyrallel(Parallel Data Analytics in Python)基于分布式计算模式的机器学习和半交互式的试验项目,可在小型集群上运行,适用范围:

l  focus on small to medium dataset that fits in memory on a small (10+ nodes) to medium cluster (100+ nodes).

l  focus on small to medium data (with data locality when possible).

l  focus on CPU bound tasks (e.g. training Random Forests) while trying to limit disk / network access to a minimum.

l  do not focus on HA / Fault Tolerance (yet).

l  do not try to invent new set of high level programming abstractions (yet): use a low level programming model (IPython.parallel) to finely control the cluster elements and messages transfered and help identify what are the practical underlying constraints in distributed machine learning setting.

项目主页:

https://pypi.python.org/pypi/pyrallel

http://github.com/pydata/pyrallel

13.  Monte

Monte ( machine learning in pure Python)是一个纯Python机器学习库。它可以迅速构建神经网络、条件随机场、逻辑回归等模型,使用inline-C优化,极易使用和扩展。

项目主页:

https://pypi.python.org/pypi/Monte

http://montepython.sourceforge.net

14.  Orange

Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了 Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。其由C++ 和 Python开发,它的图形库是由跨平台的Qt框架开发。

项目主页:

https://pypi.python.org/pypi/Orange/

http://orange.biolab.si/

15.  Theano

Theano 是一个 Python 库,用来定义、优化和模拟数学表达式计算,用于高效的解决多维数组的计算问题。Theano的特点:

l  紧密集成Numpy

l  高效的数据密集型GPU计算

l  高效的符号微分运算

l  高速和稳定的优化

l  动态生成c代码

l  广泛的单元测试和自我验证

自2007年以来,Theano已被广泛应用于科学运算。theano使得构建深度学习模型更加容易,可以快速实现下列模型:

l  Logistic Regression

l  Multilayer perceptron

l  Deep Convolutional Network

l  Auto Encoders, Denoising Autoencoders

l  Stacked Denoising Auto-Encoders

l  Restricted Boltzmann Machines

l  Deep Belief Networks

l  HMC Sampling

l  Contractive auto-encoders

   Theano,一位希腊美女,Croton最有权势的Milo的女儿,后来成为了毕达哥拉斯的老婆。

项目主页:

http://deeplearning.net/tutorial/

https://pypi.python.org/pypi/Theano

16.      Pylearn2

Pylearn2建立在theano上,部分依赖scikit-learn上,目前Pylearn2正处于开发中,将可以处理向量、图像、视频等数据,提供MLP、RBM、SDA等深度学习模型。Pylearn2的目标是:

  • Researchers add features as they need them. We avoid getting bogged down by too much top-down planning in advance.
  • A machine learning toolbox for easy scientific experimentation.
  • All models/algorithms published by the LISA lab should have reference implementations in Pylearn2.
  • Pylearn2 may wrap other libraries such as scikits.learn when this is practical
  • Pylearn2 differs from scikits.learn in that Pylearn2 aims to provide great flexibility and make it possible for a researcher to do almost anything, while scikits.learn aims to work as a “black box” that can produce good results even if the user does not understand the implementation
  • Dataset interface for vector, images, video, ...
  • Small framework for all what is needed for one normal MLP/RBM/SDA/Convolution experiments.
  • Easy reuse of sub-component of Pylearn2.
  • Using one sub-component of the library does not force you to use / learn to use all of the other sub-components if you choose not to.
  • Support cross-platform serialization of learned models.
  • Remain approachable enough to be used in the classroom (IFT6266 at the University of Montreal).

项目主页:

http://deeplearning.net/software/pylearn2/

https://github.com/lisa-lab/pylearn2

   还有其他的一些Python的机器学习库,如:

pmll(https://github.com/pavlov99/pmll)

pymining(https://github.com/bartdag/pymining)

ease (https://github.com/edx/ease)

textmining(http://www.christianpeccei.com/textmining/)

更多的机器学习库可通过https://pypi.python.org/pypi查找。

时间: 2024-09-12 01:30:40

Python机器学习库的相关文章

最好的Python机器学习库

引言 毫无疑问,神经网络和机器学习在过去几年一直是高科技领域最热门的话题之一.这一点很容易看出,因为它们解决了很多真正有趣的用例,如语音识别.图像识别.甚至是乐曲谱写.因此,在这篇文章,我决定编制一份囊括一些很好的Python机器学习库的清单,并将其张贴在下面. 在我看来,Python是学习(和实现)机器学习技术最好的语言之一,其原因主要有以下几点: 语言简单:如今,Python成为新手程序员首选语言的主要原因是它拥有简单的语法和庞大的社区. 功能强大:语法简单并不意味着它功能薄弱.Python

面向 Python 语言的三大顶级机器学习库

事实证明,无需掌握艰深的数据科学,我们同样能够在机器学习的世界中徜徉.当然,这段旅程不可避免地需要借助各类大数据.人工智能.深度学习与规模化统计与分析工具的帮助. 在今天的文章中,我们将共同了解三款最具人气的Python机器学习库,相信能够帮助大家带来更为顺利的数据科学探索体验. 1.Theano 约十年前诞生的机器学习方案Theano,是目前机器学习领域使用范围最广的CPU与GPU数学编译器之一. 在<Theano:用于快速实现数学表达计算的Python框架>这篇论文当中,作者对这套库进行了

Python语言下的机器学习库

Python是最好的编程语言之一,在科学计算中用途广泛:计算机视觉.人工智能.数学.天文等.它同样适用于机器学习也是意料之中的事. 当然,它也有些缺点;其中一个是工具和库过于分散.如果你是拥有unix思维(unix-minded)的人,你会觉得每个工具只做一件事并且把它做好是非常方便的.但是你也需要知道不同库和工具的优缺点,这样在构建系统时才能做出合理的决策.工具本身不能改善系统或产品,但是使用正确的工具,我们可以工作得更高效,生产率更高.因此了解正确的工具,对你的工作领域是非常重要的. 这篇文

sklearn:Python语言开发的通用机器学习库

引言:深入理解机器学习并完全看懂sklearn文档,需要较深厚的理论基础.但是,要将sklearn应用于实际的项目中,只需要对机器学习理论有一个基本的掌握,就可以直接调用其API来完成各种机器学习问题. 本文选自<全栈数据之门>,将向你介绍通过三个步骤来解决具体的机器学习问题. sklearn介绍 scikit-learn是Python语言开发的机器学习库,一般简称为sklearn,目前算是通用机器学习算法库中实现得比较完善的库了.其完善之处不仅在于实现的算法多,还包括大量详尽的文档和示例.其

《Python机器学习实践指南》——1.2 Python库和功能

1.2 Python库和功能 现在,我们已经对数据科学工作流的每一步有了初步的理解,下面来看看在每一步中,存在哪些有用的Python库和功能可供选择. 1.2.1 获取 访问数据常见的方式之一是通过REST风格的API接口,需要知道的库是Python Request库.它被称为给人类使用的HTTP,为API的交互提供了一个整洁和简单的方式. 让我们来看一个使用Requests进行交互的例子,它从GitHub的API中拉取数据.在这里,我们将对该API进行调用,并请求某个用户的starred库列表

《Python机器学习实践指南》——导读

前言 Python机器学习实践指南 机器学习正在迅速成为数据驱动型世界的一个必备模块.许多不同的领域如机器人.医学.零售和出版等,都需要依赖这门技术.在这本书中,你将学习如何一步步构建真实的机器学习应用程序. 通过易于理解的项目,你将学习如何处理各种类型的数据,如何以及何时应用不同的机器学习技术,包括监督学习和无监督学习. 本书中的每个项目都同时提供了教学和实践.例如,你将学习如何使用聚类技术来发现低价的机票,以及如何使用线性回归找到一间便宜的公寓.本书以通俗易懂.简洁明了的方式,教你如何使用机

俄罗斯最大搜索引擎Yandex开源了一款梯度提升机器学习库CatBoost

现在,人工智能正在为越来越多的计算功能提供支持,今天,俄罗斯搜索巨头Yandex宣布,将向开源社区提交一款梯度提升机器学习库CatBoost.它能够在数据稀疏的情况下"教"机器学习.特别是在没有像视频.文本.图像这类感官型数据的时候,CatBoost也能根据事务型数据或历史数据进行操作. 今天,CatBoost以两种方式进行了亮相. 首先,Yandex宣布,将在自有服务中使用这款新的框架替换原来的机器学习算法MatrixNet.MatrixNet一直被应用在公司的很多业务上,比如排名.

《Spark 官方文档》机器学习库(MLlib)指南

机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分类.回归.聚类.协同过滤.降维等,同时还包括底层的优化原语和高层的管道API. MLllib目前分为两个代码包: spark.mllib 包含基于RDD的原始算法API. spark.ml 则提供了基于DataFrames 高层次的API,可以用来构建机器学习管道. 我们推荐您使用spark.ml,因为基于DataFram

《Python机器学习——预测分析核心算法》——导读

前言 Python机器学习--预测分析核心算法 从数据中提取有助于决策的信息正在改变着现代商业的组织,同时也对软件开发人员产生了直接的影响.一方面是对新的软件开发技能的需求,市场分析师预计到2018年对具有高级统计和机器学习技术的人才需求缺口将达140000-190000人.这对具有上述技能的人员来说意味着丰厚的薪水和可供选择的多种有趣的项目.另一方面对开发人员的影响就是逐步出现了统计和机器学习相关的核心工具,这减轻了开发人员的负担.当他们尝试新的算法时,不需要重复发明"轮子".在所有