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