📅  最后修改于: 2023-12-03 15:20:09.288000             🧑  作者: Mango
在机器学习中,我们通常需要使用训练集和测试集来构建和评估模型。sklearn提供了train_test_split函数,可以帮助我们随机拆分数据集,生成训练集和测试集。
要使用train_test_split,需要先安装sklearn包。在终端中输入以下命令进行安装:
pip install -U scikit-learn
train_test_split的使用非常简单。以下是一些常用参数:
train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)
其中,*arrays表示输入的数据集,可以是一个或多个数组;test_size表示测试集的比例;train_size表示训练集的比例(如果和test_size都未提供,则默认80%训练集和20%测试集);random_state表示随机种子(如果指定了随机种子,每次生成的数据集都是固定的);shuffle表示是否要打乱数据集;stratify表示按照什么因素进行分层抽样(通常在类别不平衡的情况下使用)。
以下是一个使用train_test_split的示例:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载iris数据集
iris = load_iris()
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# 打印拆分后的数据集大小
print("训练集大小:", X_train.shape, y_train.shape)
print("测试集大小:", X_test.shape, y_test.shape)
输出结果如下:
训练集大小: (105, 4) (105,)
测试集大小: (45, 4) (45,)
在使用train_test_split时,需要注意以下几点: