2021不可不知的前10個Python機器學(xué)習(xí)庫

wx搜索“拓撲軟件”纸泡,get各大廠精品PPT

Python廣泛應(yīng)用于各種場景谁榜,包含非常豐富的第三方庫,作為一個Python開發(fā)者捺疼,必須對最重要的庫有足夠的認知。接下來的部分就會向你展示永罚,Python中最應(yīng)該掌握的十大機器學(xué)習(xí)庫啤呼。

TensorFlow

Scikit-Learn

Numpy

Keras

PyTorch

LightGBM

Eli5

SciPy

Theano

Pandas

簡介

Python是目前最流行的編程語言之一卧秘,并在工業(yè)界替代了很多其他的編程語言。

Python如此流行的原因有很多官扣,其中一個原因就是它擁有非常多功能強大的第三方庫翅敌,且易于使用。

Python如此流行的原因有幾點:

Python有很多三方庫惕蹄。

Python的簡潔和易用使得初學(xué)者容易上手蚯涮。

Python能夠從開發(fā)、部署到維護卖陵,全方位地提升效率遭顶。

可移植性很強。

Python的編程語言簡單易學(xué)泪蔫,相比C棒旗、Java和C++而言,屬于高級語言撩荣。

因此嗦哆,只需要幾行代碼就能構(gòu)成一個新的應(yīng)用程序。

Python的簡單性吸引了許多開發(fā)人員創(chuàng)建可用于機器學(xué)習(xí)的新庫婿滓。由于大量的庫,Python在機器學(xué)習(xí)專家中變得非常流行粥喜。

所以凸主,本文首先要介紹的第一個庫就是TensorFlow。

TensorFlow

什么是TensorFlow额湘?

如果你現(xiàn)在用Python來構(gòu)建一個機器學(xué)習(xí)項目卿吐,那么你可能聽過TensorFlow這個庫。

這個庫是Google與Brain Team合作開發(fā)的锋华。TensorFlow幾乎是每個用于機器學(xué)習(xí)的Google應(yīng)用程序的一部分嗡官。

TensorFlow就像一個計算庫一樣,用于編寫涉及大量Tensor(張量)運算的新算法毯焕,因為神經(jīng)網(wǎng)絡(luò)可以輕松地表達為計算圖衍腥,因此可以使用TensorFlow將其作為Tensor上的一系列運算來實現(xiàn)。另外纳猫,張量是代表您數(shù)據(jù)的N維矩陣婆咸。

TensorFlow的特性

TensorFlow針對速度進行了優(yōu)化,它利用XLA之類的技術(shù)進行快速線性代數(shù)運算芜辕。

1. 響應(yīng)式構(gòu)造

借助TensorFlow尚骄,我們可以輕松地可視化計算圖的每個部分,這在使用Numpy或SciKit時是不可取的侵续。

2. 靈活性

Tensorflow功能非常重要的一項就是它的可操作性非常強倔丈,這意味著它具有模塊化以及您想要使其獨立的部分憨闰,它提供了這一選擇。

3. 容易訓(xùn)練

它可以輕松地在CPU和GPU上進行分布式訓(xùn)練需五。

4. 并行神經(jīng)網(wǎng)絡(luò)訓(xùn)練

TensorFlow提供了pipeline鹉动,意味著您可以訓(xùn)練多個神經(jīng)網(wǎng)絡(luò)和多個GPU,這使得模型在大規(guī)模系統(tǒng)上非常有效警儒。

5. 龐大的社區(qū)

不用說训裆,如果它是由Google開發(fā)的,那么已經(jīng)有一個龐大的軟件工程師團隊蜀铲,他們會不斷進行穩(wěn)定性改進边琉。

6. 開源

這個機器學(xué)習(xí)庫最棒的地方就是開源,只要有網(wǎng)絡(luò)记劝,每個人都可以使用它变姨。

TensorFlow的用途?

您每天都在使用TensorFlow厌丑,但是是間接地定欧,比如使用Google語音搜索或Google相冊之類的應(yīng)用程序,這些是TensorFlow的應(yīng)用程序怒竿。

