The Best Machine Learning Libraries in Python 最好的Python機(jī)器學(xué)習(xí)庫(kù)

The Best Machine Learning Libraries in Python

By Scott Robinson ? November 10, 2015


我只是大自然的翻譯工

原文地址


引言

毫無(wú)疑問(wèn)轩勘,在過(guò)去的幾年里累奈,神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)是科技圈最熱門(mén)的話題之一。如果我們看過(guò)一些它們解決的真正有趣的案例晒屎,如語(yǔ)音識(shí)別棵介、圖像識(shí)別钉鸯、甚至是樂(lè)譜編寫(xiě)等,我們就不難看出它們?yōu)槭裁催@么火了邮辽。因此唠雕,在這篇文章中,我決定編寫(xiě)一份關(guān)于最好用的Python機(jī)器學(xué)習(xí)庫(kù)的列表吨述,并把它們羅列在下面岩睁。

我認(rèn)為,Python是你學(xué)習(xí)(與實(shí)現(xiàn))機(jī)器學(xué)習(xí)技術(shù)最好的語(yǔ)言之一揣云,理由如下:

簡(jiǎn)潔:Python正成為新手程序員的首選語(yǔ)言捕儒,得益于它簡(jiǎn)潔的語(yǔ)法和龐大的社群。

有效:Python的簡(jiǎn)單并不意味著它不實(shí)用灵再。Python同時(shí)也是數(shù)據(jù)科學(xué)家與Web程序員中最流行的語(yǔ)言之一肋层。社群中的人們?yōu)樗_(kāi)發(fā)了幾乎可以勝任所有事情的庫(kù),包括機(jī)器學(xué)習(xí)翎迁。

大量機(jī)器學(xué)習(xí)庫(kù):Python目前已經(jīng)有大量(tons of)的機(jī)器學(xué)習(xí)庫(kù)栋猖。你可以根據(jù)你的情況、技術(shù)和需求從上百個(gè)庫(kù)中選擇最適合你的一個(gè)汪榔。

最后一點(diǎn)也是最重要的一點(diǎn)蒲拉。機(jī)器學(xué)習(xí)算法通常很復(fù)雜,包含大量數(shù)學(xué)內(nèi)容痴腌,因此自行編寫(xiě)(且寫(xiě)對(duì))是最困難的任務(wù)雌团。幸運(yùn)的是,有許多聰明與專(zhuān)業(yè)的人已經(jīng)幫我們做好了這些工作士聪,因此我們可以專(zhuān)注于我們的應(yīng)用锦援。

這并不是一份詳盡的列表。相關(guān)的庫(kù)太多太多了剥悟,我在這里只列舉了一些最相關(guān)與最知名的庫(kù)灵寺。下面曼库,我們來(lái)看一下清單。

最流行的庫(kù)

我為一些最流行的庫(kù)寫(xiě)了簡(jiǎn)短的描述和它們所擅長(zhǎng)的方面略板。下一節(jié)我將給出一份更詳盡的項(xiàng)目列表毁枯。

Tensorflow

這是這份列表中最新的神經(jīng)網(wǎng)絡(luò)庫(kù),前幾天才剛被公布叮称。Tensorflow是一個(gè)高層神經(jīng)網(wǎng)絡(luò)庫(kù)种玛,能幫助你設(shè)計(jì)網(wǎng)絡(luò)架構(gòu),并規(guī)避低層細(xì)節(jié)瓤檐。重點(diǎn)是它允許你將計(jì)算表示成數(shù)據(jù)流圖(data flow graph)赂韵,它更適用于解決復(fù)雜問(wèn)題。

Tensorflow主要用C++編寫(xiě)距帅,并包含Python綁定右锨,因此你無(wú)需煩惱性能問(wèn)題。我最喜歡的特性之一是它靈活的結(jié)構(gòu)碌秸,它允許你用相同的API將它部署到一個(gè)或多個(gè)桌面計(jì)算機(jī)、服務(wù)器或移動(dòng)設(shè)備的CPU或GPU上悄窃。沒(méi)有多少庫(kù)能提供這樣的功能讥电,如果有的話,Tensorflow就是其中之一轧抗。

它是為了Google Brain項(xiàng)目所開(kāi)發(fā)出來(lái)的恩敌,并且已被Google中數(shù)百名工程師所使用,因此無(wú)須懷疑它解決問(wèn)題的能力横媚。

像大多數(shù)庫(kù)一樣纠炮,你可能需要花一點(diǎn)時(shí)間來(lái)學(xué)習(xí)它的API,但這些時(shí)間是值得的灯蝴。我只用了幾分鐘了解了一下它的核心特性恢口,我已經(jīng)可以說(shuō)Tensorflow值得我花更多的時(shí)間來(lái)實(shí)現(xiàn)我的網(wǎng)絡(luò)設(shè)計(jì),而不是糾結(jié)于API穷躁。

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

