首页 > 解决方案 > 训练测试拆分的类型

问题描述

谁能解释一下这两种不同类型的火车测试拆分。我知道第一个。我在某人的代码上看到的第二个。

train_text, temp_text, train_labels, temp_labels = train_test_split(df['text'], df['spam'], 
                                                                random_state=42, 
                                                                test_size=0.3, 
                                                                stratify=df['spam'])
df_train, df_valid = model_selection.train_test_split(
                                                   text, test_size=0.1, 
                                                    random_state=42, stratify=data.spam.values)

在第二个例子中,为什么这个人只取 2 个变量而不是 4 个

标签: pythonpandasmachine-learningscikit-learntrain-test-split

解决方案


为什么这个人只取 2 个变量而不是 4 个

原因是train_test_split接受两种类型的参数 -*arrays**options- 和:

  • 在第一个例子中*arraysdf['text'], df['spam']。其余的论点 (the **options) 与问题无关。因此,该函数接收两个数组 -df['text']并且df['spam']它为两个数组中的每一个生成训练和测试拆分,因此它有 4 个结果。

  • 在第二个示例中,仅提供了一个数组 -text因此该函数仅返回两个结果 - 的训练和测试拆分text

该函数的文档指出它返回:

split: list, length=2 * len(arrays) 包含输入的训练测试拆分的列表。


推荐阅读