2021年機(jī)器學(xué)習(xí)Top 10類(lèi)庫(kù)
當(dāng)下是人工智能爆發(fā)的時(shí)代,AI和機(jī)器學(xué)習(xí)廣泛流行,當(dāng)然機(jī)器學(xué)習(xí)領(lǐng)域最火要數(shù)Python語(yǔ)言。Python 由于其簡(jiǎn)便,對(duì)用戶(hù)友好且易于管理的語(yǔ)言,擁有廣泛的社區(qū)支持,在機(jī)器學(xué)習(xí)領(lǐng)域更是如此,很多框架都是用Python編寫(xiě)或者提供了Python SDK。為了便于大家學(xué)習(xí)和使用,我們列舉一下2021年最流行的Python機(jī)器學(xué)習(xí)類(lèi)庫(kù)。
TensorFlow
- 網(wǎng)站:tensorflow.org
 - 源碼倉(cāng)庫(kù):Github/tensorflow/tensorflow
 - 開(kāi)發(fā)者:谷歌大腦團(tuán)隊(duì)
 - 主要用途:深度神經(jīng)網(wǎng)絡(luò)
 
TensorFlow 是由谷歌大腦(Google Brain)團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)AI框架,主要用于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)。使用TF可以很輕松將計(jì)算任務(wù)分配到多個(gè)CPU或GPU核心,甚至可分配到多GPU。TensorFlow基本計(jì)算單元為張量(Tensors)。張量可以定義為一個(gè)容器,可存儲(chǔ)N維數(shù)據(jù)及其線(xiàn)性操作。
pandas
- 網(wǎng)站: pandas.pydata.org
 - 源碼倉(cāng)庫(kù): github/pandas-dev/pandas
 - 開(kāi)發(fā)者:開(kāi)源社區(qū)
 - 主要用途:數(shù)據(jù)分析和操作
 
Pandas庫(kù),主要用于數(shù)值數(shù)據(jù)和時(shí)間序列的數(shù)據(jù)操作。它使用數(shù)據(jù)框和系列分別定義三維和二維數(shù)據(jù)。Pandas提供了索引大數(shù)據(jù)以便在大數(shù)據(jù)集中快速搜索的選項(xiàng)。它以數(shù)據(jù)重塑、圍繞用戶(hù)定義的軸旋轉(zhuǎn)、處理缺失數(shù)據(jù)、合并和連接數(shù)據(jù)集以及數(shù)據(jù)過(guò)濾選項(xiàng)的功能而聞名。
Pandas對(duì)于大型數(shù)據(jù)集非常有用且速度非???。當(dāng)記錄超過(guò)50k時(shí),其性能超Numpy。在數(shù)據(jù)清理方面,它是最好的庫(kù),因?yàn)樗峁┝讼馿xce一樣的交互性和像Numpy一樣的速度。它也是為數(shù)不多的可以處理DateTime的ML庫(kù)之一,無(wú)需任何外部庫(kù)的任何幫助,而且代碼最少。
Numpy
- 網(wǎng)站:numpy.org
 - 源碼倉(cāng)庫(kù):github/numpy/numpy
 - 開(kāi)發(fā)者:開(kāi)源社區(qū)
 - 主要用途:通用矩陣處理
 
Numpy用于處理多維數(shù)據(jù)和復(fù)雜的數(shù)學(xué)函數(shù)。Numpy是Python語(yǔ)言的快速計(jì)算庫(kù),可以處理從基本代數(shù)到傅立葉變換、隨機(jī)模擬和拓?fù)洳僮鞯娜蝿?wù)和函數(shù)。這個(gè)庫(kù)內(nèi)核是用C語(yǔ)言編寫(xiě)的,比一般Python計(jì)算庫(kù)性能更好。如果記錄數(shù)不是很大,在Numpy數(shù)組在索引方面要明顯優(yōu)于Pandas系列。另外,目前NumPy數(shù)組只支持單CPU中,所以性能會(huì)有限制。
Numpy的學(xué)習(xí)成本較低(可以參考蟲(chóng)蟲(chóng)之前的文章),易于上手,并是最流行的機(jī)器學(xué)習(xí)庫(kù)之一。
自然語(yǔ)言工具包(NLTK)
- 網(wǎng)站: nltk.org
 - 源碼倉(cāng)庫(kù): github/nltk/nltk
 - 開(kāi)發(fā)者:NLTK團(tuán)隊(duì)
 - 主要用途:自然語(yǔ)言處理
 
是廣泛使用的文本分類(lèi)和自然語(yǔ)言處理庫(kù)。可以用于詞干提取、詞形還原、標(biāo)記和在文檔中搜索關(guān)鍵字。NLTK可用于高級(jí)語(yǔ)言分析,比如情感、評(píng)論分析、文本分類(lèi)器、檢查評(píng)論中的關(guān)鍵詞、文本挖掘和許多其他與人類(lèi)語(yǔ)言相關(guān)的操作。NLTK需要文本處理來(lái)訓(xùn)練的模型來(lái)識(shí)別和創(chuàng)建。
Scikit-Learn
- 網(wǎng)站:scikit-learn.org
 - 源碼倉(cāng)庫(kù): github/scikit-learn/scikit-learn
 - 開(kāi)發(fā)者:SkLearn.org
 - 主要用途:預(yù)測(cè)數(shù)據(jù)分析和數(shù)據(jù)建模
 
