2021機器學習Top 10類庫

當下是人工智慧爆發的時代,AI和機器學習廣泛流行,當然機器學習領域最火要數Python語言。Python 由於其簡便,對使用者友好且易於管理的語言,擁有廣泛的社群支援,在機器學習領域更是如此,很多框架都是用Python編寫或者提供了Python SDK。為了便於大家學習和使用,我們列舉一下2021年最流行的Python機器學習類庫。

TensorFlow

網站: tensorflow。org

原始碼倉庫:Github/tensorflow/tensorflow

開發者:谷歌大腦團隊

主要用途:深度神經網路

TensorFlow 是由谷歌大腦(Google Brain)團隊開發的一個AI框架,主要用於深度學習和神經網路。使用TF可以很輕鬆將計算任務分配到多個CPU或GPU核心,甚至可分配到多GPU。TensorFlow基本計算單元為張量(Tensors)。張量可以定義為一個容器,可儲存N維資料及其線性操作。

pandas

2021機器學習Top 10類庫

網站: pandas。pydata。org

原始碼倉庫: github/pandas-dev/pandas

開發者:開源社群

主要用途:資料分析和操作

Pandas庫,主要用於數值資料和時間序列的資料操作。它使用資料框和系列分別定義三維和二維資料。Pandas提供了索引大資料以便在大資料集中快速搜尋的選項。它以資料重塑、圍繞使用者定義的軸旋轉、處理缺失資料、合併和連線資料集以及資料過濾選項的功能而聞名。

Pandas對於大型資料集非常有用且速度非常快。當記錄超過50k時,其效能超Numpy。在資料清理方面,它是最好的庫,因為它提供了像exce一樣的互動性和像Numpy一樣的速度。它也是為數不多的可以處理DateTime的ML庫之一,無需任何外部庫的任何幫助,而且程式碼最少。

Numpy

2021機器學習Top 10類庫

網站:numpy。org

原始碼倉庫:github/numpy/numpy

開發者:開源社群

主要用途:通用矩陣處理

Numpy用於處理多維資料和複雜的數學函式。Numpy是Python語言的快速計算庫,可以處理從基本代數到傅立葉變換、隨機模擬和拓撲操作的任務和函式。這個庫核心是用C語言編寫的,比一般Python計算庫效能更好。如果記錄數不是很大,在Numpy陣列在索引方面要明顯優於Pandas系列。另外,目前NumPy陣列只支援單CPU中,所以效能會有限制。

Numpy的學習成本較低(可以參考蟲蟲之前的文章),易於上手,並是最流行的機器學習庫之一。

自然語言工具包(NLTK)

2021機器學習Top 10類庫

網站: nltk。org

原始碼倉庫: github/nltk/nltk

開發者:NLTK團隊

主要用途:自然語言處理

是廣泛使用的文字分類和自然語言處理庫。可以用於詞幹提取、詞形還原、標記和在文件中搜索關鍵字。NLTK可用於高階語言分析,比如情感、評論分析、文字分類器、檢查評論中的關鍵詞、文字挖掘和許多其他與人類語言相關的操作。NLTK需要文字處理來訓練的模型來識別和建立。

Scikit-Learn

2021機器學習Top 10類庫

網站:scikit-learn。org

原始碼倉庫: github/scikit-learn/scikit-learn

開發者:SkLearn。org

主要用途:預測資料分析和資料建模

Scikit-learn主要用於各種資料建模概念,如迴歸、分類、聚類、模型選擇等。 該庫是在Numpy、Scipy和matplotlib之上編寫的。Scikit-learn易於整合,可以繼承其他機器學習庫實現特定目標。比如Numpy和Pandas用於資料分析,Plotly用於視覺化。

Keras

網站: keras。io

原始碼倉庫:github/keras-team/keras

開發者:各種開發者

主要用途:神經網路計算

Keras提供了一個Python介面的 Tensorflow庫,特別專注於AI神經網路。早期版本還包括許多其他後端,如Theano、Microsoft認知平臺和PlaidMl。Keras 包含常用神經網路的標準塊,以及使影象和文字處理更快更流暢的工具。除了標準的神經網路塊外,它還提供重複出現的神經網路。

PyTorch

網站:pytorch。org

原始碼倉庫:github/pytorch/pytorch

開發者:臉譜AI實驗室(FAIR)

主要用途:深度學習、自然語言處理和計算機視覺

2021機器學習Top 10類庫

Pytorch 是由臉書開發的ML庫,基於Lua語言實現的Torch機器學習庫。該專案是用Python、C++ 和CUDA語言混合編寫的。PyTorch 支援在C和C++ 以及Pyton等常見語言的擴充套件。作TF競爭對手,他也使用張量,但它更容易學習並且與Python具有更好整合性。雖然它支援NLP,但該庫的主要重點是開發和訓練深度學習模型。

mlpack

2021機器學習Top 10類庫

原始碼倉庫:github/mlpack/mlpack

開發者:社群,佐治亞理工學院支援

主要用途:多個ML模型和演算法

MlPack 主要是基於C++的機器學習庫,支援它Python,R,Julia和 Golang等語言。它旨在支援幾乎所有著名的機器學習演算法和模型,如 GMM、K均值、最小角度迴歸、線性迴歸等。開發該庫的主要重點是使其成為快速、可擴充套件且易於理解的以及易於使用的庫,即使是程式設計小白也可以毫無問題地理解和使用它。

OpenCV:

網站:opencv。org

原始碼倉庫:github/opencv/opencv

開發者:由英特爾公司發起

主要用途:計算機視覺

2021機器學習Top 10類庫

OpenCV 是一個致力於計算機視覺和影象處理的開源平臺。 該庫擁有2500多種專用於計算機視覺和機器學習的演算法。它可以跟蹤人體運動、檢測移動物體、提取3D模型、將影象拼接在一起以建立高解析度影象,探索AR的可能性。OpenCV被廣泛用於各種閉路電視監控,各大相機廠商也都在使用OpenCV使其產品更智慧和使用者友好。

Matplotlib

網站:matplotlib。org/

原始碼倉庫:github/matplotlib/matplotlib

開發者:Micheal Droettboom,社群

主要目的:資料視覺化

Matplotlib是Pthon中使用最廣泛的圖形的庫。它使用Python GUI工具包來生成圖形和繪圖。Matplotlib還提供了一個類似MATLAB的介面,以便使用者可以執行與MATLAB 類似的任務。這個庫是免費和開源的,並且有許多擴充套件介面,可以將matplotlib API擴充套件到各種其他庫。

總結

在本文中,我們介紹了機器學習中最常用的Python庫。每個庫(框架)都有自己的優點和缺點,可以嘗試使用,並在實踐中選擇最適合的庫。