具有test_size = 0的train_test_split如何影响数据?

问题描述 投票:1回答:1

我在我的代码中使用了train_test_split,然后想要将其更改为交叉验证,但是有些奇怪的事情是hapenning。

train, test = train_test_split(data, test_size=0)

x_train = train.drop('CRO', axis=1)
y_train = train['CRO']

scaler = MinMaxScaler(feature_range=(0, 1))
x_train_scaled = scaler.fit_transform(x_train)
x_train = pd.DataFrame(x_train_scaled)

for k in range(1, 5):
    knn = neighbors.KNeighborsRegressor(n_neighbors=k, weights='uniform')
    scores = model_selection.cross_val_score(knn, x_train, y_train, cv=5)
    print(scores.mean(), 'score for k = ', k)

这段代码给出了大约0.8的分数,但当我删除第一行并更改第2行和第3行中设置的'数据'的'train'时,分数变为0.2,这很奇怪,因为我甚至设置了test_size到0所以列车应该等于整个数据。什么是hapenning?

python machine-learning cross-validation train-test-split
1个回答
0
投票

有一点需要注意的是train_test_split中传递的隐含参数。

默认情况下,shuffle=True可能很容易通过混洗将一些噪音添加到您的训练数据中,只是在不拖沓的情况下传递数据我会在模型中引入一些其他模式。

© www.soinside.com 2019 - 2024. All rights reserved.