Asamblarea modelelor
O modalitate de a îmbunătăți predicțiile modelelor de machine learning este asamblarea (ensembling). O abordare de bază constă în a face media predicțiilor mai multor modele. O abordare mai complexă presupune să introduci predicțiile unor modele într-un alt model, care generează predicțiile finale. Ambele abordări îmbunătățesc de obicei performanța generală (atâta timp cât modelele individuale sunt bune). Dacă îți amintești, pădurile aleatoare folosesc și ele asamblarea mai multor arbori de decizie.
Pentru a asambla predicțiile rețelei neuronale, vom genera predicții cu cele 3 modele pe care tocmai le-am creat — modelul de bază, modelul cu funcția de pierdere personalizată și modelul cu dropout. Apoi vom combina predicțiile cu funcția .hstack() din numpy și vom calcula media pe rânduri folosind np.mean(predictions, axis=1).
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Generează predicții pe
scaled_train_featuresșiscaled_test_featurespentru cele 3 modele antrenate (model_1,model_2,model_3), folosind metoda.predict(). - Stivuiește orizontal predicțiile (
np.hstack()) într-o matrice, apoi calculează mediile pe rânduri pentru a obține predicțiile medii pentru seturile de antrenament și de testare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)
train_pred2 = ____
test_pred2 = ____
train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)
# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])