最好的Python機器學習庫

2021-01-11 CSDN技術社區
引言

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

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

語言簡單:如今,Python成為新手程式設計師首選語言的主要原因是它擁有簡單的語法和龐大的社區。功能強大:語法簡單並不意味著它功能薄弱。Python同樣也是數據科學家和Web程式設計師最受歡迎的語言之一。Python社區所創建的庫可以讓你做任何你想做的事,包括機器學習。豐富的ML庫:目前有大量面向Python的機器學習庫。你可以根據你的使用情況、技術和需求從數百個庫中選擇最合適的一個。

上面最後一點可以說是最重要的。驅動機器學習的算法相當複雜,包括了很多的數學知識,所以自己動手去實現它們(並保證其正常運行)將會是一件很困難的任務。幸運地是,有很多聰明的、有奉獻精神的人為我們做了這個困難的工作,因此我們只需要專注於手邊的應用程式即可。

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

最受歡迎的庫

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

Tensorflow

這是清單中最新的神經網絡庫。在前幾天剛剛發行,Tensorflow是高級神經網絡庫,可以幫助你設計你的網絡架構,避免出現低水平的細節錯誤。重點是允許你將計算表示成數據流圖,它更適合於解決複雜問題。

此庫主要使用C++編寫,包括Python綁定,所以你不必擔心其性能問題。我最喜歡的一個特點是它靈活的體系結構,允許你使用相同的API將其部署到一個或多個CPU或GPU的臺式機、伺服器或者行動裝置。有此功能的庫並不多,如果要說有,Tensorflow就是其一。

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

儘管和其它的庫一樣,你可能必須花一些時間來學習它的API,但花掉的時間應該是很值得的。我只花了幾分鐘了解了一下它的核心功能,就已經知道Tensorflow值得我花更多的時間讓我來實現我的網絡設計,而不僅僅是通過API來使用。

scikit-learn

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

其內置了流行的NumPy、SciPy,matplotlib庫,因此對許多已經使用這些庫的人來說就有一種熟悉的感覺。儘管與下面列出的其他庫相比,這個庫顯得水平層次略低,並傾向於作為許多其他機器學習實現的基礎。

Theano

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

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

擅長:神經網絡和深度學習網址:http://deeplearning.net/software/theano/Github:https://github.com/Theano/Theano

Pylearn2

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

據Pylearn2網址介紹:

Pylearn2不同於scikit-learn,Pylearn2旨在提供極大的靈活性,使研究者幾乎可以做任何想做的事情,而scikit-learn的目的是作為一個「黑盒」來工作,即使用戶不了解實現也能產生很好的結果。

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

擅長:神經網絡網址:http://deeplearning.net/software/pylearn2/Github:http://github.com/lisa-lab/pylearn2

Pyevolve

神經網絡研究更讓人興奮和不同的領域之一是遺傳算法。從根本上說,遺傳算法只是一個模擬自然選擇的啟發式搜索過程。本質上它是在一些數據上測試神經網絡,並從一個擬合函數中得到網絡性能的反饋。然後對網絡迭代地做小的、隨機的變化,再使用相同的數據進行測試。將具有高度擬合分數的網絡作為輸出,然後使其作為下一個網絡的父節點。

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

擅長:遺傳算法的神經網絡Github:https://github.com/perone/Pyevolve

NuPIC

Nupic是另一個庫,與標準的機器學習算法相比,它提供了一些不同的功能。它基於一個稱作層次時間記憶(HTM)的新皮層理論,。HTMs可以看作是一類神經網絡,但在一些理論上有所不同。

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

擅長:HTMsGithub:http://github.com/numenta/nupic

Pattern

此庫更像是一個「全套」庫,因為它不僅提供了一些機器學習算法,而且還提供了工具來幫助你收集和分析數據。數據挖掘部分可以幫助你收集來自谷歌、推特和維基百科等網絡服務的數據。它也有一個Web爬蟲和HTML DOM解析器。「引入這些工具的優點就是:在同一個程序中收集和訓練數據顯得更加容易。

在文檔中有個很好的例子,使用一堆推文來訓練一個分類器,用來區分一個推文是「win」還是「fail」。

from pattern.web import Twitter from pattern.en import tag from pattern.vector import KNN, counttwitter, 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()通過標籤'#win'和'#fail'來收集推文數據。然後利用從推文中提取的形容詞來訓練一個K-近鄰(KNN)模型。經過足夠的訓練,你會得到一個分類器。僅僅只需15行代碼,還不錯。

擅長:自然語言處理(NLP)和分類。Github:http://github.com/clips/pattern

Caffe

