您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

Python機(jī)器學(xué)習(xí)庫(kù)

大?。?/span>0.6 MB 人氣: 2017-10-13 需要積分:1
引言毫無(wú)疑問(wèn),神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)在過(guò)去幾年一直是高科技領(lǐng)域最熱門的話題之一。這一點(diǎn)很容易看出,因?yàn)樗鼈兘鉀Q了很多真正有趣的用例,如語(yǔ)音識(shí)別、圖像識(shí)別、甚至是樂(lè)曲譜寫。因此,在這篇文章,我決定編制一份囊括一些很好的Python機(jī)器學(xué)習(xí)庫(kù)的清單,并將其張貼在下面。
  在我看來(lái),Python是學(xué)習(xí)(和實(shí)現(xiàn))機(jī)器學(xué)習(xí)技術(shù)最好的語(yǔ)言之一,其原因主要有以下幾點(diǎn):
  語(yǔ)言簡(jiǎn)單:如今,Python成為新手程序員首選語(yǔ)言的主要原因是它擁有簡(jiǎn)單的語(yǔ)法和龐大的社區(qū)。功能強(qiáng)大:語(yǔ)法簡(jiǎn)單并不意味著它功能薄弱。Python同樣也是數(shù)據(jù)科學(xué)家和Web程序員最受歡迎的語(yǔ)言之一。Python社區(qū)所創(chuàng)建的庫(kù)可以讓你做任何你想做的事,包括機(jī)器學(xué)習(xí)。豐富的ML庫(kù):目前有大量面向Python的機(jī)器學(xué)習(xí)庫(kù)。你可以根據(jù)你的使用情況、技術(shù)和需求從數(shù)百個(gè)庫(kù)中選擇最合適的一個(gè)。
  上面最后一點(diǎn)可以說(shuō)是最重要的。驅(qū)動(dòng)機(jī)器學(xué)習(xí)的算法相當(dāng)復(fù)雜,包括了很多的數(shù)學(xué)知識(shí),所以自己動(dòng)手去實(shí)現(xiàn)它們(并保證其正常運(yùn)行)將會(huì)是一件很困難的任務(wù)。幸運(yùn)地是,有很多聰明的、有奉獻(xiàn)精神的人為我們做了這個(gè)困難的工作,因此我們只需要專注于手邊的應(yīng)用程序即可。
  這并不是一個(gè)詳盡無(wú)遺的清單。有很多代碼并未在此列出,在這里我只會(huì)發(fā)布一些非常相關(guān)或知名的庫(kù)。下面,來(lái)看看這份清單吧。
  最受歡迎的庫(kù)我已經(jīng)對(duì)一些比較流行的庫(kù)和它們擅長(zhǎng)的方向做了一個(gè)簡(jiǎn)短的描述,在下一節(jié),我會(huì)給出一個(gè)更完整的項(xiàng)目列表。
  Tensorflow
  這是清單中最新的神經(jīng)網(wǎng)絡(luò)庫(kù)。在前幾天剛剛發(fā)行,Tensorflow是高級(jí)神經(jīng)網(wǎng)絡(luò)庫(kù),可以幫助你設(shè)計(jì)你的網(wǎng)絡(luò)架構(gòu),避免出現(xiàn)低水平的細(xì)節(jié)錯(cuò)誤。重點(diǎn)是允許你將計(jì)算表示成數(shù)據(jù)流圖,它更適合于解決復(fù)雜問(wèn)題。
  此庫(kù)主要使用C++編寫,包括Python綁定,所以你不必?fù)?dān)心其性能問(wèn)題。我最喜歡的一個(gè)特點(diǎn)是它靈活的體系結(jié)構(gòu),允許你使用相同的API將其部署到一個(gè)或多個(gè)CPUGPU的臺(tái)式機(jī)、服務(wù)器或者移動(dòng)設(shè)備。有此功能的庫(kù)并不多,如果要說(shuō)有,Tensorflow就是其一。
  它是為谷歌大腦項(xiàng)目開發(fā)的,目前已被數(shù)百名工程師使用,所以無(wú)須懷疑它是否能夠創(chuàng)造有趣的解決方案。
  盡管和其它的庫(kù)一樣,你可能必須花一些時(shí)間來(lái)學(xué)習(xí)它的API,但花掉的時(shí)間應(yīng)該是很值得的。我只花了幾分鐘了解了一下它的核心功能,就已經(jīng)知道Tensorflow值得我花更多的時(shí)間讓我來(lái)實(shí)現(xiàn)我的網(wǎng)絡(luò)設(shè)計(jì),而不僅僅是通過(guò)API來(lái)使用。
  擅長(zhǎng):神經(jīng)網(wǎng)絡(luò)網(wǎng)址:http://tensorflow.org/Github: https://github.com/tensorflow/tensorflow
  scikit-learn
  scikit-learn絕對(duì)是其中一個(gè),如果不是最流行的,那么也算得上是所有語(yǔ)言中流行的機(jī)器學(xué)習(xí)庫(kù)之一。它擁有大量的數(shù)據(jù)挖掘和數(shù)據(jù)分析功能,使其成為研究人員和開發(fā)者的首選庫(kù)。
  其內(nèi)置了流行的NumPy、SciPy,matplotlib庫(kù),因此對(duì)許多已經(jīng)使用這些庫(kù)的人來(lái)說(shuō)就有一種熟悉的感覺(jué)。盡管與下面列出的其他庫(kù)相比,這個(gè)庫(kù)顯得水平層次略低,并傾向于作為許多其他機(jī)器學(xué)習(xí)實(shí)現(xiàn)的基礎(chǔ)。
  擅長(zhǎng):非常多網(wǎng)址:http://scikit-learn.org/Github: http://github.com/scikit-learn/scikit-learn
  Theano
  Theano是一個(gè)機(jī)器學(xué)習(xí)庫(kù),允許你定義、優(yōu)化和評(píng)估涉及多維數(shù)組的數(shù)學(xué)表達(dá)式,這可能是其它庫(kù)開發(fā)商的一個(gè)挫折點(diǎn)。與scikit-learn一樣,Theano也很好地整合了NumPy庫(kù)。GPU的透明使用使得Theano可以快速并且無(wú)錯(cuò)地設(shè)置,這對(duì)于那些初學(xué)者來(lái)說(shuō)非常重要。然而有些人更多的是把它描述成一個(gè)研究工具,而不是當(dāng)作產(chǎn)品來(lái)使用,因此要按需使用。
  Theano最好的功能之一是擁有優(yōu)秀的參考文檔和大量的教程。事實(shí)上,多虧了此庫(kù)的流行程度,使你在尋找資源的時(shí)候不會(huì)遇到太多的麻煩,比如如何得到你的模型以及運(yùn)行等。
  擅長(zhǎng):神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)網(wǎng)址:http://deeplearning.net/software/theano/Github:https://github.com/Theano/Theano
  Pylearn2
  大多數(shù)Pylearn2的功能實(shí)際上都是建立在Theano之上,所以它有一個(gè)非常堅(jiān)實(shí)的基礎(chǔ)。
  據(jù)Pylearn2網(wǎng)址介紹:
  Pylearn2不同于scikit-learn,Pylearn2旨在提供極大的靈活性,使研究者幾乎可以做任何想做的事情,而scikit-learn的目的是作為一個(gè)“黑盒”來(lái)工作,即使用戶不了解實(shí)現(xiàn)也能產(chǎn)生很好的結(jié)果。記住,Pylearn2在合適的時(shí)候會(huì)封裝其它的庫(kù),如scikit-learn,所以在這里你不會(huì)得到100%用戶編寫的代碼。然而,這確實(shí)很好,因?yàn)榇蠖鄶?shù)錯(cuò)誤已經(jīng)被解決了。像Pylearn2這樣的封裝庫(kù)在此列表中有很重要的地位。
  擅長(zhǎng):神經(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)域之一是遺傳算法。從根本上說(shuō),遺傳算法只是一個(gè)模擬自然選擇的啟發(fā)式搜索過(guò)程。本質(zhì)上它是在一些數(shù)據(jù)上測(cè)試神經(jīng)網(wǎng)絡(luò),并從一個(gè)擬合函數(shù)中得到網(wǎng)絡(luò)性能的反饋。然后對(duì)網(wǎng)絡(luò)迭代地做小的、隨機(jī)的變化,再使用相同的數(shù)據(jù)進(jìn)行測(cè)試。將具有高度擬合分?jǐn)?shù)的網(wǎng)絡(luò)作為輸出,然后使其作為下一個(gè)網(wǎng)絡(luò)的父節(jié)點(diǎn)。
  Pyevolve提供了一個(gè)用于建立和執(zhí)行這類算法很棒的框架。作者曾表示,V0.6版本也支持遺傳編程,所以在不久的將來(lái),該框架將更傾向于作為一個(gè)進(jìn)化的計(jì)算框架,而不只是簡(jiǎn)單地遺傳算法框架。
  擅長(zhǎng):遺傳算法的神經(jīng)網(wǎng)絡(luò)Github:https://github.com/perone/Pyevolve
  NuPIC
  Nupic是另一個(gè)庫(kù),與標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)算法相比,它提供了一些不同的功能。它基于一個(gè)稱作層次時(shí)間記憶(HTM)的新皮層理論,。HTMs可以看作是一類神經(jīng)網(wǎng)絡(luò),但在一些理論上有所不同。
  從根本上說(shuō),HTMs是一個(gè)分層的、基于時(shí)間的記憶系統(tǒng),可以接受各種數(shù)據(jù)。這意味著會(huì)成為一個(gè)新的計(jì)算框架,來(lái)模仿我們大腦中的記憶和計(jì)算是如何密不可分的。對(duì)于理論及其應(yīng)用的詳細(xì)說(shuō)明,請(qǐng)參閱 白皮書。
  擅長(zhǎng):HTMsGithub:http://github.com/numenta/nupic
  Pattern
  此庫(kù)更像是一個(gè)“全套”庫(kù),因?yàn)樗粌H提供了一些機(jī)器學(xué)習(xí)算法,而且還提供了工具來(lái)幫助你收集和分析數(shù)據(jù)。數(shù)據(jù)挖掘部分可以幫助你收集來(lái)自谷歌、推特和維基百科等網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)。它也有一個(gè)Web爬蟲和HTML DOM解析器。“引入這些工具的優(yōu)點(diǎn)就是:在同一個(gè)程序中收集和訓(xùn)練數(shù)據(jù)顯得更加容易。
  在文檔中有個(gè)很好的例子,使用一堆推文來(lái)訓(xùn)練一個(gè)分類器,用來(lái)區(qū)分一個(gè)推文是“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()通過(guò)標(biāo)簽‘#win’和‘#fail’來(lái)收集推文數(shù)據(jù)。然后利用從推文中提取的形容詞來(lái)訓(xùn)練一個(gè)K-近鄰(KNN)模型。經(jīng)過(guò)足夠的訓(xùn)練,你會(huì)得到一個(gè)分類器。僅僅只需15行代碼,還不錯(cuò)。
  擅長(zhǎng):自然語(yǔ)言處理(NLP)和分類。Github:http://github.com/clips/pattern
  Caffe
  Caffe是面向視覺(jué)應(yīng)用領(lǐng)域的機(jī)器學(xué)習(xí)庫(kù)。你可能會(huì)用它來(lái)創(chuàng)建深度神經(jīng)網(wǎng)絡(luò),識(shí)別圖像中的實(shí)體,甚至可以識(shí)別一個(gè)視覺(jué)樣式。
  Caffe提供GPU訓(xùn)練的無(wú)縫集成,當(dāng)你訓(xùn)練圖像時(shí)極力推薦使用此庫(kù)。雖然Caffe似乎主要是面向?qū)W術(shù)和研究的,但它對(duì)用于生產(chǎn)使用的訓(xùn)練模型同樣有足夠多的用途。
  擅長(zhǎng):神經(jīng)網(wǎng)絡(luò)/視覺(jué)深度學(xué)習(xí)網(wǎng)址:http://caffe.berkeleyvision.org/Github:https://github.com/BVLC/caffe
  其它知名庫(kù)
  這里還列出了一些其它面向Python的機(jī)器學(xué)習(xí)庫(kù)。其中一些庫(kù)與上述庫(kù)有著相同的功能,而另一些則有更窄小的目標(biāo)或是更適合當(dāng)作學(xué)習(xí)工具來(lái)使用。
  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%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?