Прогнозирование с помощью случайного леса
Чтобы обучить модель машинного обучения для предсказания оптимальных портфелей, необходимо разделить данные на обучающую и тестовую выборки для оценки качества модели. Мы сделаем это так же, как в предыдущих главах: возьмём массивы features и targets и разобьём их в соответствии с заданным значением train_size. Как правило, размер обучающей выборки составляет около 70–90% от всех данных.
Затем мы обучим модель (в данном случае — случайный лес) на обучающих данных и оценим значения R\(^2\) для обучающей и тестовой выборок с помощью метода .score(). Гиперпараметры уже заданы за вас, однако в реальных задачах стоит выполнять их подбор с помощью ParameterGrid, как мы делали в предыдущих главах.
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Установите значение
train_sizeравным 85% от всего набора данных, используя свойство.shapeмассиваfeatures. - Создайте обучающую и тестовую целевые переменные из массива
targetsс помощью индексирования Python. - Обучите модель случайного леса на
train_featuresиtrain_targets.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Make train and test features
train_size = int(0.85 * ____)
train_features = features[:train_size]
test_features = features[train_size:]
train_targets = targets[____]
test_targets = targets[____]
# Fit the model and check scores on train and test
rfr = RandomForestRegressor(n_estimators=300, random_state=42)
rfr.fit(____, ____)
print(rfr.score(train_features, train_targets))
print(rfr.score(test_features, test_targets))