Caffe是面向視覺應用領域的機器學習庫。你可能會用它來創建深度神經網絡,識別圖像中的實體,甚至可以識別一個視覺樣式。

Caffe提供GPU訓練的無縫集成,當你訓練圖像時極力推薦使用此庫。雖然Caffe似乎主要是面向學術和研究的,但它對用於生產使用的訓練模型同樣有足夠多的用途。

擅長:神經網絡/視覺深度學習網址:http://caffe.berkeleyvision.org/Github:https://github.com/BVLC/caffe

其它知名庫

這裡還列出了一些其它面向Python的機器學習庫。其中一些庫與上述庫有著相同的功能,而另一些則有更窄小的目標或是更適合當作學習工具來使用。

Nilearn

Statsmodels

PyBrain (inactive)

Fuel

·  Github

Bob

skdata

MILK

IEPY

Quepy

Hebel

mlxtend

nolearn

·  Github

Ramp

Feature Forge

REP

Python-ELM

PythonXY

XCS

PyML

MLPY (inactive)

Orange

Monte

PYMVPA

MDP (inactive)

Shogun

PyMC

Gensim

Neurolab

FFnet (inactive)

LibSVM

Spearmint

Chainer

topik

Crab

CoverTree

breze

deap

neurolab

Spearmint

yahmm

·  Github

pydeep

Annoy

neon

sentiment

原文地址:The Best Machine Learning Libraries In Python(譯者/劉帝偉 審校/劉翔宇 責編/仲浩)

