Я пытаюсь использовать случайную лесную регрессию в scikits-learn. Проблема в том, что я получаю очень высокую ошибку теста:
train MSE, 4.64, test MSE: 252.25.
Вот как выглядят мои данные: (синий: реальные данные, зеленый: прогноз):
Я использую 90% для обучения и 10% для тестирования. Это код, который я использую после попытки нескольких комбинаций параметров:
rf = rf = RandomForestRegressor(n_estimators=10, max_features=2, max_depth=1000, min_samples_leaf=1, min_samples_split=2, n_jobs=-1)
test_mse = mean_squared_error(y_test, rf.predict(X_test))
train_mse = mean_squared_error(y_train, rf.predict(X_train))
print("train MSE, %.4f, test MSE: %.4f" % (train_mse, test_mse))
plot(rf.predict(X))
plot(y)
Каковы возможные стратегии для улучшения моей подгонки? Есть ли что-то еще, что я могу сделать, чтобы извлечь основную модель? Мне кажется невероятным, что после стольких повторений одного и того же паттерна модель ведет себя так плохо с новыми данными. Есть ли у меня какая-то надежда на то, чтобы соответствовать этим данным?