Python機器學(xué)習(xí)庫
大小:0.6 MB 人氣:0 2017-10-13 需要積分:1
標(biāo)簽:python(82776)
引言毫無疑問,神經(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ù)。幸運地是,有很多聰明的、有奉獻(xiàn)精神的人為我們做了這個困難的工作,因此我們只需要專注于手邊的應(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ò)網(wǎng)址:http://tensorflow.org/Github: https://github.com/tensorflow/tensorflow
scikit-learn
scikit-learn絕對是其中一個,如果不是最流行的,那么也算得上是所有語言中流行的機器學(xué)習(xí)庫之一。它擁有大量的數(shù)據(jù)挖掘和數(shù)據(jù)分析功能,使其成為研究人員和開發(fā)者的首選庫。
其內(nèi)置了流行的NumPy、SciPy,matplotlib庫,因此對許多已經(jīng)使用這些庫的人來說就有一種熟悉的感覺。盡管與下面列出的其他庫相比,這個庫顯得水平層次略低,并傾向于作為許多其他機器學(xué)習(xí)實現(xiàn)的基礎(chǔ)。
擅長:非常多網(wǎng)址:http://scikit-learn.org/Github: http://github.com/scikit-learn/scikit-learn
Theano
Theano是一個機器學(xué)習(xí)庫,允許你定義、優(yōu)化和評估涉及多維數(shù)組的數(shù)學(xué)表達(dá)式,這可能是其它庫開發(fā)商的一個挫折點。與scikit-learn一樣,Theano也很好地整合了NumPy庫。GPU的透明使用使得Theano可以快速并且無錯地設(shè)置,這對于那些初學(xué)者來說非常重要。然而有些人更多的是把它描述成一個研究工具,而不是當(dāng)作產(chǎn)品來使用,因此要按需使用。
Theano最好的功能之一是擁有優(yōu)秀的參考文檔和大量的教程。事實上,多虧了此庫的流行程度,使你在尋找資源的時候不會遇到太多的麻煩,比如如何得到你的模型以及運行等。
擅長:神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)網(wǎng)址:http://deeplearning.net/software/theano/Github:https://github.com/Theano/Theano
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ò)網(wǎng)址:http://deeplearning.net/software/pylearn2/Github:http://github.com/lisa-lab/pylearn2
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)行測試。將具有高度擬合分?jǐn)?shù)的網(wǎng)絡(luò)作為輸出,然后使其作為下一個網(wǎng)絡(luò)的父節(jié)點。
Pyevolve提供了一個用于建立和執(zhí)行這類算法很棒的框架。作者曾表示,V0.6版本也支持遺傳編程,所以在不久的將來,該框架將更傾向于作為一個進(jìn)化的計算框架,而不只是簡單地遺傳算法框架。
擅長:遺傳算法的神經(jīng)網(wǎng)絡(luò)Github:https://github.com/perone/Pyevolve
NuPIC
Nupic是另一個庫,與標(biāo)準(zhǔn)的機器學(xué)習(xí)算法相比,它提供了一些不同的功能。它基于一個稱作層次時間記憶(HTM)的新皮層理論,。HTMs可以看作是一類神經(jīng)網(wǎng)絡(luò),但在一些理論上有所不同。
從根本上說,HTMs是一個分層的、基于時間的記憶系統(tǒng),可以接受各種數(shù)據(jù)。這意味著會成為一個新的計算框架,來模仿我們大腦中的記憶和計算是如何密不可分的。對于理論及其應(yīng)用的詳細(xì)說明,請參閱 白皮書。
擅長:HTMsGithub:http://github.com/numenta/nupic
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)和分類。Github:http://github.com/clips/pattern
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í)網(wǎng)址:http://caffe.berkeleyvision.org/Github:https://github.com/BVLC/caffe
其它知名庫
這里還列出了一些其它面向Python的機器學(xué)習(xí)庫。其中一些庫與上述庫有著相同的功能,而另一些則有更窄小的目標(biāo)或是更適合當(dāng)作學(xué)習(xí)工具來使用。
Nilearn基于scikit-learnGithub
StatsmodelsGithub
PyBrain (inactive)Github
Fuel· Github
BobGithub
skdataGithub
MILKGithub
IEPYGithub
QuepyGithub
HebelGithub
mlxtendGithub
nolearn· Github
RampGithub
Feature ForgeGithub
REPGithub
Python-ELMGithub
PythonXYWebsite
XCSWebsite
PyMLSourceForge
MLPY (inactive)Website
OrangeWebsite
MonteGithub
PYMVPAWebsite
MDP (inactive)Github
ShogunWebsite
PyMCWebsite
GensimWebsite
NeurolabGithub
FFnet (inactive)SourceForge
LibSVMGithub
SpearmintGithub
ChainerGithub
topikGithub
CrabGithub
CoverTreeGithub
breze基于TheanoGithub
deapGithub
neurolabGithub
SpearmintGithub
yahmm· Github
pydeepGithub
AnnoyGithub
neonGithub
sentimentGithub
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
Python機器學(xué)習(xí)庫下載
相關(guān)電子資料下載
- 如何使用Rust創(chuàng)建一個基于ChatGPT的RAG助手 43
- Rust語言為什么這么卷? 21
- HPC與AI:完美融合 302
- 全國產(chǎn)EtherCAT運動控制邊緣控制器(五):IO配置與回零運動的Python+Qt開發(fā) 109
- 開源LLEMMA發(fā)布:超越未公開的頂尖模型,可直接應(yīng)用于工具和定理證明 84
- SymPy:四行代碼秒解微積分 84
- Python 中的5種隱藏技巧 105
- Ciphey 的實戰(zhàn)使用教程 83
- 怎么用Python構(gòu)建一個自動發(fā)送郵件的腳本 86
- 如何通過阿里云日志服務(wù)搭建一套通過Python上傳日志的監(jiān)控服務(wù) 104