溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

最好的Python機器學(xué)習(xí)庫有哪些

發(fā)布時間:2022-01-04 14:33:04 來源:億速云 閱讀:171 作者:iii 欄目:云計算

這篇文章主要講解了“ 最好的Python機器學(xué)習(xí)庫有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ 最好的Python機器學(xué)習(xí)庫有哪些”吧!

引言

毫無疑問,神經(jīng)網(wǎng)絡(luò)和機器學(xué)習(xí)在過去幾年一直是高科技領(lǐng)域最熱門的話題之一。這一點很容易看出,因為它們解決了很多真正有趣的用例,如語音識別、圖像識別、甚至是樂曲譜寫。因此,在這篇文章,我決定編制一份囊括一些很好的Python機器學(xué)習(xí)庫的清單,并將其張貼在下面。

在我看來,Python是學(xué)習(xí)(和實現(xiàn))機器學(xué)習(xí)技術(shù)最好的語言之一,其原因主要有以下幾點:

  • 語言簡單:如今,Python成為新手程序員首選語言的主要原因是它擁有簡單的語法和龐大的社區(qū)。

  • 功能強大:語法簡單并不意味著它功能薄弱。Python同樣也是數(shù)據(jù)科學(xué)家和Web程序員最受歡迎的語言之一。Python社區(qū)所創(chuàng)建的庫可以讓你做任何你想做的事,包括機器學(xué)習(xí)。

  • 豐富的ML庫:目前有大量面向Python的機器學(xué)習(xí)庫。你可以根據(jù)你的使用情況、技術(shù)和需求從數(shù)百個庫中選擇最合適的一個。

上面最后一點可以說是最重要的。驅(qū)動機器學(xué)習(xí)的算法相當(dāng)復(fù)雜,包括了很多的數(shù)學(xué)知識,所以自己動手去實現(xiàn)它們(并保證其正常運行)將會是一件很困難的任務(wù)。幸運地是,有很多聰明的、有奉獻精神的人為我們做了這個困難的工作,因此我們只需要專注于手邊的應(yīng)用程序即可。

這并不是一個詳盡無遺的清單。有很多代碼并未在此列出,在這里我只會發(fā)布一些非常相關(guān)或知名的庫。下面,來看看這份清單吧。

最受歡迎的庫

我已經(jīng)對一些比較流行的庫和它們擅長的方向做了一個簡短的描述,在下一節(jié),我會給出一個更完整的項目列表。

Tensorflow

這是清單中最新的神經(jīng)網(wǎng)絡(luò)庫。在前幾天剛剛發(fā)行,Tensorflow是高級神經(jīng)網(wǎng)絡(luò)庫,可以幫助你設(shè)計你的網(wǎng)絡(luò)架構(gòu),避免出現(xiàn)低水平的細(xì)節(jié)錯誤。重點是允許你將計算表示成數(shù)據(jù)流圖,它更適合于解決復(fù)雜問題。

此庫主要使用C++編寫,包括Python綁定,所以你不必?fù)?dān)心其性能問題。我最喜歡的一個特點是它靈活的體系結(jié)構(gòu),允許你使用相同的API將其部 署到一個或多個CPU或GPU的臺式機、服務(wù)器或者移動設(shè)備。有此功能的庫并不多,如果要說有,Tensorflow就是其一。

它是為谷歌大腦項目開發(fā)的,目前已被數(shù)百名工程師使用,所以無須懷疑它是否能夠創(chuàng)造有趣的解決方案。

盡管和其它的庫一樣,你可能必須花一些時間來學(xué)習(xí)它的API,但花掉的時間應(yīng)該是很值得的。我只花了幾分鐘了解了一下它的核心功能,就已經(jīng)知道Tensorflow值得我花更多的時間讓我來實現(xiàn)我的網(wǎng)絡(luò)設(shè)計,而不僅僅是通過API來使用。

  • 擅長:神經(jīng)網(wǎng)絡(luò)


scikit-learn

scikit-learn絕對是其中一個,如果不是最流行的,那么也算得上是所有語言中流行的機器學(xué)習(xí)庫之一。它擁有大量的數(shù)據(jù)挖掘和數(shù)據(jù)分析功能,使其成為研究人員和開發(fā)者的首選庫。

其內(nèi)置了流行的NumPy、SciPy,matplotlib庫,因此對許多已經(jīng)使用這些庫的人來說就有一種熟悉的感覺。盡管與下面列出的其他庫相比,這個庫顯得水平層次略低,并傾向于作為許多其他機器學(xué)習(xí)實現(xiàn)的基礎(chǔ)。

  • 擅長:非常多


Theano

Theano是一個機器學(xué)習(xí)庫,允許你定義、優(yōu)化和評估涉及多維數(shù)組的數(shù)學(xué)表達式,這可能是其它庫開發(fā)商的一個挫折點。與scikit-learn 一樣,Theano也很好地整合了NumPy庫。GPU的透明使用使得Theano可以快速并且無錯地設(shè)置,這對于那些初學(xué)者來說非常重要。然而有些人更 多的是把它描述成一個研究工具,而不是當(dāng)作產(chǎn)品來使用,因此要按需使用。

Theano最好的功能之一是擁有優(yōu)秀的參考文檔和大量的教程。事實上,多虧了此庫的流行程度,使你在尋找資源的時候不會遇到太多的麻煩,比如如何得到你的模型以及運行等。

  • 擅長:神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)


