如何在Python中使用Sklearn进行培训测试分割
在这篇文章中,让我们学习如何在Python中使用Sklearn进行训练测试分割。
使用Sklearn进行训练测试分割
train_test_split()方法被用来将我们的数据分成训练集和测试集。
首先,我们需要将数据分为特征(X)和标签(Y)。数据帧被分为X_train,X_test , y_train和y_test。X_train和y_train集用于训练和拟合模型。X_test和y_test集用于测试模型是否预测了正确的输出/标签。我们可以明确地测试训练集和测试集的大小。建议保持我们的训练集比测试集大。
训练集:训练数据集是一组被用来拟合模型的数据。训练模型所依据的数据集。这个数据被模型看到并学习。
测试集:测试数据集是训练数据集的一个子集,用来对最终的模型拟合进行准确评估。
验证集:验证数据集是来自你的模型训练集的数据样本,用于估计模型性能,同时调整模型的超参数。
默认情况下,我们有25%的数据是测试集,75%的数据进入训练测试。
语法: sklearn.model_selection.train_test_split()
参数:
- arrays: 索引序列。 Lists, numpy arrays, scipy-sparse matrices, and pandas dataframes are all valid input.
- test_size:int或float,默认为None。如果是float,它应该在0.0和1.0之间,代表要测试分割的数据集的百分比。如果使用int,它指的是测试样本的总数。如果该值为None,则使用训练规模的补码。如果训练规模也是无,它将被设置为0.25。
- train_size:int或float,默认为None。
- random_state : int,默认为None.** 控制数据在执行分割之前的洗牌方式。为了在多个函数调用中实现可重复的输出,请传递一个int。
- shuffle: boolean对象,默认为True.在分割前是否要对数据进行洗牌。如果shuffle=False,Stratify必须为None。
- stratify:类数组对象,默认为None。如果选择None,则使用这些作为类标签对数据进行分层。
返回: 分割:列表
示例 1:
numpy、pandas和scikit-learn软件包被导入。CSV文件被导入。X包含特征,Y是标签。我们将数据帧分割成X和Y,并对它们进行训练测试分割。Random_state就像一个numpy种子,它用于数据的可重复性。1-test_size是我们的训练大小,我们不需要指定它。 shuffle =True,在溢出之前对我们的数据进行洗牌。X_train和X_test集被用来拟合和训练我们的模型,测试集被用来测试和验证。
输出:
示例 2:
在这个例子中,遵循同样的步骤,而不是指定test_size,我们指定train_size。test_size是1-train_size。80%的数据是训练集,所以20%的数据是我们的测试集。如果我们不指定测试集和训练集的大小,默认test_size是0.25。X_train和y_train有相同的形状和索引,因为y_train是X_train特征的标签,X_test和y_test也一样。
输出: