Python 训练集、测试集以及验证集切分方法:sklearn及手动切分
在机器学习中,我们将数据集划分成训练集、验证集和测试集,是为了:
sklearn 提供了一个非常方便的函数 train_test_split
来进行数据集的切分。
from sklearn.model_selection import train_test_split
# 假设 X 是特征矩阵,y 是目标变量
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_stat e=42)
# 进一步将训练集划分为训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)
test_size
: 指定测试集占总数据集的比例。random_state
: 设置随机种子,确保每次运行都能得到相同的切分结果。
import numpy as np
# 假设数据已经打乱
def split_data(X, y, train_size, val_size):
n = len(X)
train_index = int(train_size * n)
val_index = int((train_size + val_size) * n)
X_train, X_val, X_test = X[:train_index], X[train_index:val_index], X[val_index:]
y_train, y_val, y_test = y[:train_index], y[train_index:val_index], y[val_index:]
return X_train, X_val, X_test, y_train, y_val, y_test
sklearn 提供了非常方便的函数来进行数据集的切分,但手动切分也可以更好地理解其中的原理。在实际应用中,可以根据具体需求选择合适的方法。
想了解更多关于数据集切分的信息吗? 欢迎提出您的问题!
您可以提出以下问题:
我将尽力为您解答。