如何拆分培训和测试集?

时间:2018-05-30 09:57:28

标签: python split

我们应该在哪里使用

X_train,X_test,y_train,y_test= train_test_split(data, test_size=0.3, random_state=42)

我们应该在哪里使用

train, test= train_test_split(data, test_size=0.3, random_state=0). 

前一个回复:

  

值错误:没有足够的值来解包(预期4,得到2)

3 个答案:

答案 0 :(得分:1)

如果要分割具有要素(X)和标签(y)的实例,则使用第一个表单。如果您只想拆分要素(X),则使用第二种形式。

X_train, X_test, y_train, y_test= train_test_split(data, y, test_size=0.3, random_state=42)

它之所以不适合您,是因为您没有在train_test_split()函数中提供标签数据。以上应该运作良好。只需将y替换为您的标签/目标数据。

答案 1 :(得分:0)

train_test_split方法根据需要接受尽可能多的数组。

但是,由于您需要四个返回的值,您必须将2数组作为参数传递。

X_train, X_test, y_train, y_test= train_test_split(data, y_data, test_size=0.3, random_state=42)

如果您需要传递多个数组,可以使用 扩展可迭代解包 运算符。

train_test_split(*arrays, test_size = test_size, random_state = 0)

答案 2 :(得分:0)

如果您有1个数据列表,则将其拆分为2,

                             |---data_train
data ----train_test_split()--|
                             |---data_test

如果您有2个数据列表,则会将数据列表的 EACH 分割为2,即总共4个。

                                       |---data_train_x
                                       |---data_train_y
data_x, data_y ----train_test_split()--|
                                       |---data_test_x
                                       |---data_test_y

n 数据列表相同。