TensorFlow中創(chuàng)建的所有庫都是用C和C ++編寫的砍鸠。但是,它具有復(fù)雜的Python前端耕驰。您的Python代碼將被編譯爷辱,然后在使用C和C ++構(gòu)建的TensorFlow分布式執(zhí)行引擎上執(zhí)行。

TensorFlow的應(yīng)用程序數(shù)量實際上是無限的,這就是TensorFlow的優(yōu)點。

Scikit-Learn

什么是Scikit-learn淋肾?

它是一個與 NumPy 和 SciPy 相關(guān)聯(lián)的Python 庫,被認為是處理復(fù)雜數(shù)據(jù)的最佳庫之一弟断。

這個庫做了很多改進,一是交叉驗證功能趴生,提供使用多個指標(biāo)的能力。許多訓(xùn)練方法舍咖,如邏輯回歸和最近鄰,都得到了一些小小的改進排霉。

Scikit-Learn的特性

1. 交叉驗證:有多種方法可以檢查監(jiān)督模型對未知數(shù)據(jù)的準(zhǔn)確度。

2. 無監(jiān)督學(xué)習(xí)算法:從聚類攻柠、因子分析、主成分分析到無監(jiān)督神經(jīng)網(wǎng)絡(luò)瑰钮。

3. 特征提取:用于從圖像和文本中提取特征(例如詞袋)

什么情況下使用Scikit-Learn?

它包含大量用于實現(xiàn)標(biāo)準(zhǔn)機器學(xué)習(xí)和數(shù)據(jù)挖掘任務(wù)的算法开睡,例如降維苟耻、分類、回歸凶杖、聚類和模型選擇胁艰。在完成這些任務(wù)時,我們可以使用Scikit-Learn智蝠。

Numpy

什么是Numpy?

Numpy 被認為是 Python 中最受歡迎的機器學(xué)習(xí)庫之一腾么。

TensorFlow和其他庫在內(nèi)部使用Numpy對張量執(zhí)行多種操作。數(shù)組接口是 Numpy 最好也是最重要的特性杈湾。

Numpy的特性

交互性:Numpy 具有很好的交互性且易于使用解虱。

數(shù)學(xué)特性:使復(fù)雜的數(shù)學(xué)實現(xiàn)變得非常簡單。

直觀:使編碼變得非常容易漆撞,并且很容易掌握概念饭寺。

大量學(xué)習(xí)資料:廣泛使用,因此有很多開源貢獻叫挟。

Numpy的用途?

該接口可用于將圖像、聲波和其他二進制原始流表示為N維實數(shù)數(shù)組限煞。

為了應(yīng)用這個可用于機器學(xué)習(xí)的庫抹恳,了解 Numpy 對全棧開發(fā)人員很重要。

Keras

什么是Keras?

Keras 被認為是Python中最酷的機器學(xué)習(xí)庫之一署驻。它提供了一種更簡單的機制來表達神經(jīng)網(wǎng)絡(luò)奋献。Keras 還提供了一些用于編譯模型、處理數(shù)據(jù)集旺上、圖形可視化等的最佳實用工具瓶蚂。

在后端,Keras在內(nèi)部使用 Theano 或 TensorFlow宣吱。也可以使用一些最流行的神經(jīng)網(wǎng)絡(luò)窃这,如CNTK。當(dāng)我們將Keras與其他機器學(xué)習(xí)庫進行比較時征候,它相對較慢杭攻。因為它通過使用后端基礎(chǔ)設(shè)施創(chuàng)建一個計算圖祟敛,然后利用它來執(zhí)行操作。Keras中的所有模型都是可移植的兆解。

Keras的特性

它在GPU和CPU上都能運行流暢馆铁。

Keras支持神經(jīng)網(wǎng)絡(luò)的幾乎所有模型——全連接埠巨、卷積辣垒、池化乍构、循環(huán)神經(jīng)網(wǎng)絡(luò)哥遮、embedding等眠饮。此外铜邮,這些模型可以組合起來構(gòu)建更復(fù)雜的模型松蒜。

