Přeučení a ensembling

Machine Learning for Finance in Python

Nathan George

Data Science Professor

přeučení

Machine Learning for Finance in Python

Zjednodušte svůj model

zjednodušená síť

Machine Learning for Finance in Python

Možnosti neuronové sítě

Možnosti pro boj s přeučením:

  • Snížení počtu uzlů
  • Regularizace L1/L2
  • Dropout
  • Architektura autoencoderu
  • Předčasné zastavení
  • Přidání šumu do dat
  • Omezení maximální normy
  • Ensembling
Machine Learning for Finance in Python

Dropout

dropout

Machine Learning for Finance in Python

Dropout v 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 for Finance in Python

Srovnání na testovací sadě

Hodnoty R$^2$ pro AMD bez dropoutu:

  • trénink: 0.91
  • test: -0.72

S dropoutem:

  • trénink: 0.46
  • test: -0.22
Machine Learning for Finance in Python

Ensembling

náhodný les

Machine Learning for Finance in Python

Implementace ensemblingu

# make predictions from 2 neural net models
test_pred1 = model_1.predict(scaled_test_features)
test_pred2 = model_2.predict(scaled_test_features)

# horizontally stack predictions and take the average across rows test_preds = np.mean(np.hstack((test_pred1, test_pred2)), axis=1)
Machine Learning for Finance in Python

Srovnání ensemblu

Skóre R$^2$ modelu 1 na testovací sadě:

  • -0.179

Model 2:

  • -0.148

Ensemble (průměr predikcí):

  • -0.146
Machine Learning for Finance in Python

Dropout a ensemble!

Machine Learning for Finance in Python

Preparing Video For Download...