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)師