最好的Python機器學習庫

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

  • 擅長:HTMs
  • Github: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機器學習:常用庫的介紹及安裝
    現在,隨著人工智慧的興起,機器學習越來越被各行業看重,從而使得人工智慧的需求會越來越大。今天,我們就從零基礎開始學習人工智慧的基礎篇——機器學習。工欲善其事必先利其器,所以,我們首先來看一下,我們要學習這些東西,需要準備些什麼!首先電腦一臺,這是必備的。下面我們來看一下需要安裝些什麼軟體到電腦上!
  • 2020年六大機器學習Python庫!
    外頭有許多類型的python庫可用,本文介紹了一些流行的機器學習庫。1. NumPy:NumPy是一種通用的數組處理軟體包。它提供高性能的多維數組對象和用於處理這些數組的工具。它是用於科學計算的基本Python軟體包。NumPy針對Python的CPython參考實現,這是一種非優化的字節碼解釋器。
  • 2019年必知的10大頂級Python庫
    python 在開發人員中流行的原因有很多。然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。
  • 數據科學和機器學習的最佳Python庫
    數據科學和機器學習是該時代最需求的技術,這一需求促使每個人都學習不同的庫和軟體包以實現它們。這篇博客文章將重點介紹用於數據科學和機器學習的Python庫。這些是您掌握市場上最被炒作的兩項技能的庫。我經常被要求在Pandas,NumPy和SciPy中選擇最好的,但是,我更喜歡使用它們,因為它們彼此之間非常依賴。Pandas是處理大量數據的最佳庫之一,而NumPy對多維數組具有出色的支持,另一方面,Scipy提供了一組執行大多數統計分析任務的子包。
  • 一文總結數據科學家常用的Python庫(下)
    (https://www.analyticsvidhya.com/blog/2015/01/scikit-learn-python-machine-learning-tool/)/* TensorFlow */TensorFlow由Google開發,是一個流行的深度學習庫,可幫助您構建和培訓不同的模型。它是一個開源的端到端平臺。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • 38個常用Python庫:數值計算、可視化、機器學習等8大領域都有了
    一、數值計算數值計算是數據挖掘、機器學習的基礎。Python提供多種強大的擴展庫用於數值計算,常用的數值計算庫如下所示。1. NumPy支持多維數組與矩陣運算,也針對數組運算提供大量的數學函數庫。MySQL-python又稱MySQLdb,是Python連接MySQL最流行的一個驅動,很多框架也基於此庫進行開發。只支持Python 2.x,且安裝時有許多前置條件。由於該庫基於C語言開發,在Windows平臺上的安裝非常不友好,經常出現失敗的情況,現在基本不推薦使用,取代品為衍生版本。
  • Python第三方庫安裝
    Python第三方庫安裝方法包含:-pip安裝-集成環境自帶-文件安裝三種方法1. pip安裝1.1 如何查找第三方庫Python社區可以查找第三方庫的,其頁面如圖所示:pypi.org其中PyPI: Python Package Index是由PSF維護的展示全球Python計算生態的主站如要安裝圖像處理opencv-python庫可以搜索 opencv,但結果如下:
  • 2020年最流行的十個Python庫(上)
    Python是最著名的程式語言之一,由於它最簡單的語法結構而受到開發人員的青睞,更隨著近年來它在人工智慧和機器學習領域中正變得越來越重要。Python之所以強大,還因為它擁有大量的庫,這使得python滲透於任何類型的開發,藉助python可以進行網絡開發,腳本編寫,遊戲開發,數據科學等工作。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    尹老師,數據科學家,浙江大學物理學博士,浙江某高校數據科學專業負責人,兼任某網絡科技上市公司大數據總監,受聘擔任多家大數據教學機構主講教師,開發多套python高級編程、機器學習、網絡爬蟲與文本挖掘系列課程,10+年python軟體開發數據產品經驗,熟悉R Java等多種程式語言,具有豐富的python統計建模、數據挖掘、大數據技術教學經驗,先後為中國交通銀行,平安保險公司等數十家知名機構主講
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    為了幫助也在經歷類似探索過程的童鞋,我把至今發現的最好的教程匯總了一個列表。當然這不是網絡上有關ML的最全集合,而且其中有一部分內容很普通。我的目標是要找到最好的有關機器學習子方向和NLP的教程。我引用了能簡潔介紹概念的基礎內容。我已經迴避包含一些大部頭書的章節,和對理解概念沒有幫助的科研論文。那為什麼不買一本書呢?
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    為了幫助也在經歷類似探索過程的童鞋,我把至今發現的最好的教程匯總了一個列表。當然這不是網絡上有關ML的最全集合,而且其中有一部分內容很普通。我的目標是要找到最好的有關機器學習子方向和NLP的教程。我引用了能簡潔介紹概念的基礎內容。
  • 數據工程師需要掌握的 18 個 Python 庫
    作者 | 劉早起早起責編 | 屠敏本文對Python中在數據分析中需要掌握的庫進行了整理,一起來看看吧!所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。
  • 掌握了這24個頂級Python庫,你就是大神!
    它是一個為繪製有吸引力的圖像而提供高級接口的python庫。matplotlib能實現功能,Seaborn只是以另一種更吸引人的視覺方式來實現。TensorFlowTensorFlow由谷歌開發,是一個流行的深度學習庫,可幫助構建、培訓不同模型。是一個開放源碼的端到端平臺。TensorFlow提供簡單的模型構建,強大的機器學習生產,以及強大的實驗工具和庫。TensorFlow提供多個抽象級別,可根據需要進行選擇。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。導入數據,並通過描述性分析、可視化等對數據進行分析。創建六個模型,並從中選擇準確度最高的模型。
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    為了幫助也在經歷類似探索過程的童鞋,我把至今發現的最好的教程匯總了一個列表。當然這不是網絡上有關ML的最全集合,而且其中有一部分內容很普通。我的目標是要找到最好的有關機器學習子方向和NLP的教程。 我引用了能簡潔介紹概念的基礎內容。我已經迴避包含一些大部頭書的章節,和對理解概念沒有幫助的科研論文。那為什麼不買一本書呢?
  • 好程式設計師Python培訓分享numpy簡介
    好程式設計師Python培訓分享numpy簡介:一、numpy簡介:NumPy是一個功能強大的Python庫,主要用於對多維數組執行計算。NumPy這個詞來源於兩個單詞-- Numerical和Python。NumPy提供了大量的庫函數和操作,可以幫助程式設計師輕鬆地進行數值計算。
  • 大數據分析Python NumPy庫使用教程
    NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
  • Python開發者必知的 11 個 Python GUI 庫,你用過幾個?
    Python開發者必知的 11 個 Python GUI 庫,你用過幾個? 當你使用python編寫應用程式時,你就一定要使用GUI。Python GUI的選擇有很多。目前來說,Python GUI程序庫有30多個跨平臺框架。現在就列出其我認為最好的11個.
  • 使用Python中的線性回歸通過語音診斷帕金森氏病
    本文,我們將創建一個簡單的python機器學習算法,以便能夠通過聲音來診斷該人是否為患者。我們將使用一組(健康者和帕金森病患者)音頻文件庫,通過對音頻進行一些測量來構建我們的機器學習數據集。建立機器學習數據集後,我們將使用SciKit Learn庫訓練線性回歸模型。最後,我們將構建一個python庫,這個庫可以輕鬆集成到其他應用程式中。數據集首先,我們需要將音頻文件轉換成包含音頻測量值以及患者是否健康標誌的表格。