Оценка регрессии уменьшается с Gridsearch - PullRequest
1 голос
/ 30 марта 2019

Я новичок в изучении scikit, поэтому прошу прощения за мое невежество.Используя GridsearchCV, я пытаюсь оптимизировать DecisionTreeRegressor.Чем шире пространство параметров, тем хуже становится оценка.

Установка min_samples_split в диапазон (2,10) дает мне neg_mean_squared_error, равный -0,04.При установке его в диапазоне (2,5) Оценка составляет -0,004.

simple_tree =GridSearchCV(tree.DecisionTreeRegressor(random_state=42), n_jobs=4, param_grid={'min_samples_split': range(2, 10)}, scoring='neg_mean_squared_error', cv=10, refit='neg_mean_squared_error')

simple_tree.fit(x_tr,y_tr).score(x_tr,y_tr)

Я ожидаю, что при более широком поиске в сетке будет достигнут такой же или более положительный результат по сравнению с менее расширенным.

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Вы правы, у вас должна быть метрика, которая становится ближе к 0 при наличии большего количества параметров ... если вы действительно сравнивали одну и ту же модель каждый раз. Это не относится к предоставленному вами коду, поскольку вы не установили параметр random_state в своем дереве решений.

Выполните DecisionTreeRegressor(random_state = 42) (или любое целое число), и у вас должны быть более разумные результаты.

0 голосов
/ 01 апреля 2019

Использование simple_tree.best_score_ дает средний лучший результат по всем сгибам CV.

...