簡介
這是我們學習 Python 及其在機器學習 (ML) 和人工智能 (AI) 中的應用系列的第四個模塊。在前面三個模塊文章的學習,我們已經(jīng)對Python相關基礎知識有了了解。現(xiàn)在,我們可以開始學習Python中哪一些庫可以用來處理AI和ML任務。
請注意,這更像是 Python 庫的清單,其中包含您可以了解更多信息的鏈接。我們將深入研究將這些庫用于未來模塊的示例。
NLTK
NLTK(Natural Language Toolkit)提供了許多處理自然語言處理(NLP)的軟件包,NLP是與計算語言學相關的人工智能的一個分支,專注于理解和解釋書面人類語言。使用 NLTK,您可以分析句子、對單詞進行分類、執(zhí)行情感分析等等。
OpenCV
OpenCV(開放計算機視覺)是一個用于優(yōu)化實時計算機視覺和機器學習的庫。它可以使用過濾器和轉(zhuǎn)換處理圖像,檢測圖像中的特征并從中提取數(shù)據(jù);它用于光學字符識別 (OCR)、人臉檢測、對象跟蹤等應用。
Keras
Keras是 Python 中用于深度學習和神經(jīng)網(wǎng)絡的高級庫。它運行在 TensorFlow、Theano 或 CNTK 深度學習框架之上。與單獨使用 TensorFlow 或使用 PyTorch 框架相比,Keras 更受歡迎,因為它是這三者中最容易使用的快速原型設計深度學習項目。
TensorFlow
TensorFlow是一個用于開發(fā)和訓練機器學習模型的開源庫。它提供高級和低級 API。與 Keras 相比,它具有更高的性能,因此更常用于大型數(shù)據(jù)集。Keras 現(xiàn)在作為 TensorFlow 的高級 API 包含在 TensorFlow 工具包中,用于構(gòu)建和訓練深度學習模型的原型。
PyTorch
PyTorch是一個深度學習框架。它專注于張量計算(如 NumPy,但使用 GPU 加速)和深度神經(jīng)網(wǎng)絡。
scikit-learn
scikit-learn是一個提供各種“傳統(tǒng)”機器學習方法(線性模型、支持向量機、決策樹等)的庫。然而,它不包含深度學習功能,因為深度學習相當專業(yè),而機器學習庫通常專注于深度學習或傳統(tǒng)機器學習方法。這使得 scikit-learn 成為與 Keras、TensorFlow 和 PyTorch 完全不同的野獸。
NumPy 和 SciPy
NumPy和SciPy不是專門用于機器學習的庫,但它們是本概述的重要組成部分,因為它們提供了科學計算的基本工具。
NumPy 提供了強大的 N 維數(shù)組、線性代數(shù)、傅立葉變換,并且可以與 OpenCV 等其他庫順利協(xié)同工作(這并不奇怪,因為它們都建立在 NumPy 之上)。
SciPy 在 NumPy 的數(shù)組之上工作,并提供用于數(shù)值分析的函數(shù),例如插值、優(yōu)化、積分、微分方程求解器、統(tǒng)計等。
Matplotlib
Matplotlib是一個用于在 Python 中創(chuàng)建可視化的庫。您可以使用它以 2D 或 3D 格式創(chuàng)建靜態(tài)、動畫或交互式圖表和圖形。
Pandas
Pandas是一個用于數(shù)據(jù)分析和操作的庫。它可以讀/寫許多不同格式的文件,并提供許多功能來管理您的數(shù)據(jù):索引、選擇、合并、重塑等等。
選擇什么?
如您所見,您可以做出很多選擇。
如果您是企業(yè)開發(fā)人員,您可能希望選擇高級庫,例如 NLTK、OpenCV 或 Keras。這將使您盡可能快地走上正軌。
TensorFlow 或 PyTorch 的高級部分等庫可幫助您構(gòu)建神經(jīng)網(wǎng)絡,而無需擔心低級復雜性。
低級解決方案,例如 TensorFlow 的某些部分,或者用 NumPy 做所有事情,通常需要更多的工作,因此交付解決方案需要更長的時間,并且這些解決方案更難維護。
結(jié)論
以上內(nèi)容就是關于Python中人工智能(AI)和機器學習(ML)相關的一些庫,接下來的模塊,將要學習如何深入地使用它們。