Scikit-learn

Scikit-learn如果不是最流行的耕肩,也絕對(duì)是所有語(yǔ)言的機(jī)器學(xué)習(xí)庫(kù)中最流行的之一。它包含了大量的數(shù)據(jù)挖掘與數(shù)據(jù)分析功能问潭,使它成為研究人員和開(kāi)發(fā)人員的首選庫(kù)猿诸。

它基于最流行的NumPy,SciPy和matplotlib編寫(xiě)狡忙,因此對(duì)于已經(jīng)在使用這些庫(kù)的人來(lái)說(shuō)會(huì)感到很熟悉梳虽。盡管與列表下面的一些庫(kù)比起來(lái)它要稍微低層次一些,并且傾向于作為其他機(jī)器學(xué)習(xí)實(shí)現(xiàn)的基礎(chǔ)灾茁。

擅長(zhǎng):幾乎所有

Theano

Theano允許你定義窜觉、優(yōu)化和評(píng)估涉及多維數(shù)組的數(shù)學(xué)表達(dá)式谷炸,這可能會(huì)讓其他庫(kù)的開(kāi)發(fā)者感到一點(diǎn)挫敗。像scikit-learn一樣竖螃,theano也與NumPy緊密集合淑廊。GPU的透明使用令theano可以快速且無(wú)痛(譯:f**k,我不信)地設(shè)置特咆,這正是很多初學(xué)者的痛點(diǎn)季惩。盡管有些人說(shuō)它更像一個(gè)研究工具而無(wú)法生產(chǎn)運(yùn)用,所以請(qǐng)按需使用腻格。

Theano最好的特點(diǎn)之一是它完善的文檔和大量的教程画拾。得益于該庫(kù)的流行,你在尋找資源建立模型和運(yùn)行模型時(shí)不會(huì)遇到太多麻煩菜职。

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

Pylearn2

大多數(shù)Pylearn2的功能實(shí)際上都建立在Theano上青抛,因此它有一個(gè)堅(jiān)實(shí)的基礎(chǔ)。

根據(jù)Pylearn2的官網(wǎng):

Pylearn2 differs from scikit-learn in that Pylearn2 aimsto provide great flexibility and make it possible for a researcher to do almostanything, while scikit-learn aims to work as a “black box” that can producegood results even if the user does not understand the implementation.

Pylearn2scikit-learn的不同之處在于Pylearn2旨在提供極佳的靈活性酬核,使研究人員可以做幾乎任何工作蜜另,而scikit-learn旨在提供一個(gè)可以產(chǎn)出較好結(jié)果的黑箱,即使使用者并不理解其實(shí)現(xiàn)嫡意。(譯:damn right

記住Pylearn2在合適的時(shí)候會(huì)封裝其他庫(kù)的代碼举瑰,比如scikit-learn,因此你得到的并不是100%的自定義代碼蔬螟。在大多數(shù)BUG已經(jīng)被發(fā)現(xiàn)的情況下此迅,這是很好的。像pylearn2這樣的封裝包在該列表中十分重要旧巾。

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

Pyevolve

神經(jīng)網(wǎng)絡(luò)研究中相當(dāng)令人興奮與不同的領(lǐng)域之一莫過(guò)于遺傳算法耸序。遺傳算法基本上是一個(gè)模擬自然選擇過(guò)程的搜索算法。它主要對(duì)一些數(shù)據(jù)建立一個(gè)神經(jīng)網(wǎng)絡(luò)鲁猩,并從一個(gè)擬合函數(shù)得到網(wǎng)絡(luò)性能的反饋坎怪。然后,它反復(fù)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行小的绳匀、隨機(jī)的改變芋忿,并用同樣的數(shù)據(jù)再次測(cè)試。擬合分?jǐn)?shù)較高的神經(jīng)網(wǎng)絡(luò)最終勝出疾棵,并作為新一輪網(wǎng)絡(luò)的父類(lèi)戈钢。

Pyevolve提供了一個(gè)很好的框架來(lái)構(gòu)建和執(zhí)行這類(lèi)算法。盡管作者已經(jīng)申明是尔,僅到v0.6版本為止該框架依然支持遺傳程序殉了,所以在不久的將來(lái),該框架會(huì)更傾向于成為一個(gè)進(jìn)化計(jì)算框架(Evolutionary Computation?framework)而不僅僅是簡(jiǎn)單的遺傳算法框架拟枚。

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

NuPIC

NuPIC提供一些與標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)算法所不同的功能薪铜。它基于一種被稱(chēng)為“分層時(shí)間記憶”(Hierarchical Temporal?Memory, HTM)的大腦皮層理論众弓。HTMs可以被視為一種神經(jīng)網(wǎng)絡(luò),但在一些理論上有點(diǎn)不同隔箍。

