使用sklearn.cross_validation进行数据集划分的 实践
发布时间:2023-12-18 14:47:04
sklearn.cross_validation模块在最新版本的scikit-learn中已被弃用。它已经被替换为sklearn.model_selection模块中的train_test_split函数。在本文中,我们将介绍如何使用train_test_split函数进行数据集划分,并提供一个使用例子。
train_test_split函数的主要功能是将数据集划分为训练集和测试集。它可以根据给定的参数,将数据集划分为更小的部分,例如训练集、验证集和测试集。train_test_split函数的基本用法如下所示:
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
在这个例子中,X是特征矩阵,y是目标向量。test_size参数指定了测试集所占的比例,它可以是一个浮点数(0~1之间)或一个整数。如果test_size是一个浮点数,那么它表示测试集所占的比例;如果test_size是一个整数,那么它表示测试集的样本数量。random_state参数用于控制数据划分的随机性。通过指定相同的random_state值,可以确保每次运行得到相同的划分结果。
train_test_split函数的返回值包括四个部分:训练集特征矩阵、测试集特征矩阵、训练集目标向量和测试集目标向量。您可以根据需要使用这些返回值来进一步分析和处理数据。
下面是一个完整的使用train_test_split函数的示例代码:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 打印训练集和测试集的形状
print("训练集特征矩阵 shape:", X_train.shape)
print("测试集特征矩阵 shape:", X_test.shape)
print("训练集目标向量 shape:", y_train.shape)
print("测试集目标向量 shape:", y_test.shape)
此代码加载了经典的鸢尾花数据集,然后使用train_test_split函数将数据集划分为80%的训练集和20%的测试集。最后,打印出训练集和测试集的形状。
以上就是使用sklearn.model_selection中的train_test_split函数进行数据集划分的 实践和一个使用例子。希望能对您有所帮助!