Pylearn2

大多數(shù)Pylearn2的功能實際上都是建立在Theano之上,所以它有一個非常堅實的基礎(chǔ)。

據(jù)Pylearn2網(wǎng)址介紹:

Pylearn2不同于scikit-learn,Pylearn2旨在提供極大的靈活性,使研究者幾乎可以做任何想做的事情,而scikit-learn的目的是作為一個“黑盒”來工作,即使用戶不了解實現(xiàn)也能產(chǎn)生很好的結(jié)果。

記住,Pylearn2在合適的時候會封裝其它的庫,如scikit-learn,所以在這里你不會得到100%用戶編寫的代碼。然而,這確實很好,因為大多數(shù)錯誤已經(jīng)被解決了。像Pylearn2這樣的封裝庫在此列表中有很重要的地位。

  • 擅長:神經(jīng)網(wǎng)絡(luò)


Pyevolve

神經(jīng)網(wǎng)絡(luò)研究更讓人興奮和不同的領(lǐng)域之一是遺傳算法。從根本上說,遺傳算法只是一個模擬自然選擇的啟發(fā)式搜索過程。本質(zhì)上它是在一些數(shù)據(jù)上測試神經(jīng) 網(wǎng)絡(luò),并從一個擬合函數(shù)中得到網(wǎng)絡(luò)性能的反饋。然后對網(wǎng)絡(luò)迭代地做小的、隨機的變化,再使用相同的數(shù)據(jù)進行測試。將具有高度擬合分?jǐn)?shù)的網(wǎng)絡(luò)作為輸出,然后 使其作為下一個網(wǎng)絡(luò)的父節(jié)點。

Pyevolve提供了一個用于建立和執(zhí)行這類算法很棒的框架。作者曾表示,V0.6版本也支持遺傳編程,所以在不久的將來,該框架將更傾向于作為一個進化的計算框架,而不只是簡單地遺傳算法框架。

  • 擅長:遺傳算法的神經(jīng)網(wǎng)絡(luò)


NuPIC

Nupic是另一個庫,與標(biāo)準(zhǔn)的機器學(xué)習(xí)算法相比,它提供了一些不同的功能。它基于一個稱作層次時間記憶(HTM)的新皮層理論,。HTMs可以看作是一類神經(jīng)網(wǎng)絡(luò),但在一些理論上有所不同。

從根本上說,HTMs是一個分層的、基于時間的記憶系統(tǒng),可以接受各種數(shù)據(jù)。這意味著會成為一個新的計算框架,來模仿我們大腦中的記憶和計算是如何密不可分的。對于理論及其應(yīng)用的詳細(xì)說明,請參閱    白皮書。

  • 擅長:HTMs


Pattern

此庫更像是一個“全套”庫,因為它不僅提供了一些機器學(xué)習(xí)算法,而且還提供了工具來幫助你收集和分析數(shù)據(jù)。數(shù)據(jù)挖掘部分可以幫助你收集來自谷歌、推 特和維基百科等網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)。它也有一個Web爬蟲和HTML DOM解析器?!耙脒@些工具的優(yōu)點就是:在同一個程序中收集和訓(xùn)練數(shù)據(jù)顯得更加容易。

在文檔中有個很好的例子,使用一堆推文來訓(xùn)練一個分類器,用來區(qū)分一個推文是“win”還是“fail”。

from pattern.web import Twitter  
from pattern.en import tag  
from pattern.vector import KNN, count

twitter, knn = Twitter(), KNN()

for i in range(1, 3):  
    for tweet in twitter.search('#win OR #fail', start=i, count=100):
        s = tweet.text.lower()
        p = '#win' in s and 'WIN' or 'FAIL'
        v = tag(s)
        v = [word for word, pos in v if pos == 'JJ'] # JJ = adjective
        v = count(v) # {'sweet': 1}
        if v:
            knn.train(v, type=p)

print knn.classify('sweet potato burger')  
print knn.classify('stupid autocorrect')

首先使用twitter.search()通過標(biāo)簽'#win'和'#fail'來收集推文數(shù)據(jù)。然后利用從推文中提取的形容詞來訓(xùn)練一個K-近鄰(KNN)模型。經(jīng)過足夠的訓(xùn)練,你會得到一個分類器。僅僅只需15行代碼,還不錯。

  • 擅長:自然語言處理(NLP)和分類。


Caffe

Caffe是面向視覺應(yīng)用領(lǐng)域的機器學(xué)習(xí)庫。你可能會用它來創(chuàng)建深度神經(jīng)網(wǎng)絡(luò),識別圖像中的實體,甚至可以識別一個視覺樣式。

Caffe提供GPU訓(xùn)練的無縫集成,當(dāng)你訓(xùn)練圖像時極力推薦使用此庫。雖然Caffe似乎主要是面向?qū)W術(shù)和研究的,但它對用于生產(chǎn)使用的訓(xùn)練模型同樣有足夠多的用途。

  • 擅長:神經(jīng)網(wǎng)絡(luò)/視覺深度學(xué)習(xí)

感謝各位的閱讀,以上就是“ 最好的Python機器學(xué)習(xí)庫有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 最好的Python機器學(xué)習(xí)庫有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI