作為一個(gè)適用于 Python 編程語(yǔ)言的機(jī)器學(xué)習(xí) (ML) 庫(kù),Scikit-learn 擁有大量算法,可供程序員和數(shù)據(jù)科學(xué)家在機(jī)器學(xué)習(xí)模型中輕松部署。
什么是 Scikit-learn?
Scikit-learn 是一個(gè)熱門(mén)且可靠的機(jī)器學(xué)習(xí)庫(kù),擁有各種算法,同時(shí)也是用于 ML 可視化、預(yù)處理、模型擬合、選擇和評(píng)估的工具。
Scikit-learn 基于 NumPy、SciPy 和 matplotlib 構(gòu)建,并具有大量用于分類(lèi)、回歸和集群的高效算法。其中包括支持向量機(jī)、隨機(jī)森林、梯度提升、k-means 和 DBSCAN。
Scikit-learn 擁有一致且設(shè)計(jì)高效的 API、適用于大多數(shù)算法的豐富文檔以及大量在線教程,因此相對(duì)易于開(kāi)發(fā)。
當(dāng)前版本可用于 Linux、MacOS 和 Windows 等熱門(mén)平臺(tái)。
為何選擇 Scikit-learn?
得益于其相對(duì)易于使用、且設(shè)計(jì)周到又充滿熱情的社區(qū),Scikit-learn API 已成為機(jī)器學(xué)習(xí)實(shí)施的實(shí)際標(biāo)準(zhǔn)。
Scikit-learn 為 ML 模型構(gòu)建、擬合及評(píng)估提供了以下模塊:
預(yù)處理是指 Scikit-learn 工具,這些工具可用于數(shù)據(jù)分析期間的特征提取和歸一化。
分類(lèi)是指一組工具,這組工具可識(shí)別機(jī)器學(xué)習(xí)模型中與數(shù)據(jù)相關(guān)的類(lèi)別。例如,這些工具還可用于將電子郵件分類(lèi)為有效郵件或垃圾郵件。實(shí)際上,分類(lèi)可確定目標(biāo)所屬的類(lèi)別。
回歸是指 ML 模型的創(chuàng)建,該模型試圖理解輸入和輸出數(shù)據(jù)(例如行為或股票價(jià)格)之間的關(guān)系?;貧w可預(yù)測(cè)與目標(biāo)關(guān)聯(lián)的連續(xù)值屬性。
Scikit-learn 中的聚類(lèi)工具自動(dòng)將具有相似特征的數(shù)據(jù)以集的形式進(jìn)行分組,例如根據(jù)物理位置排列成集的客戶數(shù)據(jù)。
降維可減少用于分析的隨機(jī)變量數(shù)量。例如,為了提升可視化的效率,可能會(huì)將離散數(shù)據(jù)排除在外。
模型選擇是指算法及其提供相應(yīng)工具的能力,并且這些工具能夠比較、驗(yàn)證和選擇最佳參數(shù),以將其用于數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)項(xiàng)目。
流程是指用于構(gòu)建模型工作流程的實(shí)用程序。
機(jī)器學(xué)習(xí)可視化可支持快速繪圖和視覺(jué)調(diào)整。
Scikit-learn 的工作原理
Scikit-learn 主要采用 Python 編寫(xiě),并使用 NumPy 進(jìn)行高性能線性代數(shù)以及數(shù)組運(yùn)算。一些核心 Scikit-learn 算法則采用 Cython 編寫(xiě),以提升整體性能。
作為更高級(jí)別的庫(kù),它包含各種機(jī)器學(xué)習(xí)算法的幾種實(shí)施,Scikit-learn 讓用戶僅使用幾行代碼即可構(gòu)建、訓(xùn)練和評(píng)估模型。
Scikit-learn 還提供一套統(tǒng)一的高級(jí)別 API,以供構(gòu)建 ML 流程或工作流程使用。
在 Scikit-learn ML 流程中,您可以通過(guò)轉(zhuǎn)換器傳遞數(shù)據(jù)并提取特征,使用估測(cè)器生成模型,并使用評(píng)估器測(cè)量模型的準(zhǔn)確性。
Transformer:這是一種轉(zhuǎn)換或輸入數(shù)據(jù),以進(jìn)行預(yù)處理的算法。
Estimator:這是一種機(jī)器學(xué)習(xí)算法,用于訓(xùn)練或擬合數(shù)據(jù),以構(gòu)建可用于預(yù)測(cè)的模型。
流程:流程將多個(gè)轉(zhuǎn)換器和估測(cè)器相連接,從而指定 ML 工作流程。
GPU 加速的 Scikit-learn API 和端到端數(shù)據(jù)科學(xué)
在架構(gòu)方面,CPU 僅由幾個(gè)具有大緩存內(nèi)存的核心組成,一次只可以處理幾個(gè)軟件線程。相比之下,GPU 由數(shù)百個(gè)核心組成,可以同時(shí)處理數(shù)千個(gè)線程。
基于 CUDA-X AI 創(chuàng)建的 NVIDIA RAPIDS 開(kāi)源軟件庫(kù)套件使您完全能夠在 GPU 上執(zhí)行端到端數(shù)據(jù)科學(xué)和分析流程。此套件依靠 NVIDIA CUDA 基元進(jìn)行低級(jí)別計(jì)算優(yōu)化,但通過(guò)用戶友好型 Python 接口能夠?qū)崿F(xiàn) GPU 并行化和高帶寬顯存速度。
RAPIDS cuML 的機(jī)器學(xué)習(xí)算法和數(shù)學(xué)基元遵循熟悉的類(lèi)似于 scikit-learn 的 API。單塊 GPU 和大型數(shù)據(jù)中心部署均支持 XGBoost、隨機(jī)森林等主流算法。針對(duì)大型數(shù)據(jù)集,相較于同等功效的 CPU,這些基于 GPU 的實(shí)施方案能夠以 10 到 50 倍的速度更快地完成任務(wù)。
借助 RAPIDS GPU DataFrame,數(shù)據(jù)可以通過(guò)一個(gè)類(lèi)似 Pandas 的接口加載到 GPU 上,然后用于各種連接的機(jī)器學(xué)習(xí)和圖形分析算法,而無(wú)需離開(kāi) GPU。這種級(jí)別的互操作性可通過(guò) Apache Arrow 等庫(kù)實(shí)現(xiàn),并且可加速端到端流程(從數(shù)據(jù)準(zhǔn)備到機(jī)器學(xué)習(xí),再到深度學(xué)習(xí))。
RAPIDS 支持在許多熱門(mén)數(shù)據(jù)科學(xué)庫(kù)之間共享設(shè)備內(nèi)存。這樣可將數(shù)據(jù)保留在 GPU 上,并省去了來(lái)回復(fù)制主機(jī)內(nèi)存的高昂成本。
審核編輯:湯梓紅
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5063瀏覽量
103446 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8434瀏覽量
132866 -
python
+關(guān)注
關(guān)注
56文章
4804瀏覽量
84910
原文標(biāo)題:NVIDIA 大講堂 | 什么是 Scikit-learn?
文章出處:【微信號(hào):NVIDIA_China,微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論