Keras 本質(zhì)上是模塊化的秸苗,具有令人難以置信的表現(xiàn)力惊楼、靈活性檀咙,并且適合創(chuàng)新研究弧可。

Keras 是一個完全基于 Python 的框架,可以輕松調(diào)試和探索氧秘。

什么情況下使用Keras丸相?

您已經(jīng)在不斷地與使用 Keras 構(gòu)建的功能進行交互——Netflix灭忠、Uber弛作、Yelp华匾、Instacart蜘拉、Zocdoc旭旭、Square 和許多其他公司都在使用它。它在將深度學(xué)習(xí)置于其產(chǎn)品核心的初創(chuàng)公司中尤其受歡迎源梭。

Keras 包含許多常用神經(jīng)網(wǎng)絡(luò)構(gòu)建塊的實現(xiàn)废麻,例如層脑溢、目標(biāo)、激活函數(shù)验庙、優(yōu)化和大量工具粪薛,可以更輕松地處理圖像和文本數(shù)據(jù)。

此外熟空,它還提供了許多預(yù)處理數(shù)據(jù)集和預(yù)訓(xùn)練模型息罗,如 MNIST才沧、VGG温圆、Inception岁歉、SqueezeNet锅移、ResNet 等。

Keras 也是深度學(xué)習(xí)研究人員的最愛瞬女,排名第二诽偷。Keras 也被大型科學(xué)組織的研究人員采用报慕,特別是 CERN 和 NASA眠冈。

PyTorch

什么是PyTorch?

PyTorch 是最大的機器學(xué)習(xí)庫,允許開發(fā)人員在 有GPU 加速的情況下執(zhí)行張量計算雨让,創(chuàng)建動態(tài)計算圖,并自動計算梯度崔挖。除此之外狸相,PyTorch提供了豐富的API來解決與神經(jīng)網(wǎng)絡(luò)相關(guān)的應(yīng)用程序問題脓鹃。

這個機器學(xué)習(xí)庫基于Torch将谊,它是一個用C語言實現(xiàn)的開源機器庫,用Lua封裝逞频。

這個Python機器學(xué)習(xí)庫于2017年推出苗胀,自推出以來瓦堵,該庫越來越受歡迎菇用,并吸引了越來越多的機器學(xué)習(xí)開發(fā)人員杂穷。

PyTorch的特性

混合前端

新的混合前端在Eager模式下具備易用性和靈活性卦绣,同時在C++運行時環(huán)境中無縫過渡到圖形模式以實現(xiàn)速度廊蜒、優(yōu)化和功能溅漾。

分布式訓(xùn)練

通過利用本地支持異步執(zhí)行集體操作和對等通信(Python和C++)屁倔,優(yōu)化研究和生產(chǎn)的性能汰现。

Python優(yōu)先

PyTorch不是Python綁定到C++整體框架中瞎饲,它旨在與Python深度集成嗅战,因此可以與流行的庫和包(如Cython和Numba)一起使用驮捍。

庫和工具

活躍的研究人員和開發(fā)人員社區(qū)構(gòu)建了豐富的工具和庫生態(tài)系統(tǒng)东且,用于擴展 PyTorch 并支持從計算機視覺到強化學(xué)習(xí)等領(lǐng)域的開發(fā)珊泳。

PyTorch的應(yīng)用?

PyTorch 主要用于自然語言處理等應(yīng)用色查。

它主要由 Facebook 的人工智能研究小組開發(fā)秧了,Uber 用于概率編程的“Pyro”軟件是基于它構(gòu)建的验毡。

PyTorch 在多個方面都優(yōu)于 TensorFlow米罚,并且在最近受到了很多關(guān)注录择。

LightGBM

什么是LightGBM?

Gradient Boosting是最好和最受歡迎的機器學(xué)習(xí)庫之一,它通過使用重新定義的基本模型和決策樹來幫助開發(fā)人員構(gòu)建新算法动看。因此菱皆,有一些特殊的庫可用于快速有效地實現(xiàn)此方法仇轻。

