Python機(jī)器學(xué)習(xí)庫
Python在科學(xué)計(jì)算領(lǐng)域,有兩個(gè)重要的擴(kuò)展模塊:Numpy和Scipy。其中Numpy是一個(gè)用python實(shí)現(xiàn)的科學(xué)計(jì)算包。包括:
SciPy是一個(gè)開源的Python算法庫和數(shù)學(xué)工具包,SciPy包含的模塊有最優(yōu)化、線性代數(shù)、積分、插值、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學(xué)與工程中常用的計(jì)算。其功能與軟件MATLAB、Scilab和GNU Octave類似。 Numpy和Scipy常常結(jié)合著使用,Python大多數(shù)機(jī)器學(xué)習(xí)庫都依賴于這兩個(gè)模塊,繪圖和可視化依賴于matplotlib模塊,matplotlib的風(fēng)格與matlab類似。Python機(jī)器學(xué)習(xí)庫非常多,而且大多數(shù)開源,主要有: scikit-learn 是一個(gè)基于SciPy和Numpy的開源機(jī)器學(xué)習(xí)模塊,包括分類、回歸、聚類系列算法,主要算法有SVM、邏輯回歸、樸素貝葉斯、Kmeans、DBSCAN等,目前由INRI 資助,偶爾Google也資助一點(diǎn)。 項(xiàng)目主頁: https://pypi./pypi/scikit-learn/ https://github.com/scikit-learn/scikit-learn NLTK(Natural Language Toolkit)是Python的自然語言處理模塊,包括一系列的字符處理和語言統(tǒng)計(jì)模型。NLTK 常用于學(xué)術(shù)研究和教學(xué),應(yīng)用的領(lǐng)域有語言學(xué)、認(rèn)知科學(xué)、人工智能、信息檢索、機(jī)器學(xué)習(xí)等。 NLTK提供超過50個(gè)語料庫和詞典資源,文本處理庫包括分類、分詞、詞干提取、解析、語義推理。可穩(wěn)定運(yùn)行在Windows, Mac OS X和Linux平臺上. 項(xiàng)目主頁: Mlpy是基于NumPy/SciPy的Python機(jī)器學(xué)習(xí)模塊,它是Cython的擴(kuò)展應(yīng)用。包含的機(jī)器學(xué)習(xí)算法有: 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) 項(xiàng)目主頁: Shogun是一個(gè)開源的大規(guī)模機(jī)器學(xué)習(xí)工具箱。目前Shogun的機(jī)器學(xué)習(xí)功能分為幾個(gè)部分:feature表示,feature預(yù)處理, 核函數(shù)表示,核函數(shù)標(biāo)準(zhǔn)化,距離表示,分類器表示,聚類方法,分布, 性能評價(jià)方法,回歸方法,結(jié)構(gòu)化輸出學(xué)習(xí)器。 SHOGUN 的核心由C++實(shí)現(xiàn),提供 Matlab、 R、 Octave、 Python接口。主要應(yīng)用在linux平臺上。 項(xiàng)目主頁: The Modular toolkit for Da 從用戶的觀點(diǎn),MDP是能夠被整合到數(shù)據(jù)處理序列和更復(fù)雜的前饋網(wǎng)絡(luò)結(jié)構(gòu)的一批監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)算法和其他數(shù)據(jù)處理單元。計(jì)算依照速度和內(nèi)存需求而高效的執(zhí)行。從科學(xué)開發(fā)者的觀點(diǎn),MDP是一個(gè)模塊框架,它能夠被容易地?cái)U(kuò)展。新算法的實(shí)現(xiàn)是容易且直觀的。新實(shí)現(xiàn)的單元然后被自動地與程序庫的其余部件進(jìn)行整合。MDP在神經(jīng)科學(xué)的理論研究背景下被編寫,但是它已經(jīng)被設(shè)計(jì)為在使用可訓(xùn)練數(shù)據(jù)處理算法的任何情況中都是有用的。其站在用戶一邊的簡單性,各種不同的隨時(shí)可用的算法,及應(yīng)用單元的可重用性,使得它也是一個(gè)有用的教學(xué)工具。 項(xiàng)目主頁: PyBrain(Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network)是Python的一個(gè)機(jī)器學(xué)習(xí)模塊,它的目標(biāo)是為機(jī)器學(xué)習(xí)任務(wù)提供靈活、易應(yīng)、強(qiáng)大的機(jī)器學(xué)習(xí)算法。(這名字很霸氣) PyBrain正如其名,包括神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)(及二者結(jié)合)、無監(jiān)督學(xué)習(xí)、進(jìn)化算法。因?yàn)槟壳暗脑S多問題需要處理連續(xù)態(tài)和行為空間,必須使用函數(shù)逼近(如神經(jīng)網(wǎng)絡(luò))以應(yīng)對高維數(shù)據(jù)。PyBrain以神經(jīng)網(wǎng)絡(luò)為核心,所有的訓(xùn)練方法都以神經(jīng)網(wǎng)絡(luò)為一個(gè)實(shí)例。 項(xiàng)目主頁: https://github.com/pybrain/pybrain/ BigML 使得機(jī)器學(xué)習(xí)為數(shù)據(jù)驅(qū)動決策和預(yù)測變得容易,BigML使用容易理解的交互式操作創(chuàng)建優(yōu)雅的預(yù)測模型。BigML使用BigML.io,捆綁Python。 項(xiàng)目主頁: PyML是一個(gè)Python機(jī)器學(xué)習(xí)工具包, 為各分類和回歸方法提供靈活的架構(gòu)。它主要提供特征選擇、模型選擇、組合分類器、分類評估等功能。 項(xiàng)目主頁: http://cmgm./~asab/pyml/tutorial/ Milk是Python的一個(gè)機(jī)器學(xué)習(xí)工具箱,其重點(diǎn)是提供監(jiān)督分類法與幾種有效的分類分析:SVMs(基于libsvm),K-NN,隨機(jī)森林經(jīng)濟(jì)和決策樹。它還可以進(jìn)行特征選擇。這些分類可以在許多方面相結(jié)合,形成不同的分類系統(tǒng)。 對于無監(jiān)督學(xué)習(xí),它提供K-means和affinity propagation聚類算法。 項(xiàng)目主頁: PyMVPA(Multivariate Pattern Analysis in Python)是為大數(shù)據(jù)集提供統(tǒng)計(jì)學(xué)習(xí)分析的Python工具包,它提供了一個(gè)靈活可擴(kuò)展的框架。它提供的功能有分類、回歸、特征選擇、數(shù)據(jù)導(dǎo)入導(dǎo)出、可視化等 項(xiàng)目主頁: https://github.com/PyMVPA/PyMVPA Pattern是Python的web挖掘模塊,它綁定了 Google、Twitter 、Wikipedia API,提供網(wǎng)絡(luò)爬蟲、HTML解析功能,文本分析包括淺層規(guī)則解析、WordNet接口、句法與語義分析、TF-IDF、LSA等,還提供聚類、分類和圖網(wǎng)絡(luò)可視化的功能。 項(xiàng)目主頁: http://www.clips./pages/pattern Pyrallel(Parallel Da 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 da 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. 項(xiàng)目主頁: https://pypi./pypi/pyrallel http://github.com/pydata/pyrallel Monte ( machine learning in pure Python)是一個(gè)純Python機(jī)器學(xué)習(xí)庫。它可以迅速構(gòu)建神經(jīng)網(wǎng)絡(luò)、條件隨機(jī)場、邏輯回歸等模型,使用inline-C優(yōu)化,極易使用和擴(kuò)展。 項(xiàng)目主頁: Orange 是一個(gè)基于組件的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)軟件套裝,它的功能即友好,又很強(qiáng)大,快速而又多功能的可視化編程前端,以便瀏覽數(shù)據(jù)分析和可視化,基綁定了 Python以進(jìn)行腳本開發(fā)。它包含了完整的一系列的組件以進(jìn)行數(shù)據(jù)預(yù)處理,并提供了數(shù)據(jù)帳目,過渡,建模,模式評估和勘探的功能。其由C++ 和 Python開發(fā),它的圖形庫是由跨平臺的Qt框架開發(fā)。 項(xiàng)目主頁: Theano 是一個(gè) Python 庫,用來定義、優(yōu)化和模擬數(shù)學(xué)表達(dá)式計(jì)算,用于高效的解決多維數(shù)組的計(jì)算問題。Theano的特點(diǎn):
自2007年以來,Theano已被廣泛應(yīng)用于科學(xué)運(yùn)算。theano使得構(gòu)建深度學(xué)習(xí)模型更加容易,可以快速實(shí)現(xiàn)下列模型: 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最有權(quán)勢的Milo的女兒,后來成為了畢達(dá)哥拉斯的老婆。 項(xiàng)目主頁: 16. Pylearn2 Pylearn2建立在theano上,部分依賴scikit-learn上,目前Pylearn2正處于開發(fā)中,將可以處理向量、圖像、視頻等數(shù)據(jù),提供MLP、RBM、SDA等深度學(xué)習(xí)模型。Pylearn2的目標(biāo)是:
項(xiàng)目主頁: https://github.com/lisa-lab/pylearn2 還有其他的一些Python的機(jī)器學(xué)習(xí)庫,如: pmll(https://github.com/pavlov99/pmll) pymining(https://github.com/bartdag/pymining) ease (https://github.com/edx/ease) textmining(http://www./textmining/) 更多的機(jī)器學(xué)習(xí)庫可通過https://pypi./pypi查找 |
|