Scikit-learn主要用于各種數(shù)據(jù)建模概念,如回歸、分類(lèi)、聚類(lèi)、模型選擇等。 該庫(kù)是在Numpy、Scipy和matplotlib之上編寫(xiě)的。Scikit-learn易于集成,可以繼承其他機(jī)器學(xué)習(xí)庫(kù)實(shí)現(xiàn)特定目標(biāo)。比如Numpy和Pandas用于數(shù)據(jù)分析,Plotly用于可視化。
Keras
- 網(wǎng)站: keras.io
 - 源碼倉(cāng)庫(kù):github/keras-team/keras
 - 開(kāi)發(fā)者:各種開(kāi)發(fā)者
 - 主要用途:神經(jīng)網(wǎng)絡(luò)計(jì)算
 
Keras提供了一個(gè)Python接口的 Tensorflow庫(kù),特別專(zhuān)注于A(yíng)I神經(jīng)網(wǎng)絡(luò)。早期版本還包括許多其他后端,如Theano、Microsoft認(rèn)知平臺(tái)和PlaidMl。Keras 包含常用神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)塊,以及使圖像和文本處理更快更流暢的工具。除了標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)塊外,它還提供重復(fù)出現(xiàn)的神經(jīng)網(wǎng)絡(luò)。
PyTorch
- 網(wǎng)站:pytorch.org
 - 源碼倉(cāng)庫(kù):github/pytorch/pytorch
 - 開(kāi)發(fā)者:臉譜AI實(shí)驗(yàn)室(FAIR)
 - 主要用途:深度學(xué)習(xí)、自然語(yǔ)言處理和計(jì)算機(jī)視覺(jué)
 
Pytorch 是由臉書(shū)開(kāi)發(fā)的ML庫(kù),基于Lua語(yǔ)言實(shí)現(xiàn)的Torch機(jī)器學(xué)習(xí)庫(kù)。該項(xiàng)目是用Python、C++ 和CUDA語(yǔ)言混合編寫(xiě)的。PyTorch 支持在C和C++ 以及Pyton等常見(jiàn)語(yǔ)言的擴(kuò)展。作TF競(jìng)爭(zhēng)對(duì)手,他也使用張量,但它更容易學(xué)習(xí)并且與Python具有更好集成性。雖然它支持NLP,但該庫(kù)的主要重點(diǎn)是開(kāi)發(fā)和訓(xùn)練深度學(xué)習(xí)模型。
mlpack
- 源碼倉(cāng)庫(kù):github/mlpack/mlpack
 - 開(kāi)發(fā)者:社區(qū),佐治亞理工學(xué)院支持
 - 主要用途:多個(gè)ML模型和算法
 
MlPack 主要是基于C++的機(jī)器學(xué)習(xí)庫(kù),支持它Python,R,Julia和 Golang等語(yǔ)言。它旨在支持幾乎所有著名的機(jī)器學(xué)習(xí)算法和模型,如 GMM、K均值、最小角度回歸、線(xiàn)性回歸等。開(kāi)發(fā)該庫(kù)的主要重點(diǎn)是使其成為快速、可擴(kuò)展且易于理解的以及易于使用的庫(kù),即使是編程小白也可以毫無(wú)問(wèn)題地理解和使用它。
OpenCV
- 網(wǎng)站:opencv.org
 - 源碼倉(cāng)庫(kù):github/opencv/opencv
 - 開(kāi)發(fā)者:由英特爾公司發(fā)起
 - 主要用途:計(jì)算機(jī)視覺(jué)
 
OpenCV 是一個(gè)致力于計(jì)算機(jī)視覺(jué)和圖像處理的開(kāi)源平臺(tái)。 該庫(kù)擁有2500多種專(zhuān)用于計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)的算法。它可以跟蹤人體運(yùn)動(dòng)、檢測(cè)移動(dòng)物體、提取3D模型、將圖像拼接在一起以創(chuàng)建高分辨率圖像,探索AR的可能性。OpenCV被廣泛用于各種閉路電視監(jiān)控,各大相機(jī)廠(chǎng)商也都在使用OpenCV使其產(chǎn)品更智能和用戶(hù)友好。
Matplotlib
- 網(wǎng)站:matplotlib.org/
 - 源碼倉(cāng)庫(kù):github/matplotlib/matplotlib
 - 開(kāi)發(fā)者:Micheal Droettboom,社區(qū)
 - 主要目的:數(shù)據(jù)可視化
 
Matplotlib是Pthon中使用最廣泛的圖形的庫(kù)。它使用Python GUI工具包來(lái)生成圖形和繪圖。Matplotlib還提供了一個(gè)類(lèi)似MATLAB的界面,以便用戶(hù)可以執(zhí)行與MATLAB 類(lèi)似的任務(wù)。這個(gè)庫(kù)是免費(fèi)和開(kāi)源的,并且有許多擴(kuò)展接口,可以將matplotlib API擴(kuò)展到各種其他庫(kù)。
總結(jié)
在本文中,我們介紹了機(jī)器學(xué)習(xí)中最常用的Python庫(kù)。每個(gè)庫(kù)(框架)都有自己的優(yōu)點(diǎn)和缺點(diǎn),可以嘗試使用,并在實(shí)踐中選擇最適合的庫(kù)。















 
 
 







 
 
 
 