Chapter 3
Chapter 3
Chapter 3
KNN Regression
MACHINE LEARNING FOR FINANCE IN PYTHON
Nathan George
Data Science Professor
MACHINE LEARNING FOR FINANCE IN PYTHON
Feature selection: remove weekdays
print(feature_names) print(feature_names[:-4])
['10d_close_pct', ['10d_close_pct',
'14-day SMA', '14-day SMA',
'14-day RSI', '14-day RSI',
'200-day SMA', '200-day SMA',
'200-day RSI', '200-day RSI',
'Adj_Volume_1d_change', 'Adj_Volume_1d_change',
'Adj_Volume_1d_change_SMA', 'Adj_Volume_1d_change_SMA']
'weekday_1',
'weekday_2',
'weekday_3',
'weekday_4']
min-max
standardization
median-MAD
sc = scaler()
scaled_train_features = sc.fit_transform(train_features)
scaled_test_features = sc.transform(test_features)
Nathan George
Data Science Professor
MACHINE LEARNING FOR FINANCE IN PYTHON
Neural networks have potential
Neural nets have:
non-linearity
variable interactions
customizability
model = Sequential()
model.add(Dense(50,
input_dim=scaled_train_features.shape[1],
activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='linear'))
0.4771387560719418
Nathan George
Data Science Professor
MACHINE LEARNING FOR FINANCE IN PYTHON
MSE with directional penalty
If prediction and target direction match:
∑(y − y^)2
If not:
Correct direction:
Wrong direction:
Nathan George
Data Science Professor
MACHINE LEARNING FOR FINANCE IN PYTHON
Simplify your model
Dropout
Autoencoder architecture
Early stopping
Ensembling
train: 0.91
test: -0.72
With dropout:
train: 0.46
test: -0.22
-0.179
model 2:
-0.148
-0.146