Overfitting en ensembling

Machine Learning voor finance in Python

Nathan George

Data Science Professor

overfitting

Machine Learning voor finance in Python

Vereenvoudig je model

beperkt net

Machine Learning voor finance in Python

Neural-networkopties

Opties tegen overfitting:

  • Minder nodes
  • L1/L2-regularisatie
  • Dropout
  • Autoencoder-architectuur
  • Vroegtijdig stoppen
  • Ruis toevoegen aan data
  • Max-normbeperkingen
  • Ensembling
Machine Learning voor finance in Python

Dropout

dropout

Machine Learning voor finance in Python

Dropout in keras

from keras.layers import Dense, Dropout

model = Sequential() model.add(Dense(500, input_dim=scaled_train_features.shape[1], activation='relu')) model.add(Dropout(0.5)) model.add(Dense(100, activation='relu')) model.add(Dense(1, activation='linear'))
Machine Learning voor finance in Python

Vergelijking testset

R$^2$-waarden op AMD zonder dropout:

  • train: 0,91
  • test: -0,72

Met dropout:

  • train: 0,46
  • test: -0,22
Machine Learning voor finance in Python

Ensembling

random forest

Machine Learning voor finance in Python

Ensembling implementeren

# voorspel met 2 neural-netmodellen
test_pred1 = model_1.predict(scaled_test_features)
test_pred2 = model_2.predict(scaled_test_features)

# stapel voorspellingen horizontaal en neem het gemiddelde per rij test_preds = np.mean(np.hstack((test_pred1, test_pred2)), axis=1)
Machine Learning voor finance in Python

Het ensemble vergelijken

Model 1 R$^2$-score op testset:

  • -0,179

model 2:

  • -0,148

ensemble (gemiddelde voorspellingen):

  • -0,146
Machine Learning voor finance in Python

Dropout en ensemble!

Machine Learning voor finance in Python

Preparing Video For Download...