Machine Learning for Finance in Python
Nathan George
Data Science Professor
Options to combat overfitting:
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'))
R$^2$ values on AMD without dropout:
With dropout:
# 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)
Model 1 R$^2$ score on test set:
model 2:
ensemble (averaged predictions):
Machine Learning for Finance in Python