中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

2019 年你不可不知的十大 Python 庫(kù)

2019-07-29    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

作者:Sayantini Deb 譯者:劉志勇

在本文中,我們將討論 Python 中的一些頂級(jí)庫(kù),開(kāi)發(fā)人員可以使用這些庫(kù)來(lái)解析、清理和表示數(shù)據(jù),并在現(xiàn)有應(yīng)用中實(shí)現(xiàn)機(jī)器學(xué)習(xí)。

我們將會(huì)介紹以下 10 個(gè)庫(kù):

TensorFlow
Scikit-Learn
NumPy
Keras
PyTorch
LightGBM
Eli5
SciPy
Theano
Pandas

Python 是目前最流行,使用最廣泛的編程語(yǔ)言之一,已經(jīng)取代了業(yè)界許多編程語(yǔ)言。Python 在開(kāi)發(fā)人員中受歡迎的原因有很多,其中最重要的一個(gè)原因就是 Python 有大量可供用戶(hù)使用的庫(kù)。Python 的簡(jiǎn)單性吸引了許多開(kāi)發(fā)人員為機(jī)器學(xué)習(xí)創(chuàng)建新的庫(kù)。由于有大量的庫(kù),Python 在機(jī)器學(xué)習(xí)專(zhuān)家中非常流行。

因此,我即將介紹的第一個(gè)庫(kù)是 TensorFlow。

TensorFlow

 

 

TensorFlow 是什么?

如果你目前正在使用 Python 進(jìn)行機(jī)器學(xué)習(xí)項(xiàng)目,那么你可能已經(jīng)聽(tīng)說(shuō)過(guò)這個(gè)流行的開(kāi)源庫(kù),即 TensorFlow。該庫(kù)是 Google 與 Brain Team 合作開(kāi)發(fā)的。Google 的每一個(gè)機(jī)器學(xué)習(xí)應(yīng)用幾乎都有 TensorFlow 的影子。

TensorFlow 的工作方式類(lèi)似于一個(gè)計(jì)算庫(kù),用于編寫(xiě)設(shè)計(jì)大量張量運(yùn)算的新算法。由于神經(jīng)網(wǎng)絡(luò)可以很容易地表示為計(jì)算圖,因此它們可以用 TensorFlow 作為對(duì)張量(Tensor)的一些列操作來(lái)實(shí)現(xiàn)。此外,張量是表述數(shù)據(jù)的 N 維矩陣。

TensorFlow 的特點(diǎn)

TensorFlow 針對(duì)速度進(jìn)行了優(yōu)化,并利用 XLA 等技術(shù)實(shí)現(xiàn)快速線性代數(shù)運(yùn)算。

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

使用 TensorFlow,我們可以輕松地將計(jì)算圖的每一部分進(jìn)行可視化,在使用 NumPy 或 SciKit 時(shí)并沒(méi)有這個(gè)選項(xiàng)。

2. 靈活性

TensorFlow 的一個(gè)非常重要的特性是,它的操作非常靈活。這意味著它實(shí)現(xiàn)了模塊化,對(duì)于你想要使其獨(dú)立的部分,它可以提供這一選項(xiàng)。

3. 易于訓(xùn)練

對(duì)于分布式計(jì)算,它可以很容易地在 CPU 上進(jìn)行訓(xùn)練,也可以在 GPU 上進(jìn)行訓(xùn)練。

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

TensorFlow 提供了管道。從某種意義上說(shuō),你可以訓(xùn)練多個(gè)神經(jīng)網(wǎng)絡(luò)和多個(gè) GPU,這使得模型在大型系統(tǒng)上非常高效。

5. 大型社區(qū)

毋庸諱言,因?yàn)?TensorFlow 是由 Google 開(kāi)發(fā)的,所以有一大群軟件工程師在不斷改進(jìn) TensorFlow 的穩(wěn)定性。

6. 開(kāi)源

這個(gè)機(jī)器學(xué)習(xí)庫(kù)最好的地方在于它是開(kāi)源的,所以只要有互聯(lián)網(wǎng),任何人都可以使用它。

TensorFlow 在哪里使用?

