12種Python 機器學習 & 資料探勘工具包(一定讓你受益匪淺!)
作為一種解釋型語言,Python的設計哲學強調程式碼的可讀性和簡潔的語法(尤其是使用空格縮排劃分程式碼塊,而非使用大括號或者關鍵詞)。相比於C++或Java,Python讓開發者能夠用更少的程式碼表達想法。不管是小型還是大型程式,該語言都試圖讓程式的結構清晰明瞭。我們今天為大家介紹12種Python機器學習&資料探勘工具包。
1. PyBrain
【PyBrain】是一個用於Python的模組化機器學習庫。其目標是為機器學習任務和各種預定義環境提供靈活,易用且功能強大的演算法,以測試和比較您的演算法。
PyBrain包含用於神經網路的演算法,用於強化學習(以及兩者的組合),用於無監督學習和進化。由於當前大多數問題涉及連續狀態和動作空間,因此必須使用函式逼近器(如神經網路)來處理大維數。我們的庫是圍繞核心中的神經網路構建的,並且所有訓練方法都接受神經網路作為待訓練的例項。這使得PyBrain成為實際任務的強大工具。
官方主頁:http://www.pybrain.org/
2. Theano
【Theano】是一個Python庫,允許您有效地定義,優化和評估涉及多維陣列的數學表示式。
Theano特色:
- 與NumPy緊密整合 - 在Theano編譯的函式中使用numpy.ndarray。
- 透明使用GPU - 比CPU更快地執行資料密集型計算。
- 有效的象徵性差異 - Theano將您的衍生品用於具有一個或多個輸入的函式。
- 速度和穩定性優化 - log(1+x)即使x非常小,也能獲得正確的答案。
- 動態C程式碼生成 - 更快地評估表示式。
- 廣泛的單元測試和自我驗證 - 檢測和診斷多種型別的錯誤。
官方主頁:http://deeplearning.net/software/theano/
3. Pylearn2
【Pylearn2】是一個基於Theano的機器學習庫,它的大部分功能是基於Theano頂層實現的。這意味著使用者可以用數學表示式去編寫Pylearn2外掛(新模型、演算法等),Theano不僅會幫助使用者優化這些表示式,並且將這些表示式編譯到CPU或者GPU中。
官方主頁:http://scikit-learn.org/
程式碼主頁:https://github.com/lisa-lab/pylearn2
4. Pyrallel
【Pyrallel 】 Python中的並行資料分析,用於研究機器學習和其他半互動式資料分析任務的分散式計算模式的實驗專案。
程式碼主頁:http://github.com/pydata/pyrallel
5. PyMVPA
【PyMVPA】是一個Python包,旨在簡化大型資料集的統計學習分析。它提供了一個可擴充套件的框架,具有高階介面,可用於分類,迴歸,特徵選擇,資料匯入和匯出等各種演算法。它旨在與相關軟體包很好地整合,例如scikit-learn,shogun,MDP等。雖然它不僅限於神經成像領域,但它非常適合這樣的資料集。PyMVPA是免費軟體,只需要執行免費軟體。
官方主頁:http://www.pymvpa.org/
6. Milk
【Milk】是Python中的機器學習工具包,它的重點是有多種分類器的監督分類:SVM(基於libsvm),k-NN,隨機森林,決策樹。它還執行功能選擇。這些分類器可以以多種方式組合以形成不同的分類系統。
官方主頁:http://www.luispedro.org/software/milk
程式碼主頁:https://github.com/luispedro/milk
7. Monte
【Monte】是用於構建基於梯度的學習機器的Python框架,如神經網路,條件隨機場,邏輯迴歸等.Monte包含模組(包含引數,成本函式和梯度函式)和訓練器 (可以通過最小化其在訓練資料上的成本函式來調整模組的引數。
模組通常由其他模組組成,這些模組又可以包含其他模組等。像這樣的可分解系統的梯度可以通過反向傳播來計算。
官方主頁:http://montepython.sourceforge.net/
8. scikit-learn
【scikit-learn】是一個用於Python程式語言的開源機器學習庫。它具有各種分類、迴歸和聚類演算法,包括支援向量機、邏輯迴歸、樸素貝葉斯、隨機森林、梯度增強、k均值和DBSCAN,旨在與Python數值和科學庫NumPy和SciPy互操作。
官方主頁:http://scikit-learn.org/stable/
程式碼主頁:https://github.com/scikit-learn/scikit-learn
9. pandas
【pandas】是一個開源的,BSD許可的庫,為Python程式語言提供高效能,易於使用的資料結構和資料分析工具。
官方主頁:http://pandas.pydata.org/
程式碼主頁:https://github.com/pandas-dev/pandas
10. mlpy
【mlpy】是一個基於NumPy / SciPy和GNU Scientific Libraries的機器學習Python模組。mlpy為監督和無監督問題提供了廣泛的最先進的機器學習方法,旨在找到模組化、可維護性、可重複性、可用性和效率之間的合理折衷。mlpy是多平臺的,它適用於Python 2和3;它是開源的,在GNU通用公共許可證版本3下發布。
官方主頁:http://mlpy.sourceforge.net/
11. MDP
【MDP】是一種Python資料處理框架。從使用者的角度來看,MDP是監督和無監督學習演算法和其他資料處理單元的集合,可以組合成資料處理序列和更復雜的前饋網路架構。從科學開發人員的角度來看,MDP是一個模組化框架,可以輕鬆擴充套件。新演算法的實現簡單直觀。然後,新實現的單元將自動與庫的其餘部分整合。
可用演算法的基礎正在穩步增長,包括訊號處理方法(主成分分析,獨立分量分析,慢特徵分析),流形學習方法([Hessian]區域性線性嵌入),幾種分類器,概率方法(因子分析,RBM) ,資料預處理方法等等。
官方主頁:http://mdp-toolkit.sourceforge.net/
12. PyML
【PyML】是一個用Python編寫的機器學習的互動式面向物件框架。PyML側重於SVM和其他核心方法。它在Linux和Mac OS X上受支援。
官方主頁:http://pyml.sourceforge.net/