1、概要
??本篇學習AI人工智能之機器學習sklearn數據預處理和劃分數據集,從代碼層面講述如何進行數據的預處理和數據集劃分。
2、簡介
本片講述數據預處理的標準化處理、歸一化處理,以常用的兩個類為例
- 標準化處理類 StandardScaler
- 歸一化處理類 MinMaxScaler
在數據處理方面,使用train_test_split函數處理列表數據集為例
3、 數據預處理和數據集劃分
3.1 安裝依賴
python安裝機器學習庫: pip install scikit-learn
3.2、定義數據集
from sklearn.feature_extraction import text, DictVectorizer
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.model_selection import train_test_split# 示例數據集合,是一個經過處理的列表數據 X
X = [[1, 2], [3, 4], [5, 6], [7, 8]]
print("data:", X)# 示例打標的數據,
y = [0, 1, 0, 1]
print("tag", y)
運行上述代碼,您將得到如下輸出:
data: [[1, 2], [3, 4], [5, 6], [7, 8]]
tag [0, 1, 0, 1]
3.3 數據預處理 StandardScaler、MinMaxScaler
# 標準化處理
ss = StandardScaler()
# 將特征縮放到零均值和單位方差
X = ss.fit_transform(X)
X
運行上述代碼,您將得到如下輸出:
array([[-1.34164079, -1.34164079],[-0.4472136 , -0.4472136 ],[ 0.4472136 , 0.4472136 ],[ 1.34164079, 1.34164079]])
# 歸一化處理
mms = MinMaxScaler()
# 將特征縮放到一個范圍(如[0,1])
X = mms.fit_transform(X)
X
運行上述代碼,您將得到如下輸出:
array([[0. , 0. ],[0.33333333, 0.33333333],[0.66666667, 0.66666667],[1. , 1. ]])
3.4 劃分數據集 train_test_split
# 劃分訓練集 _train, 測試集 _test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
print(f"訓練集: {X_train} - {y_train}")
print(f"測試集: {X_test} - {y_test}")
運行上述代碼,您將得到如下輸出:
訓練集: [[1. 1. ][0. 0. ][0.66666667 0.66666667]] - [1, 0, 0]
測試集: [[0.33333333 0.33333333]] - [1]
4、 總結
本篇以自定義數據集為例,從代碼視角講述如何對數據集進行預處理和數據集的劃分。