Make predictions with a random forest
In order to fit a machine learning model to predict ideal portfolios, we need to create train and test sets for evaluating performance. We will do this as we did in previous chapters, where we take our features
and targets
arrays, and split them based on a train_size
we set. Often the train size may be around 70-90% of our data.
We then fit our model (a random forest in this case) to the training data, and evaluate the R\(^2\) scores on train and test using .score()
from our model. In this case, the hyperparameters have been set for you, but usually you'd want to do a search with ParameterGrid
like we did in previous chapters.
This exercise is part of the course
Machine Learning for Finance in Python
Exercise instructions
- Set the
train_size
to be 85% of the full training set data using the.shape
property offeatures
. - Create train and test targets from
targets
using Python indexing. - Fit the random forest model to the
train_features
andtrain_targets
.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# 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))