Gör förutsägelser med en slumpmässig skog
För att träna en maskininlärningsmodell som förutsäger optimala portföljer behöver vi skapa tränings- och testuppsättningar för att utvärdera prestandan. Vi gör detta på samma sätt som i tidigare kapitel: vi tar våra arrayer features och targets och delar upp dem baserat på ett train_size som vi anger. Träningsstorleken brukar ligga på ungefär 70–90 % av datan.
Därefter anpassar vi modellen – i det här fallet en slumpmässig skog – till träningsdatan och utvärderar R\(^2\)-värdena för träning och test med hjälp av .score() från modellen. Hyperparametrarna är förinställda här, men normalt skulle du vilja söka efter dem med ParameterGrid på samma sätt som i tidigare kapitel.
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Sätt
train_sizetill 85 % av hela träningsdatan med hjälp av egenskapen.shapehosfeatures. - Skapa tränings- och testmål från
targetsmed Python-indexering. - Anpassa modellen för slumpmässig skog till
train_featuresochtrain_targets.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))