Maschinelles Lernen für Finanzen in Python
Nathan George
Data Science Professor

Wenn Vorhersage und Ziel dieselbe Richtung haben:
Sonst:
import tensorflow as tf
import tensorflow as tf# Loss-Funktion erstellen def mean_squared_error(y_true, y_pred):
import tensorflow as tf # Loss-Funktion erstellen def mean_squared_error(y_true, y_pred):loss = tf.square(y_true - y_pred) return tf.reduce_mean(loss, axis=-1)
import tensorflow as tf # Loss-Funktion erstellen def mean_squared_error(y_true, y_pred): loss = tf.square(y_true - y_pred) return tf.reduce_mean(loss, axis=-1)# Verwendung der Loss in keras aktivieren import keras.losses keras.losses.mean_squared_error = mean_squared_error
# Modell mit unserer MSE-Loss-Funktion fitten
model.compile(optimizer='adam', loss=mean_squared_error)
history = model.fit(scaled_train_features, train_targets, epochs=50)
tf.less(y_true * y_pred, 0)
Richtige Richtung:
Falsche Richtung:
# Loss-Funktion erstellen
def sign_penalty(y_true, y_pred):
penalty = 10.
loss = tf.where(tf.less(y_true * y_pred, 0),
penalty * tf.square(y_true - y_pred),
tf.square(y_true - y_pred))
# Loss-Funktion erstellen def sign_penalty(y_true, y_pred): penalty = 100. loss = tf.where(tf.less(y_true * y_pred, 0), penalty * tf.square(y_true - y_pred), tf.square(y_true - y_pred)) return tf.reduce_mean(loss, axis=-1)# Verwendung der Loss in keras aktivieren keras.losses.sign_penalty = sign_penalty
# Modell erstellen
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'))
# Modell mit unserer 'sign_penalty'-Loss-Funktion fitten
model.compile(optimizer='adam', loss=sign_penalty)
history = model.fit(scaled_train_features, train_targets, epochs=50)
train_preds = model.predict(scaled_train_features)
# Vorhersagen vs. Istwerte als Scatterplot
plt.scatter(train_preds, train_targets)
plt.xlabel('predictions')
plt.ylabel('actual')
plt.show()

Maschinelles Lernen für Finanzen in Python