這些庫是LightGBM篷店、XGBoost和CatBoost疲陕。所有這些庫都有助于解決常見問題蹄殃,并且使用方法相似邑蒋。

LightGBM的特性

計算非骋降酰快,保證了生產(chǎn)效率逮京。

直觀卿堂,因此使其用戶友好。

比許多其他深度學(xué)習(xí)庫更快的訓(xùn)練懒棉。

考慮NaN值和其他規(guī)范值時不會產(chǎn)生錯誤草描。

LightGBM的應(yīng)用?

該庫提供了梯度提升的高度可擴展、優(yōu)化和快速的實現(xiàn)策严,這使得它在機器學(xué)習(xí)開發(fā)人員中很受歡迎穗慕。因為大多數(shù)機器學(xué)習(xí)全棧開發(fā)人員都是通過使用這些算法贏得機器學(xué)習(xí)比賽的。

Eli5

什么是Eli5?

大多數(shù)情況下妻导,機器學(xué)習(xí)模型預(yù)測的結(jié)果并不準(zhǔn)確,Python內(nèi)置的Eli5機器學(xué)習(xí)庫有助于克服這一挑戰(zhàn)。它是可視化和調(diào)試所有機器學(xué)習(xí)模型并跟蹤算法的所有工作步驟的組合法焰。

Eli5的特性

Eli5還支持XGBoost、Lightning凯正、scikit-learn和sklearn-crfsuite等其他庫梧疲。

Eli5的應(yīng)用?

Eli5適合需要在短時間內(nèi)進行大量計算的數(shù)學(xué)應(yīng)用。

Eli5 在與其他Python包存在依賴關(guān)系的情況下起著至關(guān)重要的作用宇智。

在各個領(lǐng)域?qū)嵤┰袘?yīng)用程序的新方法。

SciPy

什么是SciPy?

SciPy是一個面向應(yīng)用程序開發(fā)人員和工程師的機器學(xué)習(xí)庫蜒车。但是嬉挡,您仍然需要了解SciPy庫和SciPy堆棧之間的區(qū)別因谎。SciPy庫包含用于優(yōu)化匠璧、線性代數(shù)媳维、積分和統(tǒng)計的模塊州丹。

SciPy的特性

SciPy 庫的主要特點是它是使用NumPy開發(fā)的蚁鳖,它的數(shù)組充分利用了NumPy的數(shù)組讥裤。

此外,SciPy使用其特定的子模塊提供了所有有效的數(shù)值例程,如優(yōu)化、數(shù)值積分和許多其他程序荞驴。

SciPy的所有子模塊中的所有功能都有詳細記錄。

SciPy的應(yīng)用?

SciPy是一個使用NumPy來解決數(shù)學(xué)函數(shù)的庫。SciPy使用NumPy數(shù)組作為基本數(shù)據(jù)結(jié)構(gòu)顿苇,并帶有各種用于科學(xué)編程中常用任務(wù)的模塊则果。

SciPy可以輕松執(zhí)行包括線性代數(shù)做修、積分(微積分)旋炒、常微分方程求解和信號處理在內(nèi)的任務(wù)尚粘。

Theano

什么是Theano?

Theano是Python中的計算框架機器學(xué)習(xí)庫弛随,用于計算多維數(shù)組链烈。Theano的工作原理與TensorFlow類似擦秽,但不如TensorFlow高效。因為它無法適應(yīng)生產(chǎn)環(huán)境。

此外,Theano還可以用于分布式或并行環(huán)境贱田。

Theano的特性

與NumPy的緊密集成——能夠在 Theano 編譯的函數(shù)中完全使用 NumPy 數(shù)組乔询。

GPU 的使用——執(zhí)行數(shù)據(jù)密集型計算任務(wù)的速度比在 CPU 上快得多打月。

高效的符號微分——Theano可對具有一個或多個輸入的函數(shù)進行導(dǎo)數(shù)。