譯者簡介: 劉帝偉,中南大學軟體學院在讀研究生,關注機器學習、數據挖掘及生物信息領域。

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • Python常用庫大全
    python-prompt-toolkit – 一個用於構建強大的交互式命令行程序的庫。 生產力工具 aws-cli – Amazon Web Services 的通用命令行界面。 bashplotlib – 在終端中進行基本繪圖。 caniusepython3 – 判斷是哪個項目妨礙你你移植到 Python 3。
  • 深圳Python培訓班打造行業高標準Python人才
    Python火的原因1、python相比別的高級語言集成度更高,除了執行的效率低些,開源可以調用的類庫實在太多了,要實現一個功能,如果換作傳統的程式語言,需要實現基本的功能模塊,但直接調用類庫很方便的搞定,特別適合零基礎的學習, 幾行代碼就能實現很強大的功能。
  • 讓所有程式設計師絕不能錯過的59個Python庫總結!
    Python有以下三個特點:易用性和靈活性全行業高接受度:Python無疑是業界最流行的數據科學語言用於數據科學的Python庫的豐富數量優勢本文介紹了python人最常用的59個python庫。一起來看看吧~用於數據收集的Python庫1.
  • 如何在Visual Studio開發工具安裝python庫
    >技術pythonDjango在python語言開發工具的pycharm中,可以安裝第三方庫。那麼,在Visual Studio開發工具中,如何安裝python第三方庫呢?下面利用實例說明:操作步驟:1、打開Visual Studio 2019開發工具,創建python項目
  • 從內外兩個角度解析Python為什麼這麼火
    Python的應用領域非常廣,Python有著完整的爬蟲各種庫支持;這幾年火爆的人工智慧,AI,機器學習,Python是作為默認的程式語言,沒有其他腳本語言能夠涉入到這些行業跟Python競爭。IT行業的巨大變化,近幾年來,大數據,人工智慧,AI和機器學習非常的火熱,而Python是非常適合人工智慧方向的計算機語言!3.
  • 為什麼企業都在用Python做數據分析?
    ▲使用python構建交互式圖表查看整體營收情況 Python自身的優勢 此外,它還有許多優秀的數據分析庫。目前,有超過125000個第三方Python庫。 對於以數據為中心的庫,如熊貓、NumPy和matplotlib,任何知道Python語法規則的人都可以操作和部署它們。最重要的是它是免費的和開源的!
  • 學了Python一般可以用來幹什麼呢?
    youtube 世界最大的視頻網站也是Python開發的哦.還有非常出名的instagram 也是用python開發的2,網絡爬蟲爬蟲是屬於運營的比較多的一個場景吧,比如谷歌的爬蟲早期就是用跑Python寫的. 其中有一個庫叫 Requests ,這個庫是一個模擬HTTP請求的一個庫,非常的出名!
  • Python人工智慧中應用,深度學習搭建人機對話平臺,AI帶你飛
    其中包括它的語法、Python開發人員可用的科學生態系統和數據分析庫、易於和幾乎所有其它技術集成,以及其開源地位。對大數據分析挖掘、機器學習,python等數據領域感興趣的同學我們來看下Python在人工智慧領域的應用。Python在人工智慧領域的應用Python和其它好的技術一樣,在你的開發團隊像病毒一樣快速傳播,然後找到把它應用到各種應用和工具中的方式。
  • Python 3.9來啦!細數十個值得關注的新特性
    簡而言之,從字典更新 / 合併到添加新的字符串方法,再到zoneinfo庫的引入,Python 3.9 添加了許多新特性。此外,該版本還引入了一種穩定、高性能的新型解析器。標準庫更新了許多新特性,並添加了新模塊zoneinfo和graphlib。
  • 谷歌開源量子機器學習函式庫,助力英特爾處理器性能最佳化
    Google、滑鐵盧大學、X(公司)和福斯集團合作,共同研發出量子機器學習的開源函式庫TensorFlow Quantum(TFQ),這是一個TensorFlow的擴充,讓開發人員可以利用量子電腦建構機器學習模型。
  • 此庫在手,好片無憂!Python爬片,小手不抖
    作者:鄧旭東HIT,Python愛好者社區專欄作者 https://zhuanlan.zhihu.com/pythoncoder
  • Python有什麼用?2020年學習Python的10個理由
    同樣,對於希望進入數據科學和機器學習領域的有編程經驗的程式設計師來說,學習 Python 也很有意義,因為它正在迅速成為使用者最多的程式語言,並且有強大的 API 和庫可用於 AI、數據科學和機器學習。理由一:Python真的非常適合數據科學這是為什麼許多程式設計師在 2020 學習 Python 的唯一最大的原因。
  • 2017年Python中文社區公眾號十大熱門文章
    文章介紹如何不利用第三方庫,僅用python自帶的標準庫來構造一個決策樹。用 Python分析胡歌的《獵場》到底值不值得看?作者用機器學習帶你從人群中一眼找到顏值最高的小姐姐。如何快速爬取B站全站視頻信息
  • 單片機上運行Python-MicroPython(三)
    如果需要使用大的永久性緩衝或其它類型對象,最好在程序運行的早期就進行實例化,以避免內存碎片的影響。若要更進一步改善這種情況,可以監視堆棧的狀態並手動控制垃圾回收器的執行。大致方法會在下面章節介紹。內存狀態報告有許多庫函數可用於報告內存的分配情況和控制垃圾回收器的執行。其多存在於gc模塊和micropython模塊。可將下面的示例代碼粘貼到REPL中運行查看效果。
  • Python學了有什麼用?一定可以提高你的工作效率-開課吧
    Google是從一開始就使用python的公司。那麼使用Python能幹什麼呢?5、機器學習。Python在這些算法研究領域非常火爆,有很多現成的庫和框架可以供學習使用。6、web開發。其實很多著名的網站像知乎、YouTube、豆瓣網就是Python寫的,此外很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python;7、網路遊戲後臺。
  • 揭 秘 | 用Python寫了自動化交易程序,2年躺著賺了200萬?!
    2017年8月:Python超越R,成為數據科學和機器學習的最常用語言。2周——Python庫是Python的精華所在,可以說Python庫組成並且造就了Python,Python庫是Python開發者的利器,所以學習Python庫就顯得尤為重要。2周——經過以上鍛鍊後,我們的Python知識水平肯定是越來越高。
  • 如何用PYTHON代碼寫出音樂
    下面我們就介紹下生成MIDI文件所使用的Python庫。python-midi庫介紹市面上差不多有十多種python庫可以編寫MIDI格式的文件,本文會推薦大家使用PYTHON-MIDI。我覺得python-midi的優勢是不光可以自己寫程序生成MIDI,而且還可以對MIDI文件進行解析。
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • Python Tool 101 - Tool 002 - Python 情感分析 SnowNLP
    SnowNLP是咋們中國人受到了TextBlob的啟發後開發的python類庫,能夠非常方便的處理中文文本內容,劃重點方便處理中文的類庫!!!,類庫中的算法和訓練好的字典都已經準備好了。唯一需要注意的是要使用unicode編碼,所以使用時請自行decode成unicode。知道這個SnowNLP是什麼之後,我們開始設計下實驗方案。
  • 【python】Array Programming with Numpy
    在正文中,作者主要圍繞摘要中的內容進行展開,主要介紹了Numpy的歷史,Numpy是什麼,現有的python科學生態,數組的激增以及互用性以及最後的討論。在Numpy的歷史中,作者主要講述了在Numpy出現之前便已經存在的兩個第三方庫的歷史以及主要功能,優劣勢,再講述了Numpy從出現到現今的發展程度,執行方式以及發展方式。