本守则是啥意思? (训练测试拆分 Scikit Learn)

Posted

技术标签:

【中文标题】本守则是啥意思? (训练测试拆分 Scikit Learn)【英文标题】:What does this Code mean? (Train Test Split Scikitlearn)本守则是什么意思? (训练测试拆分 Scikit Learn) 【发布时间】:2020-01-03 13:21:40 【问题描述】:

无论我走到哪里,我都会看到这段代码。需要帮助理解这一点。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,testsize = 0.20)

X_train, X_test, y_train, y_test 在这种情况下是什么意思,我应该把 fit() 和 predict() 放进去

【问题讨论】:

【参考方案1】:

简单来说,train_test_split 将您的数据集分为训练数据集和验证数据集。

验证集用于评估给定模型。

所以在这种情况下,验证数据集让我们了解模型性能。

X_train, X_test, y_train, y_test = train_test_split(X,y,testsize = 0.20)

上面一行将数据分成4部分

    X_train - 训练数据集 y_train - 训练数据集的 o/p X_test - 验证数据集 y_test - 验证数据集的 o/p

testsize = 0.2 表示您将拥有 20% 的验证数据和 80% 的训练数据

【讨论】:

【参考方案2】:

`基本上这段代码将你的数据分成两部分。

    用于训练 用于测试

在 test_size 变量的帮助下,您可以设置测试数据的大小

将数据分成两部分后,您必须使用 fit() 方法将训练数据拟合到模型中。 `

【讨论】:

【参考方案3】:

正如文档所述,train_test_split 所做的是:Splits arrays or matrices into random train and test subsets。你可以在这里找到它:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html。我相信正确的关键字参数是test_size,而不是testsize,如果它是float,它是represents the proportion of the dataset to include in the test split,如果它是一个int,它是the absolute number of test samples。 X 和 y 是sequence of indexables with same length / shape[0],所以基本上是要拆分的数组/列表/矩阵/数据帧。

因此,总而言之,代码将 X 和 y 拆分为随机训练和测试子集(X_train 和 X_test 用于 X,y_train 和 y_test 用于 y)。每个测试子集应包含 20% 的原始数组条目作为测试样本。 您应该将_train 子集传递给fit(),将_test 子集传递给predict()。希望对你有帮助~

【讨论】:

所以“x_train”是训练标签和x_test训练目标?这应该使 y_train 测试标签和“y test”测试目标。这是正确的吗? 原始 X 和 y 各自包含什么?如果 X 包含观测值,y 是等效标签,则 X_train 是用于训练的观测值的子集,而 y_train 是它们对应的标签。 X_test 和 y_test 也是如此。 原始 X 包含特征,Y 包含标签(您要预测的) X = 训练标签示例(颜色、大小、味道)和 y = 训练目标示例(水果) 是的,正如我在修改后的评论中所说的那样:X_train 是用于训练的观察/特征的子集,而 y_train 是它们相应的标签。 X_test 和 y_test 也是如此。因此,为了训练您的模型,您使用 X_train 作为特征,使用 y_train 作为基本事实。同样,在测试时,您使用 X_test 作为特征,使用 y_test 来验证预测的标签。

以上是关于本守则是啥意思? (训练测试拆分 Scikit Learn)的主要内容,如果未能解决你的问题,请参考以下文章

在训练测试拆分操作(scikit)后使数据平衡?

scikit-learn 中的分层训练/验证/测试拆分

没有 scikit-learn 的分层训练/验证/测试拆分

scikit learn 的训练测试拆分导致训练数据中只有一个唯一值的特征

Scikit-Learn One-hot-encode 在训练/测试拆分之前或之后

在 Python Scikit-Learn 中训练测试拆分得分高但 CV 得分低