【scikit-learn基礎】--『資料載入』之玩具資料集

wang_yb發表於2023-12-04

機器學習的第一步是準備資料,好的資料能幫助我們加深對機器學習演算法的理解。

不管是在學習還是實際工作中,準備資料永遠是一個枯燥乏味的步驟。
scikit-learn庫顯然看到了這個痛點,才在它的資料載入子模組中為我們準備了直接可用的資料集。

在它的資料載入子模組中,提供了6種直接可用來學習演算法的經典資料集,被稱為 Toy Datasets
也就是本篇準備介紹的玩具資料集。

1. 鳶尾花資料集

著名的鳶尾花資料集,最初由R.A.費舍爾爵士使用。
資料集取自費舍爾的論文。

1.1. 載入方式

from sklearn.datasets import load_iris

# 載入後的資料集 ds 是一個字典
ds = load_iris()
ds

直接的返回的字典中,除了資料還包含一些描述資料的元資訊。
如果想要直接得到用於分析的資料,載入時設定如下的引數:

# as_frame 引數將資料部分設為pandas的Dataframe格式
# return_X_y 參數列示返回 (data, target) 格式
ds = load_iris(as_frame=True, return_X_y=True)

ds[0]  # Dataframe格式的資料

image.png

1.2. 資料概況

鳶尾花資料集是一個簡單的多級分類資料集。

概況 說明
樣本分類 3種
每種分類樣本數 50
樣本總數 150
樣本維度 4
樣本特徵 real, positive 兩種

1.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 分類演算法:例如,邏輯迴歸、樸素貝葉斯、決策樹、支援向量機、神經網路等。
  • 迴歸演算法:例如,線性迴歸、決策樹、支援向量迴歸等。
  • 聚類演算法:例如,K-Means、層次聚類等。

2. 糖尿病資料集

這是一個可用於迴歸任務的糖尿病資料集。

2.1. 載入方式

from sklearn.datasets import load_diabetes

# 與鳶尾花資料集載入相比,多了個 scaled 引數
# scaled=False時,返回特徵變數的原始資料
# scaled=True時,則以均值為中心,進行縮放
ds = load_diabetes(as_frame=True, return_X_y=True, scaled=False)
ds[0]

2.2. 資料概況

概況 說明
樣本總數 442
樣本維度 10
特徵 -.2 < x < .2實數
目標 25 - 346 整數

2.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 迴歸演算法:例如,線性迴歸、嶺迴歸、Lasso迴歸、支援向量迴歸等。
  • 特徵選擇演算法:例如,遞迴特徵消除、L1正則化等。
  • 特徵降維演算法:例如,主成分分析(PCA)、線性判別分析(LDA)等。
  • 其他相關演算法:例如,模型評估、超引數調優等。

3. 手寫數字資料集

這是一個用於多分類任務的數字識別資料集。

3.1. 載入方式

from sklearn.datasets import load_digits

ds = load_digits(as_frame=True, return_X_y=True)
ds[0]

3.2. 資料概況

概況 說明
樣本分類 10種
每種分類樣本數 約180
樣本總數 1797
樣本維度 64
樣本特徵 0~16整數

3.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 多分類演算法:例如,K-近鄰(K-NN)、支援向量機(SVM)、決策樹、神經網路等。
  • 特徵選擇演算法:例如,遞迴特徵消除、L1正則化等。
  • 特徵降維演算法:例如,主成分分析(PCA)、線性判別分析(LDA)等。
  • 其他相關演算法:例如,模型評估、超引數調優等。

需要注意的是,由於這個資料集的特徵是影像畫素值,因此不太適合用於非影像處理的機器學習演算法。

4. 林納魯德資料集

這是一個用於多變數回歸任務的資料集。

4.1. 載入方式

from sklearn.datasets import load_linnerud

ds = load_linnerud(as_frame=True, return_X_y=True)
ds[0]

4.2. 資料概況

概況 說明
樣本總數 20
樣本維度 3
特徵 整數
目標 整數

4.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 迴歸演算法:例如,線性迴歸、嶺迴歸、Lasso迴歸、支援向量迴歸等。
  • 特徵選擇演算法:例如,遞迴特徵消除、L1正則化等。
  • 特徵降維演算法:例如,主成分分析(PCA)、線性判別分析(LDA)等。
  • 其他相關演算法:例如,模型評估、超引數調優等。

5. 葡萄酒資料集

這是一個用於分類任務的葡萄酒資料集

5.1. 載入方式

from sklearn.datasets import load_wine

ds = load_wine(as_frame=True, return_X_y=True)
ds[0]

5.2. 資料概況

概況 說明
樣本分類 3種
每種分類樣本數 3個分類中的樣本數分別為:59,71,48
樣本總數 178
樣本維度 13
樣本特徵 正的實數

5.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 分類演算法:例如,邏輯迴歸、樸素貝葉斯、決策樹、支援向量機、神經網路等。
  • 特徵選擇演算法:例如,遞迴特徵消除、L1正則化等。
  • 特徵降維演算法:例如,主成分分析(PCA)、線性判別分析(LDA)等。
  • 其他相關演算法:例如,模型評估、超引數調優等。

6. 威斯康星州乳腺癌資料集

這是一個用於分類任務的乳腺癌資料集。

6.1. 載入方式

from sklearn.datasets import load_breast_cancer

ds = load_breast_cancer(as_frame=True, return_X_y=True)
ds[0]

6.2. 資料概況

概況 說明
樣本分類 2種
每種分類樣本數 樣本數分別為:212,357
樣本總數 569
樣本維度 30
樣本特徵 正的實數

6.3. 用途

這個資料集可作為下列機器學習演算法的測試資料:

  • 分類演算法:例如,邏輯迴歸、樸素貝葉斯、決策樹、支援向量機、神經網路等。
  • 特徵選擇演算法:例如,遞迴特徵消除、L1正則化等。
  • 特徵降維演算法:例如,主成分分析(PCA)、線性判別分析(LDA)等。
  • 其他相關演算法:例如,模型評估、超引數調優等。

7. 總結

這些資料集資料量不大,但是資料具有代表性,且種類豐富。
瞭解每種資料的特點,後續學習演算法的時候,可以利用它們來實驗和驗證演算法的使用。

相關文章