Когда я выполняю GridSearchCV, я получаю иероглиф r2, когда использую X вместо X_train - PullRequest
0 голосов
/ 28 февраля 2020

Я использую GridSearchCV, чтобы определить лучших соседей для Knn.

Поскольку я имею дело с проблемой регрессии, я установил оценку на 'r2'.

Я не понимаю , почему при использовании учебного набора данных я получаю r2 = 0,88, а при использовании всего набора данных я получаю r2 = -2,34.

Это мой код:

#I split my dataset into Train/Test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

#I do gridSearchCV using r2 score as a scoring criteria (I'm dealing with a regression problem)
gsc = GridSearchCV(estimator=Knn(),param_grid={'n_neighbors':[1,2,3]},cv=10, scoring='r2',n_jobs=-1)

#I fit the model with the training dataset
gsc_fit_train = gsc.fit(X_train, y_train)
print('Best r2 value when usin training set: '+ str(gsc_fit_train.best_score_))

#I fit the model with all my dataset
gsc_fit_all = gsc.fit(X, y)
print('Best r2 value when using all dataset: '+ str(gsc_fit_all.best_score_))

Возвращенный результат:

Best r2 value when usin training set: 0.8881023386821312
Best r2 value when using all dataset: -2.3467049810775764

Я много искал и проверял тип данных после применения train_test_split (По сути, это тот же тип данных с меньшим количеством элементов) , Может ли кто-нибудь объяснить мне причину, по которой r2 так сильно меняется?

...