Этот случайный лес перегружен? - PullRequest
0 голосов
/ 27 января 2019

Я обучаю RandomForestRegressor из библиотеки scikit-learn для временных данных и хочу, чтобы лес предсказал тенденцию (следующие 4 точки) с учетом даты и времени в качестве признаков.

Я прогнозирую данные через небольшие интервалы(4 точки данных) и попытка восстановить тренд на весь день для сравнения с фактическими значениями и вычисления MSE путем нарезки набора данных

. Как видно на графике ниже (первый), предсказанная линия имеет некоторые исправлениякоторые очень похожи на фактическую строку данных.Единственная проблема заключается в том, что эти похожие патчи опережают время по сравнению с реальной линией (отмеченной на графике черными кружками)

Означает ли это, что модель изучила тренировочные данные и просто выплевывает последниезначения это запомнил?Я пока не проводил настройку модели, только сбор данных и оценка результатов.

Добавлен график без черных отметок, чтобы было легче видеть линии

enter image description here

enter image description here

РЕДАКТИРОВАТЬ: Я отредактировал прогноз, так как боялся, что в коде, который генерировал предыдущий код, была ошибкаГрафики

Как подсказывает @vpekar в комментариях, я a) сравнил MSE после оценок вне выборки и в выборке.Медиана MSE после десяти оценок вне выборки составляет 4,14e-08, а медиана MSE после оценки десяти образцов - 5,30e-08.На рисунке 3 показано, как оба результата выглядели более или менее.Figure 1 Рисунок 3

Вся оценка была сделана со стандартной ненастроенной моделью

`RandomForestRegressor(n_estimators=10000, criterion='mse', max_depth=None, min_samples_split=2, min_samples_leaf=1,max_features=5, max_leaf_nodes=None, bootstrap=False, oob_score=False, n_jobs=1, verbose=0, warm_start=False)`

После этого я запустил b) случайный поиск для параметров модели и получены лучшие результаты (рисунок 4) при оценке вне выборки 6.3e-06 (в 100 раз хуже, чем MSE модели по умолчанию) со следующими параметрами:

bootstrap=False, criterion=mse, max_depth=35, max_features=1, max_leaf_nodes=60, min_impurity_decrease=0 min_impurity_split=None, min_samples_leaf=74, min_samples_split=64, min_weight_fraction_leaf=0 n_estimators=10000, n_jobs=1, oob_score=False, random_state=None, verbose=0, warm_start=False

enter image description here Рисунок 4

Вопрос: Означает ли это, что параметры RandomForestRegressor по умолчанию приводят к переопределенной модели в случае моих данных?(Рисунок 3)

...