實(shí)際上你每天都在使用 TensorFlow,但像 Google 語(yǔ)音搜索或 Google 相冊(cè)這樣的應(yīng)用卻是間接的。這些應(yīng)用是使用這個(gè)庫(kù)進(jìn)行開(kāi)發(fā)的。

在 TensorFlow 中創(chuàng)建的所有庫(kù)都是用 C 和 C++ 編寫(xiě)的。不過(guò),它還有一個(gè)復(fù)雜的 Python 前端。你的 Python 代碼將會(huì)被編譯,然后在使用 C 和 C++ 構(gòu)建的 TensorFlow 分布式執(zhí)行引擎上執(zhí)行。

TensorFlow 的應(yīng)用數(shù)量實(shí)際上是無(wú)限的,這就是 TensorFlow 的美妙之處。

Scikit-Learn

 

 

Scikit-Learn 是什么?

Scikit-Learn 是一個(gè)與 NumPy 和 SciPy 相關(guān)的 Python 庫(kù)。它被認(rèn)為是處理復(fù)雜數(shù)據(jù)的最佳庫(kù)之一。這個(gè)庫(kù)正在進(jìn)行大量更改。其中一個(gè)更改是交叉驗(yàn)證功能,提供了使用多個(gè)度量的能力。許多訓(xùn)練方法,如邏輯回歸和最近鄰方法,都得到了一些改進(jìn)。

Scikit-Learn 的特點(diǎn)

1. 交叉驗(yàn)證: 有多種方法可以檢驗(yàn)監(jiān)督模型對(duì)不可見(jiàn)數(shù)據(jù)的準(zhǔn)確性

2. 無(wú)監(jiān)督學(xué)習(xí)算法: Scikit-Learn 提供了大量的算法,從聚類(lèi)、因子分析和主成分分析到無(wú)監(jiān)督神經(jīng)網(wǎng)絡(luò)。

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

Scikit-Learn 在哪里使用?

它包含許多用于實(shí)現(xiàn)標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘任務(wù)的算法,如降維、分類(lèi)、回歸、聚類(lèi)和模型選擇。

NumPy

 

 

NumPy 是什么?

NumPy 被認(rèn)為是 Python 中最受歡迎的機(jī)器學(xué)習(xí)庫(kù)之一。

TensorFlow 和其他庫(kù)在內(nèi)部使用 NumPy 在張量上執(zhí)行多個(gè)操作。陣列接口是 NumPy 最好也是最重要的特性。

NumPy 的特點(diǎn)

1. 交互性: NumPy 交互性強(qiáng),易于使用。

2. 數(shù)學(xué): 使復(fù)雜的數(shù)學(xué)實(shí)現(xiàn)變得非常簡(jiǎn)單

3. 直觀性: 使編碼和概念的掌握變得非常容易

4. 大量的交互: 得益于廣泛的使用,因此有大量的開(kāi)源貢獻(xiàn)。

NumPy 在哪里使用?

NumPy 的接口可用于將圖像、聲波和其他二進(jìn)制原始流表達(dá)為 N 維實(shí)數(shù)陣列。為實(shí)現(xiàn)這個(gè)用于機(jī)器學(xué)習(xí)的庫(kù),了解 NumPy 對(duì)于全棧開(kāi)發(fā)人員來(lái)說(shuō)很重要。

Keras

 

 

Keras 是什么?

Keras 被認(rèn)為是 Python 中最酷的機(jī)器學(xué)習(xí)庫(kù)之一。它提供了一種更簡(jiǎn)單的機(jī)制來(lái)表達(dá)神經(jīng)網(wǎng)絡(luò)。Keras 還為編譯模型、處理數(shù)據(jù)集、圖形可視化等提供了一些最佳實(shí)用程序。

在后端,Keras 在內(nèi)部使用 Theano 或 TensorFlow,也可以使用一些最流行的神經(jīng)網(wǎng)絡(luò),如 CNTK。與其他機(jī)器學(xué)習(xí)庫(kù)比較,Keras 的速度相對(duì)較慢。因?yàn)樗峭ㄟ^(guò)使用后端架構(gòu)創(chuàng)建計(jì)算圖,然后利用它來(lái)執(zhí)行操作的。不過(guò),Keras 的所有模型都是可移植的。

