機器學習的第一步是準備資料,好的資料能幫助我們加深對機器學習演算法的理解。
不管是在學習還是實際工作中,準備資料永遠是一個枯燥乏味的步驟。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格式的資料
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. 總結
這些資料集資料量不大,但是資料具有代表性,且種類豐富。
瞭解每種資料的特點,後續學習演算法的時候,可以利用它們來實驗和驗證演算法的使用。