從根本上講谓娃,HTMs是一種可以對(duì)各種數(shù)據(jù)進(jìn)行訓(xùn)練的分層的、基于時(shí)間的記憶系統(tǒng)蜒滩。這意味著一種全新的計(jì)算框架滨达,模擬記憶與計(jì)算在大腦中是如何進(jìn)行的。對(duì)該理論與其應(yīng)用的完整說(shuō)明俯艰,請(qǐng)查閱白皮書(shū)捡遍。

擅長(zhǎng):HTMs

Pattern

Pattern更像一個(gè)“全套”庫(kù),在于它不僅提供機(jī)器學(xué)習(xí)算法竹握,也提供收集與分析數(shù)據(jù)的工具画株。它的數(shù)據(jù)挖掘部分能幫助你收集網(wǎng)絡(luò)服務(wù)的數(shù)據(jù),如Google啦辐,Twitter和Wikipedia等谓传。它也包含網(wǎng)絡(luò)爬蟲(chóng)與HTML DOM解釋器。包含這些工具的優(yōu)點(diǎn)是在同一個(gè)程序中收集和訓(xùn)練數(shù)據(jù)顯得更加容易芹关。(譯:I don’t think so.)

下面是文檔中一個(gè)很好的例子良拼,通過(guò)使用一系列tweets來(lái)訓(xùn)練一個(gè)關(guān)于一條tweet是“win”還是“fail”的分類(lèi)器。

這些tweets首先根據(jù)'#win'和'#fail'標(biāo)簽充边,使用twitter.search()來(lái)搜集。然后使用從tweets中提取的形容詞來(lái)訓(xùn)練一個(gè)K近鄰(k-nearest neighbor, KNN)分類(lèi)器常侦。經(jīng)過(guò)足夠的訓(xùn)練后浇冰,你就擁有一個(gè)成熟的分類(lèi)器了。對(duì)于一段15行的程序來(lái)說(shuō)算不錯(cuò)了吧聋亡。

擅長(zhǎng):自然語(yǔ)言處理肘习,聚類(lèi)和分類(lèi)

Caffe

Caffe是一個(gè)用于視覺(jué)應(yīng)用的機(jī)器學(xué)習(xí)庫(kù)。你可以用它來(lái)創(chuàng)建用來(lái)從圖像中識(shí)別物體的深度神經(jīng)網(wǎng)絡(luò)坡倔,甚至是識(shí)別視覺(jué)風(fēng)格漂佩。它提供GPU訓(xùn)練的無(wú)縫集成,強(qiáng)烈建議你在訓(xùn)練圖像的時(shí)候使用它罪塔。雖然該庫(kù)常被用作學(xué)術(shù)和研究投蝉,但它應(yīng)該也有很多在生產(chǎn)環(huán)境中訓(xùn)練模型的使用者。

擅長(zhǎng):針對(duì)計(jì)算機(jī)視覺(jué)的神經(jīng)網(wǎng)絡(luò)/深度學(xué)習(xí)

其他著名的庫(kù)

這里還有列表中不少Python機(jī)器學(xué)習(xí)庫(kù)征堪。其中有一些與上述庫(kù)提供相同的功能瘩缆,其他則有更窄的用途或用來(lái)作為學(xué)習(xí)工具。

(譯:I’ll end here.)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末佃蚜,一起剝皮案震驚了整個(gè)濱河市庸娱,隨后出現(xiàn)的幾起案子着绊,更是在濱河造成了極大的恐慌,老刑警劉巖熟尉,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件归露,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡斤儿,警方通過(guò)查閱死者的電腦和手機(jī)剧包,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雇毫,“玉大人玄捕,你說(shuō)我怎么就攤上這事∨锓牛” “怎么了枚粘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)飘蚯。 經(jīng)常有香客問(wèn)我馍迄,道長(zhǎng),這世上最難降的妖魔是什么局骤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任攀圈,我火速辦了婚禮,結(jié)果婚禮上峦甩,老公的妹妹穿的比我還像新娘赘来。我一直安慰自己,他們只是感情好凯傲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布犬辰。 她就那樣靜靜地躺著,像睡著了一般冰单。 火紅的嫁衣襯著肌膚如雪幌缝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天诫欠,我揣著相機(jī)與錄音涵卵,去河邊找鬼。 笑死荒叼,一個(gè)胖子當(dāng)著我的面吹牛轿偎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甩挫,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贴硫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起英遭,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤间护,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后挖诸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體汁尺,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年多律,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痴突。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狼荞,死狀恐怖辽装,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情相味,我是刑警寧澤拾积,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站丰涉,受9級(jí)特大地震影響拓巧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜一死,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一肛度、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧投慈,春花似錦承耿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至带族,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蟀给,已是汗流浹背蝙砌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跋理,地道東北人择克。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像前普,于是被迫代替她去往敵國(guó)和親肚邢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容