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