<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > Python語(yǔ)言下的機器學(xué)習庫

Python語(yǔ)言下的機器學(xué)習庫

作者: 時(shí)間:2017-10-12 來(lái)源:網(wǎng)絡(luò ) 收藏

  是最好的編程語(yǔ)言之一,在科學(xué)計算中用途廣泛:計算機視覺(jué)、人工智能、數學(xué)、天文等。它同樣適用于也是意料之中的事。

本文引用地址:http://dyxdggzs.com/article/201710/369940.htm

  當然,它也有些缺點(diǎn);其中一個(gè)是工具和庫過(guò)于分散。如果你是擁有unix思維(unix-minded)的人,你會(huì )覺(jué)得每個(gè)工具只做一件事并且把它做好是非常方便的。但是你也需要知道不同庫和工具的優(yōu)缺點(diǎn),這樣在構建系統時(shí)才能做出合理的決策。工具本身不能改善系統或產(chǎn)品,但是使用正確的工具,我們可以工作得更高效,生產(chǎn)率更高。因此了解正確的工具,對你的工作領(lǐng)域是非常重要的。

  這篇文章的目的就是列舉并描述可用的最有用的工具和庫。這個(gè)列表中,我們不要求這些庫是用寫(xiě)的,只要有Python接口就夠了。我們在最后也有一小節關(guān)于深度學(xué)習(Deep Learning)的內容,因為它最近也吸引了相當多的關(guān)注。

  我們的目的不是列出Python中所有庫(搜索“機器學(xué)習”時(shí)Python包索引(PyPI)返回了139個(gè)結果),而是列出我們所知的有用并且維護良好的那些。另外,盡管有些模塊可以用于多種機器學(xué)習任務(wù),我們只列出主要焦點(diǎn)在機器學(xué)習的庫。比如,雖然Scipy包含一些聚類(lèi)算法,但是它的主焦點(diǎn)不是機器學(xué)習而是全面的科學(xué)計算工具集。因此我們排除了Scipy(盡管我們也使用它!)。

  另一個(gè)需要提到的是,我們同樣會(huì )根據與其他科學(xué)計算庫的集成效果來(lái)評估這些庫,因為機器學(xué)習(有監督的或者無(wú)監督的)也是數據處理系統的一部分。如果你使用的庫與數據處理系統其他的庫不相配,你就要花大量時(shí)間創(chuàng )建不同庫之間的中間層。在工具集中有個(gè)很棒的庫很重要,但這個(gè)庫能與其他庫良好集成也同樣重要。

  如果你擅長(cháng)其他語(yǔ)言,但也想使用Python包,我們也簡(jiǎn)單地描述如何與Python進(jìn)行集成來(lái)使用這篇文章列出的庫。

  Scikit-Learn

  Scikit Learn是我們在CB Insights選用的機器學(xué)習工具。我們用它進(jìn)行分類(lèi)、特征選擇、特征提取和聚集。我們最?lèi)?ài)的一點(diǎn)是它擁有易用的一致性API,并提供了很多開(kāi)箱可用的求值、診斷和交叉驗證方法(是不是聽(tīng)起來(lái)很熟悉?Python也提供了“電池已備(譯注:指開(kāi)箱可用)”的方法)。錦上添花的是它底層使用Scipy數據結構,與Python中其余使用Scipy、Numpy、Pandas和Matplotlib進(jìn)行科學(xué)計算的部分適應地很好。因此,如果你想可視化分類(lèi)器的性能(比如,使用精確率與反饋率(precision-recall)圖表,或者接收者操作特征(Receiver Operating Characteristics,ROC)曲線(xiàn)),Matplotlib可以幫助進(jìn)行快速可視化??紤]到花在清理和構造數據的時(shí)間,使用這個(gè)庫會(huì )非常方便,因為它可以緊密集成到其他科學(xué)計算包上。

  另外,它還包含有限的自然語(yǔ)言處理特征提取能力,以及詞袋(bag of words)、tfidf(Term Frequency Inverse Document Frequency算法)、預處理(停用詞/stop-words,自定義預處理,分析器)。此外,如果你想快速對小數據集(toy dataset)進(jìn)行不同基準測試的話(huà),它自帶的數據集模塊提供了常見(jiàn)和有用的數據集。你還可以根據這些數據集創(chuàng )建自己的小數據集,這樣在將模型應用到真實(shí)世界中之前,你可以按照自己的目的來(lái)檢驗模型是否符合期望。對參數最優(yōu)化和參數調整,它也提供了網(wǎng)格搜索和隨機搜索。如果沒(méi)有強大的社區支持,或者維護得不好,這些特性都不可能實(shí)現。我們期盼它的第一個(gè)穩定發(fā)布版。

  Statsmodels

  Statsmodels是另一個(gè)聚焦在統計模型上的強大的庫,主要用于預測性和探索性分析。如果你想擬合線(xiàn)性模型、進(jìn)行統計分析,或者預測性建模,那么Statsmodels非常適合。它提供的統計測試相當全面,覆蓋了大部分情況的驗證任務(wù)。如果你是R或者S的用戶(hù),它也提供了某些統計模型的R語(yǔ)法。它的模型同時(shí)也接受Numpy數組和Pandas數據幀,讓中間數據結構成為過(guò)去!

  PyMC

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

  Shogun

  Shogun是個(gè)聚焦在支持向量機(Support Vector Machines, SVM)上的機器學(xué)習工具箱,用C++編寫(xiě)。它正處于積極開(kāi)發(fā)和維護中,提供了Python接口,也是文檔化最好的接口。但是,相對于Scikit-learn,我們發(fā)現它的API比較難用。而且,也沒(méi)提供很多開(kāi)箱可用的診斷和求值算法。但是,速度是個(gè)很大的優(yōu)勢。

  Gensim

  Gensim被定義為“人們的主題建模工具(topic modeling for humans)”。它的主頁(yè)上描述,其焦點(diǎn)是狄利克雷劃分(Latent Dirichlet Allocation, LDA)及變體。不同于其他包,它支持自然語(yǔ)言處理,能將NLP和其他機器學(xué)習算法更容易組合在一起。如果你的領(lǐng)域在NLP,并想進(jìn)行聚集和基本的分類(lèi),你可以看看。目前,它們引入了Google的基于遞歸神經(jīng)網(wǎng)絡(luò )(Recurrent Neural Network)的文本表示法word2vec。這個(gè)庫只使用Python編寫(xiě)。

  Orange

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

  但是,包含GUI是個(gè)很重要的優(yōu)勢。你可以可視化交叉驗證的結果、模型和特征選擇方法(某些功能需要安裝Graphviz)。對大多數算法,Orange都有自己的數據結構,所以你需要將數據包裝成Orange兼容的數據結構,這使得其學(xué)習曲線(xiàn)更陡。

  PyMVPA

  PyMVPA是另一個(gè)統計學(xué)習庫,API上與Scikit-learn很像。包含交叉驗證和診斷工具,但是沒(méi)有Scikit-learn全面。

  深度學(xué)習

  盡管深度學(xué)習是機器學(xué)習的一個(gè)子節,我們在這里創(chuàng )建單獨一節的原因是,它最新吸引了Google和Facebook人才招聘部門(mén)的很多注意。

  Theano

  Theano是最成熟的深度學(xué)習庫。它提供了不錯的數據結構(張量,tensor)來(lái)表示神經(jīng)網(wǎng)絡(luò )的層,對線(xiàn)性代數來(lái)說(shuō)很高效,與Numpy的數組類(lèi)似。需要注意的是,它的API可能不是很直觀(guān),用戶(hù)的學(xué)習曲線(xiàn)會(huì )很高。有很多基于Theano的庫都在利用其數據結構。它同時(shí)支持開(kāi)箱可用的GPU編程。

  PyLearn2

  還有另外一個(gè)基于Theano的庫,PyLearn2,它給Theano引入了模塊化和可配置性,你可以通過(guò)不同的配置文件來(lái)創(chuàng )建神經(jīng)網(wǎng)絡(luò ),這樣嘗試不同的參數會(huì )更容易??梢哉f(shuō),如果分離神經(jīng)網(wǎng)絡(luò )的參數和屬性到配置文件,它的模塊化能力更強大。

  Decaf

  Decaf是最近由UC Berkeley發(fā)布的深度學(xué)習庫,在Imagenet分類(lèi)挑戰中測試發(fā)現,其神經(jīng)網(wǎng)絡(luò )實(shí)現是很先進(jìn)的(state of art)。

  Nolearn

  如果你想在深度學(xué)習中也能使用優(yōu)秀的Scikit-learn庫API,封裝了Decaf的Nolearn會(huì )讓你能夠更輕松地使用它。它是對Decaf的包裝,與Scikit-learn兼容(大部分),使得Decaf更不可思議。

  OverFeat

  OverFeat是最近貓vs.狗(kaggle挑戰)的勝利者,它使用C++編寫(xiě),也包含一個(gè)Python包裝器(還有Matlab和Lua)。通過(guò)Torch庫使用GPU,所以速度很快。也贏(yíng)得了ImageNet分類(lèi)的檢測和本地化挑戰。如果你的領(lǐng)域是計算機視覺(jué),你可能需要看看。

  Hebel

  Hebel是另一個(gè)帶有GPU支持的神經(jīng)網(wǎng)絡(luò )庫,開(kāi)箱可用。你可以通過(guò)YAML文件(與Pylearn2類(lèi)似)決定神經(jīng)網(wǎng)絡(luò )的屬性,提供了將神級網(wǎng)絡(luò )和代碼友好分離的方式,可以快速地運行模型。由于開(kāi)發(fā)不久,就深度和廣度上說(shuō),文檔很匱乏。就神經(jīng)網(wǎng)絡(luò )模型來(lái)說(shuō),也是有局限的,因為只支持一種神經(jīng)網(wǎng)絡(luò )模型(正向反饋,feed-forward)。但是,它是用純Python編寫(xiě),將會(huì )是很友好的庫,因為包含很多實(shí)用函數,比如調度器和監視器,其他庫中我們并沒(méi)有發(fā)現這些功能。

  Neurolab

  NeuroLab是另一個(gè)API友好(與Matlabapi類(lèi)似)的神經(jīng)網(wǎng)絡(luò )庫。與其他庫不同,它包含遞歸神經(jīng)網(wǎng)絡(luò )(Recurrent Neural Network,RNN)實(shí)現的不同變體。如果你想使用RNN,這個(gè)庫是同類(lèi)API中最好的選擇之一。

  與其他語(yǔ)言集成

  你不了解Python但是很擅長(cháng)其他語(yǔ)言?不要絕望!Python(還有其他)的一個(gè)強項就是它是一個(gè)完美的膠水語(yǔ)言,你可以使用自己常用的編程語(yǔ)言,通過(guò)Python來(lái)訪(fǎng)問(wèn)這些庫。以下適合各種編程語(yǔ)言的包可以用于將其他語(yǔ)言與Python組合到一起:

  R -> RPython

  Matlab -> matpython

  Java -> Jython

  Lua -> Lunatic Python

  Julia -> PyCall.jl

  不活躍的庫

  這些庫超過(guò)一年沒(méi)有發(fā)布任何更新,我們列出是因為你有可能會(huì )有用,但是這些庫不太可能會(huì )進(jìn)行BUG修復,特別是未來(lái)進(jìn)行增強。

  MDP

  MlPy

  FFnet

  PyBrain

  如果我們遺漏了你最?lèi)?ài)的Python機器學(xué)習包,通過(guò)評論讓我們知道。我們很樂(lè )意將其添加到文章中。



關(guān)鍵詞: Python 機器學(xué)習

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>