Keras 的特點(diǎn)

Keras 在 CPU 和 GPU 上都能順利運(yùn)行。

Keras 支持幾乎所有的神經(jīng)網(wǎng)絡(luò)模型,包括完全連接的、卷積的、池化的、遞歸的、嵌入的等等。此外,這些模型還可以組合起來(lái)構(gòu)建更為復(fù)雜的模型。

Keras 在本質(zhì)上是模塊化的,具有難以置信的表現(xiàn)力、靈活性,并易于創(chuàng)新研究。

Keras 是一個(gè)完全基于 Python 的框架,可以方便地進(jìn)行調(diào)試和探索。

Keras 在哪里使用?

你已經(jīng)在不斷地與 Keras 開(kāi)發(fā)的功能進(jìn)行交互:它在 Netflix、Uber、Yelp、Instacart、Zocdoc、Square 等其他許多公司都有應(yīng)用。Keras 在那些將深度學(xué)習(xí)作為產(chǎn)品核心的初創(chuàng)公司中特別受歡迎,同時(shí)也是深度學(xué)習(xí)研究人員的最?lèi)?ài)。大型科學(xué)組織,特別是 CERN(歐洲核子研究中心)和 NASA(美國(guó)國(guó)家航空航天局)的研究人員也采用了 Keras。

Keras 包含許多常用的神經(jīng)網(wǎng)絡(luò)構(gòu)建塊的實(shí)現(xiàn),例如層、目標(biāo)、激活函數(shù)、優(yōu)化器和一系列工具,使圖像和文本數(shù)據(jù)的處理變得更加容易。

此外,Keras 還提供了許多預(yù)處理的數(shù)據(jù)集和預(yù)訓(xùn)練模型,如 MNIST、VGG、Inception、SqueezeNet、ResNet 等等。

PyTorch

 

 

PyTorch 是什么?

PyTorch 是最大的機(jī)器學(xué)習(xí)庫(kù),它允許開(kāi)發(fā)人員利用 GPU 的加速執(zhí)行張量計(jì)算,創(chuàng)建動(dòng)態(tài)計(jì)算圖,并自動(dòng)計(jì)算梯度。除此之外,PyTorch 還提供了豐富的 API,用于解決與神經(jīng)網(wǎng)絡(luò)相關(guān)的應(yīng)用問(wèn)題。

這個(gè)機(jī)器學(xué)習(xí)庫(kù)是基于 Torch 的,Torch 是一個(gè)用 C 語(yǔ)言實(shí)現(xiàn)的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),在 Lua 中有個(gè)包裝器。這個(gè)用 Python 編寫(xiě)的機(jī)器學(xué)習(xí)庫(kù)是 2017 年推出的,自推出以來(lái),吸引了越來(lái)越多的機(jī)器學(xué)習(xí)開(kāi)發(fā)人員。

PyTorch 的特點(diǎn)

1. 混合前端

新的混合前端在 Eager 模式(動(dòng)態(tài)圖模式)下提供了易用性和靈活性,同時(shí)在 C++ 運(yùn)行時(shí)環(huán)境中無(wú)縫過(guò)渡到圖形模式,以實(shí)現(xiàn)速度、優(yōu)化和功能。

2. 分布式訓(xùn)練

通過(guò)利用 Python 和 C++ 提供的異步執(zhí)行集合操作和對(duì)等通信的本地支持,優(yōu)化研究和生產(chǎn)中的性能。

3.Python 優(yōu)先

PyTorch 并非綁定到單一 C++ 框架中的 Python。它是為了深入集成到 Python 中而構(gòu)建的,因此它可以與流行的庫(kù)和包(如 Cython 和 Numba 等)一起使用。

4. 庫(kù)和工具

一個(gè)由研究人員和開(kāi)發(fā)人員組成的活躍社區(qū),建立了一個(gè)豐富的工具和庫(kù)生態(tài)系統(tǒng),用于擴(kuò)展 PyTorch ,并支持從計(jì)算機(jī)視覺(jué)到強(qiáng)化學(xué)習(xí)等領(lǐng)域的開(kāi)發(fā)。