速度和穩(wěn)定性優(yōu)化 - 即使x非常小蚕捉,也能得到log(1+x)的正確答案奏篙。這只是展示 Theano 穩(wěn)定性的示例之一。

動態(tài)生成C代碼?- 比以往任何時候都更快地評估表達式鱼冀,從而大大提高效率报破。

廣泛的單元測試和自我驗證——檢測和診斷模型中的多種類型的錯誤和歧義。

什么時候使用Theano?

Theano表達式的實際語法是象征性的千绪,對于習(xí)慣于正常軟件開發(fā)的初學(xué)者來說充易,這可能會令人反感。具體來說荸型,表達式是在抽象意義上定義的盹靴,編譯后實際用于進行計算。

它專門處理深度學(xué)習(xí)中大型神經(jīng)網(wǎng)絡(luò)算法的計算類型瑞妇。它是同類庫中最早的一個(開發(fā)始于2007年)稿静,并且是深度學(xué)習(xí)研究和開發(fā)的行業(yè)標(biāo)準(zhǔn)。

Theano是當(dāng)今多個神經(jīng)網(wǎng)絡(luò)項目的強項辕狰,Theano的受歡迎程度只會隨著時間的推移而增長改备。

Pandas

什么是Pandas?

Pandas是Python中的機器學(xué)習(xí)庫,它提供了高級數(shù)據(jù)結(jié)構(gòu)和多種分析工具蔓倍。該庫的一大特色是能夠使用一兩個命令將復(fù)雜的操作轉(zhuǎn)換為數(shù)據(jù)悬钳。Pandas有許多用于分組、組合數(shù)據(jù)和過濾的內(nèi)置方法偶翅,以及時間序列功能默勾。

Pandas的特性

Pandas確保操作數(shù)據(jù)的整個過程會更容易。支持重新索引聚谁、迭代母剥、排序、聚合形导、連接和可視化等操作是 Pandas 的亮點之一环疼。

Pandas的應(yīng)用?

目前朵耕,包含數(shù)百個新功能秦爆、錯誤修復(fù)、API增強的Pandas庫版本較少憔披。pandas的改進在于其對數(shù)據(jù)進行分組和排序的能力等限,為apply方法選擇最適合的輸出爸吮,并支持自定義類型的操作。

在Pandas的使用方面望门,數(shù)據(jù)分析是最重要的形娇。但是,Pandas與其他庫和工具一起使用時可確保高功能性和良好的靈活性筹误。

?? END ??

文稿 | 全棧架構(gòu)師

編輯 |全棧架構(gòu)師

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桐早,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厨剪,更是在濱河造成了極大的恐慌哄酝,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祷膳,死亡現(xiàn)場離奇詭異陶衅,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來连霉,“玉大人,你說我怎么就攤上這事罩句。” “怎么了敛摘?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵门烂,是天一觀的道長。 經(jīng)常有香客問我兄淫,道長屯远,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任拖叙,我火速辦了婚禮氓润,結(jié)果婚禮上赂乐,老公的妹妹穿的比我還像新娘薯鳍。我一直安慰自己,他們只是感情好挨措,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布挖滤。 她就那樣靜靜地躺著,像睡著了一般浅役。 火紅的嫁衣襯著肌膚如雪斩松。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天觉既,我揣著相機與錄音惧盹,去河邊找鬼乳幸。 笑死,一個胖子當(dāng)著我的面吹牛钧椰,可吹牛的內(nèi)容都是我干的粹断。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嫡霞,長吁一口氣:“原來是場噩夢啊……” “哼瓶埋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诊沪,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤养筒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后端姚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晕粪,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年寄锐,在試婚紗的時候發(fā)現(xiàn)自己被綠了兵多。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡橄仆,死狀恐怖剩膘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盆顾,我是刑警寧澤怠褐,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站您宪,受9級特大地震影響奈懒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宪巨,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一磷杏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捏卓,春花似錦极祸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒜田,卻和暖如春稿械,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冲粤。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工美莫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留页眯,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓厢呵,卻偏偏與公主長得像餐茵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子述吸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容