Я использовал train_test_split в своем коде, а затем хотел изменить его на перекрестную проверку, но происходит нечто странное.
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, но когда я удаляю эту первую строкуи измените набор 'train' для набора 'data' во 2-й и 3-й строках, оценка изменится на 0.2, что странно, потому что я даже установил test_size в 0, чтобы поезд был равен всем данным.Что происходит?