如何將 Scikit-learn Python 庫用於資料科學專案
靈活多樣的 Python 庫為資料分析和資料探勘提供了強力的機器學習工具。
Scikit-learn Python 庫最初於 2007 年釋出,通常用於解決各種方面的機器學習和資料科學問題。這個多種功能的庫提供了整潔、一致、高效的 API 和全面的線上文件。
什麼是 Scikit-learn?
Scikit-learn 是一個開源 Python 庫,擁有強大的資料分析和資料探勘工具。 在 BSD 許可下可用,並建立在以下機器學習庫上:
NumPy
,一個用於操作多維陣列和矩陣的庫。它還具有廣泛的數學函式彙集,可用於執行各種計算。SciPy
,一個由各種庫組成的生態系統,用於完成技術計算任務。Matplotlib
,一個用於繪製各種圖表和圖形的庫。
Scikit-learn 提供了廣泛的內建演算法,可以充分用於資料科學專案。
以下是使用 Scikit-learn 庫的主要方法。
1、分類
分類工具識別與提供的資料相關聯的類別。例如,它們可用於將電子郵件分類為垃圾郵件或非垃圾郵件。
Scikit-learn 中的分類演算法包括:
- 支援向量機(SVM)
- 最鄰近
- 隨機森林
2、迴歸
迴歸涉及到建立一個模型去試圖理解輸入和輸出資料之間的關係。例如,迴歸工具可用於理解股票價格的行為。
迴歸演算法包括:
- 支援向量機(SVM)
- 嶺迴歸
- Lasso(LCTT 譯註:Lasso 即 least absolute shrinkage and selection operator,又譯為最小絕對值收斂和選擇運算元、套索演算法)
3、聚類
Scikit-learn 聚類工具用於自動將具有相同特徵的資料分組。 例如,可以根據客戶資料的地點對客戶資料進行細分。
聚類演算法包括:
- K-means
- 譜聚類
- Mean-shift
4、降維
降維降低了用於分析的隨機變數的數量。例如,為了提高視覺化效率,可能不會考慮外圍資料。
降維演算法包括:
- 主成分分析(PCA)
- 功能選擇
- 非負矩陣分解
5、模型選擇
模型選擇演算法提供了用於比較、驗證和選擇要在資料科學專案中使用的最佳引數和模型的工具。
通過引數調整能夠增強精度的模型選擇模組包括:
- 網格搜尋
- 交叉驗證
- 指標
6、預處理
Scikit-learn 預處理工具在資料分析期間的特徵提取和規範化中非常重要。 例如,您可以使用這些工具轉換輸入資料(如文字)並在分析中應用其特徵。
預處理模組包括:
- 預處理
- 特徵提取
Scikit-learn 庫示例
讓我們用一個簡單的例子來說明如何在資料科學專案中使用 Scikit-learn 庫。
我們將使用鳶尾花花卉資料集,該資料集包含在 Scikit-learn 庫中。 鳶尾花資料集包含有關三種花種的 150 個細節,三種花種分別為:
- Setosa:標記為 0
- Versicolor:標記為 1
- Virginica:標記為 2
資料集包括每種花種的以下特徵(以釐米為單位):
- 萼片長度
- 萼片寬度
- 花瓣長度
- 花瓣寬度
第 1 步:匯入庫
由於鳶尾花花卉資料集包含在 Scikit-learn 資料科學庫中,我們可以將其載入到我們的工作區中,如下所示:
from sklearn import datasets
iris = datasets.load_iris()
這些命令從 sklearn
匯入資料集 datasets
模組,然後使用 datasets
中的 load_iris()
方法將資料包含在工作空間中。
第 2 步:獲取資料集特徵
資料集 datasets
模組包含幾種方法,使您更容易熟悉處理資料。
在 Scikit-learn 中,資料集指的是類似字典的物件,其中包含有關資料的所有詳細資訊。 使用 .data
鍵儲存資料,該資料列是一個陣列列表。
例如,我們可以利用 iris.data
輸出有關鳶尾花花卉資料集的資訊。
print(iris.data)
這是輸出(結果已被截斷):
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]
[5.4 3.9 1.7 0.4]
[4.6 3.4 1.4 0.3]
[5. 3.4 1.5 0.2]
[4.4 2.9 1.4 0.2]
[4.9 3.1 1.5 0.1]
[5.4 3.7 1.5 0.2]
[4.8 3.4 1.6 0.2]
[4.8 3. 1.4 0.1]
[4.3 3. 1.1 0.1]
[5.8 4. 1.2 0.2]
[5.7 4.4 1.5 0.4]
[5.4 3.9 1.3 0.4]
[5.1 3.5 1.4 0.3]
我們還使用 iris.target
向我們提供有關花朵不同標籤的資訊。
print(iris.target)
這是輸出:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
如果我們使用 iris.target_names
,我們將輸出資料集中找到的標籤名稱的陣列。
print(iris.target_names)
以下是執行 Python 程式碼後的結果:
['setosa' 'versicolor' 'virginica']
第 3 步:視覺化資料集
我們可以使用箱形圖來生成鳶尾花資料集的視覺描繪。 箱形圖說明了資料如何通過四分位數在平面上分佈的。
以下是如何實現這一目標:
import seaborn as sns
box_data = iris.data # 表示資料陣列的變數
box_target = iris.target # 表示標籤陣列的變數
sns.boxplot(data = box_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(2,15)})
讓我們看看結果:
在橫軸上:
- 0 是萼片長度
- 1 是萼片寬度
- 2 是花瓣長度
- 3 是花瓣寬度
垂直軸的尺寸以釐米為單位。
總結
以下是這個簡單的 Scikit-learn 資料科學教程的完整程式碼。
from sklearn import datasets
iris = datasets.load_iris()
print(iris.data)
print(iris.target)
print(iris.target_names)
import seaborn as sns
box_data = iris.data # 表示資料陣列的變數
box_target = iris.target # 表示標籤陣列的變數
sns.boxplot(data = box_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(2,15)})
Scikit-learn 是一個多功能的 Python 庫,可用於高效完成資料科學專案。
如果您想了解更多資訊,請檢視 LiveEdu 上的教程,例如 Andrey Bulezyuk 關於使用 Scikit-learn 庫建立機器學習應用程式的視訊。
有什麼評價或者疑問嗎? 歡迎在下面分享。
via: https://opensource.com/article/18/9/how-use-scikit-learn-data-science-projects
作者:Dr.Michael J.Garbade 選題:lujun9972 譯者:Flowsnow 校對:wxy
相關文章
- 3 個用於資料科學的頂級 Python 庫資料科學Python
- Python資料科學(三) python與資料科學應用(Ⅲ)Python資料科學
- Python資料科學(二) python與資料科學應用(Ⅱ)Python資料科學
- Python資料科學(一) python與資料科學應用(Ⅰ)Python資料科學
- 本週Github上資料科學Python有趣專案Github資料科學Python
- 用 Python 入門資料科學Python資料科學
- python如何將資料插入資料庫Python資料庫
- 資料科學求職建議:掌握5種型別的資料科學專案資料科學求職型別
- 常用構建資料科學應用程式的七個Python庫資料科學Python
- python應用資料科學的優勢Python資料科學
- 《Python入門與資料科學庫》學習筆記Python資料科學筆記
- (資料科學學習手札121)Python+Dash快速web應用開發——專案結構篇資料科學PythonWeb
- 成為資料科學家的入門專案資料科學
- Python資料科學(七) 資料清理(Ⅱ)Python資料科學
- Python資料科學(六) 資料清理(Ⅰ)Python資料科學
- Python或將成資料科學家首選語言Python資料科學
- (資料科學學習手札138)使用sklearnex大幅加速scikit-learn運算資料科學
- [譯] 鮮為人知的資料科學 Python 庫資料科學Python
- 盤點5個常用的Python資料科學庫!Python資料科學
- 資料科學和 ML 領域常用的 Python 庫資料科學Python
- 用於資料科學的幾種Python裝飾器介紹 - Bytepawn資料科學Python
- (資料科學學習手札120)Python+Dash快速web應用開發——整合資料庫資料科學PythonWeb資料庫
- 【資料科學家】如何成為一名資料科學家?資料科學
- Python 資料科學之 PandasPython資料科學
- 【Python資料科學】之NumpyPython資料科學
- Python 資料科學入門Python資料科學
- Python資料科學(四) 資料收集系列Python資料科學
- 初創公司資料科學專案全流程指南,一位資深資料科學家的經驗談資料科學
- Python中非常有用的三個資料科學庫Python資料科學
- ChatGPT用於科學,如何與你的資料對話?LLM幫你做科研ChatGPT
- 資深專家分享:從numpy開啟Python資料科學之旅!Python資料科學
- DataSpell 2023:專注於資料,加速您的資料科學之旅 mac/win啟用版資料科學Mac
- 如何高效入門資料科學?資料科學
- 構建你的資料科學作品集:機器學習專案資料科學機器學習
- 如何將資料庫中的資料導成 excel 檔案資料庫Excel
- 如何在Python中用scikit-learn生成測試資料集Python
- Java可以用於機器學習和資料科學嗎? - kdnuggetsJava機器學習資料科學
- 文科生如何高效學資料科學?資料科學