PyTorch 在哪里使用?

PyTorch 主要用于自然語(yǔ)言處理等應(yīng)用。PyTorch 主要是由 Facebook 的人工智能研究小組開(kāi)發(fā)的。Uber 的概率編程“Pyro”軟件就是建立在這個(gè)基礎(chǔ)上的。PyTorch 在很多方面都超過(guò)了 TensorFlow,最近得到了很多關(guān)注。

LightGBM

 

 

LightGBM 是什么

梯度提升(Gradient Boosting)是最好的、最流行的機(jī)器學(xué)習(xí)庫(kù)之一,它通過(guò)使用重新定義的基本模型和決策樹(shù)來(lái)幫助開(kāi)發(fā)人員構(gòu)建新的算法。因此,有一些專(zhuān)門(mén)的庫(kù)是為快速有效地實(shí)現(xiàn)這種方法而設(shè)計(jì)的。

這些庫(kù)分別是 LightGBM、XGBoost 和 CatBoost。所有這些庫(kù)都是幫助解決常見(jiàn)問(wèn)題的競(jìng)爭(zhēng)對(duì)手,可以以幾乎相似的方式加以利用。

LightGBM 的特點(diǎn)

1. 計(jì)算速度快,生產(chǎn)效率高。

2. 直觀,易于使用。

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

4. 在考慮 NaN 值和其他規(guī)范值時(shí)不會(huì)產(chǎn)生錯(cuò)誤。

LightGBM 在哪里使用?

這個(gè)庫(kù)提供了高度可擴(kuò)展、優(yōu)化和快速的梯度提升實(shí)現(xiàn),這使得它在機(jī)器學(xué)習(xí)開(kāi)發(fā)人員中備受歡迎。因?yàn)榇蠖鄶?shù)機(jī)器學(xué)習(xí)全棧開(kāi)發(fā)人員是通過(guò)使用這些算法在機(jī)器學(xué)習(xí)競(jìng)賽中獲勝的。

Eli5

 

 

Eli5 是什么?

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

Eli5 的特點(diǎn)

此外,Eli5 還支持其他庫(kù) XGBoost、lighting、scikit-learn 和 sklearn-crfsuite 庫(kù)。上面提到的所有庫(kù)都可以用于執(zhí)行不同的任務(wù)。

Eli5 在哪里使用?

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

在與其他 Python 包存在依賴(lài)關(guān)系的情況下,Eli5 扮演著至關(guān)重要的角色。

遺留應(yīng)用和在各個(gè)領(lǐng)域?qū)嵤┹^新的方法

SciPy

 

 

SciPy 是什么?

SciPy 是一個(gè)面向應(yīng)用程序開(kāi)發(fā)人員和工程師的機(jī)器學(xué)習(xí)庫(kù)。你需要了解 SciPy 庫(kù)和 SciPy 棧之間的區(qū)別。SciPy 庫(kù)包含用于優(yōu)化、線性代數(shù)、積分和統(tǒng)計(jì)的模塊。

SciPy 的特點(diǎn)

SciPy 庫(kù)的主要特點(diǎn)是使用 NumPy 開(kāi)發(fā),其數(shù)組最大限度地利用了 NumPy。

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

所有 SciPy 子模塊中的所有函數(shù)都有良好的文檔說(shuō)明。

SciPy 在哪里使用?

SciPy 是一個(gè)使用 NumPy 求解數(shù)學(xué)函數(shù)的庫(kù)。SciPy 使用 NumPy 數(shù)組作為基本數(shù)據(jù)結(jié)構(gòu),并附帶用于科學(xué)編程中各種常用任務(wù)的模塊,包括線性代數(shù)、積分(微積分)、常微分方程求解和信號(hào)處理等任務(wù),都可以通過(guò) SciPy 輕松處理。

Theano

 

 

Theano 是什么?

Theano 是 Python 中用于計(jì)算多維數(shù)組的計(jì)算框架機(jī)器學(xué)習(xí)庫(kù)。Theano 的工作方式與 TensorFlow 類(lèi)似,但效率不如 TensorFlow。因?yàn)樗荒苓m應(yīng)生產(chǎn)環(huán)境。

