【问题标题】:Types of Train test split训练测试拆分的类型
【发布时间】:2021-01-01 08:12:05
【问题描述】:

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

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 个

【问题讨论】:

    标签: python pandas machine-learning scikit-learn train-test-split


    【解决方案1】:

    根据this。如果您使用stratify,数据将使用分层的值作为分层方式的类标签进行拆分。这有助于班级分配。

    如果是这样,因为在第一个和第二个示例中stratify 不是None,数据将被分层。

    【讨论】:

      【解决方案2】:

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

      原因是train_test_split 采用两种类型的参数——*arrays**options——并且:

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

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

      函数的文档说明它返回:

      拆分:列表,长度=2 * len(数组) 包含输入的训练测试拆分的列表。

      【讨论】:

      • df_train, df_valid = model_selection.train_test_split( df, test_size=0.1, random_state=42, stratify=data.spam.values) 的例子会是什么?
      猜你喜欢
      • 2021-06-28
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2020-09-12
      • 2019-03-16
      • 2017-11-01
      相关资源
      最近更新 更多