訓練集就像是在一門課學習東西;測試集就像是學完這堂課的內容後所出的考試
from sklearn.model_selection import train_test_split
X = range(10) # 特徵向量 X 包含整數 0 到 9,共 10 個數據點
y = [0, 0, 1, 1, 0, 0, 1, 1, 0, 0] # 目標標籤 y 包含對應的二元分類標籤
# 分成訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# X_train: 訓練集的特徵向量
# X_test: 測試集的特徵向量
# y_train: 訓練集的目標標籤
# y_test: 測試集的目標標籤
# test_size=0.2: 表示將數據分成測試集時,測試集的比例為總數據的 20%,而訓練集的比例為 80%。
# random_state=42: 設定隨機種子,確保分割的結果是可重複的。指定相同的 random_state 將獲得相同的分割結果。
print("訓練集 X:", X_train) # 顯示訓練集的特徵向量
print("測試集 X:", X_test) # 顯示測試集的特徵向量
print("訓練集 y:", y_train) # 顯示訓練集的目標標籤
print("測試集 y:", y_test) # 顯示測試集的目標標籤
可以將數據的範圍調整到一個特定的區間,以確保不同特徵的值處於相似的範圍內,這對某些機器學習算法(如SVM和KNN)非常重要
import numpy as np
from sklearn.preprocessing import MinMaxScaler
data = np.array([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0]])
# 創建MinMaxScaler對象,將數據縮放到特定範圍(例如[0, 1])
scaler = MinMaxScaler()
# 適配數據並進行縮放
scaled_data = scaler.fit_transform(data)
print("原始數據:\n", data)
print("縮放後的數據:\n", scaled_data)
將數據轉換為標準正態分佈,以便某些統計方法和機器學習算法的應用
import numpy as np
from sklearn.preprocessing import StandardScaler
data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
# 創建StandardScaler對象,進行標準化
scaler = StandardScaler()
# 適配數據並進行標準化
normalized_data = scaler.fit_transform(data.reshape(-1, 1))
print("原始數據:\n", data)
print("標準化後的數據:\n", normalized_data)
PCA 通常用於減少高維數據的維度,以保留最重要的特徵。
from sklearn.decomposition import PCA
import numpy as np
# 創建示例數據集
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 創建PCA模型,指定要保留的主成分數量
pca = PCA(n_components=2)
# 適配數據並進行降維
transformed_data = pca.fit_transform(data)
print(transformed_data)
'''
[[-5.19615242e+00 3.62353582e-16]
[ 0.00000000e+00 0.00000000e+00]
[ 5.19615242e+00 3.62353582e-16]]
'''