此外,還可以在與 TensorFlow 類(lèi)似的分布式或并行環(huán)境中使用 Theano。

Theano 的特點(diǎn)

1. 與 NumPy 緊密集成: 能夠在 Theano 編譯的函數(shù)中完全使用 NumPy 數(shù)組

2.GPU 的透明使用: 執(zhí)行數(shù)據(jù)密集型計(jì)算要比 CPU 上快得多

3. 高效的符號(hào)微分: Theano 為具有一個(gè)或多個(gè)輸入的函數(shù)求導(dǎo)

4. 速度和穩(wěn)定性的優(yōu)化: 即使 x 非常小,也能獲得 log(1+x) 的正確答案。這只是證明 Theano 穩(wěn)定性的一個(gè)例子。

5. 動(dòng)態(tài) C 代碼生成: 計(jì)算表達(dá)式的速度比以往都快,從而極大提高效率。

6. 廣泛的單元測(cè)試和自我驗(yàn)證: 檢測(cè)和診斷模型中的多種類(lèi)型的錯(cuò)誤和歧義

Theano 在哪里使用?

Theano 表達(dá)式的實(shí)際語(yǔ)法是符號(hào)化的,這可能會(huì)讓習(xí)慣正常軟件開(kāi)發(fā)的初學(xué)者感到不適。具體來(lái)說(shuō),表達(dá)式是以抽象的方式進(jìn)行定義、編譯的,然后實(shí)際用于計(jì)算。

Theano 是專(zhuān)門(mén)為用于深度學(xué)習(xí)的大型神經(jīng)網(wǎng)絡(luò)算法的計(jì)算類(lèi)型而設(shè)計(jì)的。它是最早的類(lèi)庫(kù)之一(2007 年開(kāi)始開(kāi)發(fā)),被認(rèn)為是深度學(xué)習(xí)研究和開(kāi)發(fā)的行業(yè)標(biāo)準(zhǔn)。Theano 目前被用于多個(gè)神經(jīng)網(wǎng)絡(luò)項(xiàng)目,隨著時(shí)間的推移,Theano 的普及率也在不斷提高。

Pandas

 

 

Pandas 是什么?

Pandas 是 Python 中的一個(gè)機(jī)器學(xué)習(xí)庫(kù),它提供高級(jí)的數(shù)據(jù)結(jié)構(gòu)和各種各樣的分析工具。這個(gè)庫(kù)最大的特性之一是能夠使用一個(gè)或兩個(gè)命令轉(zhuǎn)換復(fù)雜的數(shù)據(jù)操作。Pandas 有很多內(nèi)置的分組、組合數(shù)據(jù)、過(guò)濾以及時(shí)間序列功能的方法。所有這些方法都有出色的速度指示器。

Pandas 的特點(diǎn)

Pandas 使操作數(shù)據(jù)的過(guò)程變得更容易。對(duì)重新索引、迭代、排序、聚合、連接和可視化等操作的支持是 Pandas 的亮點(diǎn)之一。

Pandas 在哪里使用?

目前,Pandas 庫(kù)的發(fā)行版本較少,其中包括數(shù)百個(gè)新功能、bug 修復(fù)、增強(qiáng)和 API 中的更改。Pandas 的改進(jìn)在于它能夠?qū)?shù)據(jù)進(jìn)行分組和排序,為應(yīng)用方法選擇最適合的輸出,并為執(zhí)行自定義類(lèi)型操作提供支持。

在其他事項(xiàng)中,當(dāng)涉及到使用 Pandas 時(shí),數(shù)據(jù)分析是一大亮點(diǎn)。但是,當(dāng)與其他庫(kù)和工具一起使用時(shí),Pandas 確保了高度的功能性和良好的靈活性。

作者介紹:

Sayantini Deb,研究分析師,供職于 Edureka。

原文鏈接:

Top 10 Python Libraries You Must Know in 2019

標(biāo)簽: Python 機(jī)器學(xué)習(xí)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:十個(gè)技巧,讓你成為數(shù)據(jù)分析中的“降維”專(zhuān)家

下一篇:大型數(shù)據(jù)庫(kù)支持面部識(shí)別抓取,隱私何處安放?