目錄
Scikit-Learn
Statsmodels
PyMC
Shogun
Gensim
Orange
PyMVPA
Theano
PyLearn
Decaf
Nolearn
OverFeat
Hebel
Neurolab
與其他語言整合
不活躍的庫
首頁 後端開發 Python教學 總結Python常用的機器學習庫

總結Python常用的機器學習庫

Aug 17, 2017 am 11:28 AM
python 學習 用的

Python在科學計算中用途廣泛:電腦視覺、人工智慧、數學、天文等。它同樣適用於機器學習也是意料之中的事。

這篇文章就列舉並描述Python的最有用的機器學習工具和函式庫。這個清單中,我們不要求這些函式庫是用Python寫的,只要有Python介面就夠了。

我們的目的不是列出Python中所有機器學習庫(搜尋「機器學習」時Python套件索引(PyPI)返回了139個結果),而是列出我們所知的有用並且維護良好的那些。

另外,儘管有些模組可以用於多種機器學習任務,我們只列出主要焦點在機器學習的庫。例如,雖然Scipy1包含一些聚類演算法,但它的主焦點不是機器學習而是全面的科學計算工具集。因此我們排除了Scipy(儘管我們也使用它!)。

另一個需要提到的是,我們同樣會根據與其他科學計算庫的整合效果來評估這些函式庫,因為機器學習(有監督的或無監督的)也是資料處理系統的一部分。如果你使用的函式庫與資料處理系統其他的函式庫不相配,你就要花大量時間創建不同函式庫之間的中間層。在工具集中有個很棒的函式庫很重要,但這個函式庫能與其他函式庫良好整合也同樣重要。

如果你擅長其他語言,但也想使用Python包,我們也簡單地描述如何與Python整合來使用這篇文章列出的函式庫。

Scikit-Learn

Scikit Learn7是我們在CB Insights選用的機器學習工具。我們用它進行分類、特徵選擇、特徵提取和聚集。

我們最愛的一點是它擁有易用的一致性API,並提供了**很多**開箱可用的求值、診斷和交叉驗證方法(是不是聽起來很熟悉?Python也提供了「電池已備(譯註:指開箱可用)」的方法)。錦上添花的是它底層使用Scipy資料結構,與Python中其餘使用Scipy、Numpy、Pandas和Matplotlib進行科學計算的部分適應地很好。

因此,如果你想視覺化分類器的性能(比如,使用精確率與反饋率(precision-recall)圖表,或者接收者操作特徵(Receiver Operating Characteristics,ROC)曲線),Matplotlib可以幫助進行快速可視化。

考慮到花在清理和建構資料的時間,使用這個函式庫會非常方便,因為它可以緊密整合到其他科學計算套件上。

另外,它還包含有限的自然語言處理特徵提取能力,以及詞袋(bag of words)、tfidf(Term Frequency Inverse Document Frequency演算法)、預處理(停用詞/stop-words,自訂預處理,分析器)。

此外,如果你想快速對小資料集(toy dataset)進行不同基準測試的話,它自帶的資料集模組提供了常見且有用的資料集。你也可以根據這些資料集建立自己的小資料集,這樣在將模型應用到真實世界之前,你可以按照自己的目的來檢驗模型是否符合期望。對參數最優化和參數調整,它也提供了網格搜尋和隨機搜尋。

如果沒有強大的社群支持,或是維護得不好,這些特性都不可能實現。我們期盼它的第一個穩定發行版。

Statsmodels

Statsmodels是另一個聚焦在統計模型上的強大的函式庫,主要用於預測性和探索性分析。如果你想擬合線性模型、進行統計分析,或預測性建模,那麼Statsmodels非常適合。它提供的統計測試相當全面,涵蓋了大部分情況的驗證任務。

如果你是R或S的用戶,它也提供了某些統計模型的R語法。它的模型同時也接受Numpy數組和Pandas資料幀,讓中間資料結構成為過去!

PyMC

PyMC是做**貝葉斯曲線**的工具。它包含貝葉斯模型、統計分佈和模型收斂的診斷工具,也包含一些層次模型。如果想進行貝葉斯分析,你應該看看。

Shogun

Shogun1是聚焦在支援向量機(Support Vector Machines, SVM)上的機器學習工具箱,用C++寫。它正處於積極開發和維護中,提供了Python接口,也是文檔化最好的接口。但是,相對於Scikit-learn,我們發現它的API比較難用。而且,也沒提供很多開箱可用的診斷和求值演算法。但是,速度是個很大的優勢。

Gensim

