Python機器學習庫

一隻鳥的天空發表於2014-08-21
  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 squares, ridge 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查詢。

原文地址:http://qxde01.blog.163.com/blog/static/67335744201368101922991/

相關文章