Gensim被定義為「人們的主題建模工具(topic modeling for humans)」。在它的主頁上描述,其焦點是狄利克雷劃分(Latent Dirichlet Allocation, LDA)及變體。不同於其他包,它支援自然語言處理,能將NLP和其他機器學習演算法更容易組合在一起。

如果你的領域在NLP,並想進行聚集和基本的分類,你可以看看。目前,它們引入了Google的基於遞歸神經網路(Recurrent Neural Network)的文本表示法word2vec。這個函式庫只使用Python編寫。

Orange

Orange是這篇文章所列舉的所有函式庫中唯一帶有圖形使用者介面(Graphical User Interface,GUI)的。對分類、聚集和特徵選擇方法而言,它是相當全面的,還有些交叉驗證的方法。在某些方面比Scikit-learn還要好(分類方法、一些預處理能力),但與其他科學計算系統(Numpy, Scipy, Matplotlib, Pandas)的適配上比不上Scikit-learn。

但是,包含GUI是個很重要的優勢。你可以視覺化交叉驗證的結果、模型和特徵選擇方法(某些功能需要安裝Graphviz)。對大多數演算法,Orange都有自己的資料結構,所以你需要將資料包裝成Orange相容的資料結構,這使得其學習曲線更陡。

PyMVPA

PyMVPA是另一個統計學習函式庫,API上與Scikit-learn很像。包含交叉驗證和診斷工具,但沒有Scikit-learn全面。

深度學習

儘管深度學習是機器學習的子節,我們在這裡創建單獨一節的原因是,它最新吸引了Google和Facebook人才招募部門的許多注意。

Theano

Theano是最成熟的深度學習庫。它提供了不錯的資料結構(張量,tensor)來表示神經網路的層,對線性代數來說很高效,與Numpy的陣列類似。要注意的是,它的API可能不是很直觀,使用者的學習曲線會很高。有很多基於Theano的庫都在利用其資料結構。它同時支援開箱可用的GPU編程。

PyLearn

還有另一個基於Theano的函式庫,PyLearn2,它給Theano引入了模組化和可配置性,你可以透過不同的設定檔來建立神經網絡,這樣嘗試不同的參數會更容易。可以說,如果分離神經網路的參數和屬性到配置文件,它的模組化能力更強大。

Decaf

Decaf是最近由UC Berkeley發布的深度學習庫,在Imagenet分類挑戰中測試發現,其神經網路實作是很先進的(state of art)。

Nolearn

如果你想在深度學習中也能使用優秀的Scikit-learn函式庫API,封裝了Decaf的Nolearn會讓你更輕鬆地使用它。它是對Decaf的包裝,與Scikit-learn相容(大部分),使得Decaf更不可思議。

OverFeat

OverFeat是最近貓vs.狗(kaggle挑戰)4的勝利者,它使用C++編寫,也包含一個Python包裝器(還有Matlab和Lua)。透過Torch庫使用GPU,所以速度很快。也贏得了ImageNet分類的偵測與在地化挑戰。如果你的領域是電腦視覺,你可能需要看看。

Hebel

Hebel是另一個具有GPU支援的神經網路庫,開箱可用。你可以透過YAML檔案(與Pylearn2類似)決定神經網路的屬性,提供了將神級網路和程式碼友善分離的方式,可以快速地運行模型。由於開發不久,就深度和廣度上說,文件很匱乏。就神經網路模型來說,也是有限制的,因為只支援一種神經網路模型(正向回饋,feed-forward)。

但是,它是用純Python編寫,將會是很友善的函式庫,因為包含很多實用函數,像是調度器和監視器,其他函式庫中我們並沒有發現這些功能。

Neurolab

NeuroLab是另一個API友善(與Matlabapi類似)的神經網路函式庫。與其他庫不同,它包含遞歸神經網路(Recurrent Neural Network,RNN)實現的不同變體。如果你想使用RNN,這個函式庫是同類API中最好的選擇之一。

與其他語言整合

你不了解Python但是很擅長其他語言?不要絕望!Python(還有其他)的一個強項就是它是一個完美的膠水語言,你可以使用自己常用的程式語言,透過Python來存取這些函式庫。以下適合各種程式語言的套件可以用於將其他語言與Python組合在一起:

R -> RPython

Matlab -> matpython

#Java - > Jython

Lua -> Lunatic Python

Julia -> PyCall.jl

不活躍的庫

這些庫超過一年沒有發布任何更新,我們列出是因為你有可能會有用,但是這些庫不太可能會進行BUG修復,特別是未來進行增強。

MDP2MlPy

FFnet

PyBrain

以上是總結Python常用的機器學習庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

See all articles