Özel loss fonksiyonu
Şu ana kadar loss fonksiyonu olarak mean squared error kullandık. Bu genelde iyi çalışır, ancak hisse senedi fiyat tahmininde özel bir loss fonksiyonu uygulamak faydalı olabilir. Özel bir loss fonksiyonu, modelimizin performansını seçtiğimiz belirli şekillerde iyileştirmeye yardımcı olabilir. Örneğin, yanlış yönde fiyat hareketi tahmini yapıldığında büyük ceza veren özel bir loss fonksiyonu oluşturacağız. Bu, ağımızın en azından fiyat hareketlerinin yönünü doğru tahmin etmeyi öğrenmesine yardımcı olur.
Bunu yapmak için (y_true, y_predicted) argümanlarını alan bir fonksiyon yazmamız gerekiyor. Ayrıca, gerçek değer ile tahminin işaretlerinin uyuşmadığı durumları bulmak ve bu durumları cezalandırmak için arka uçta keras (ve tensorflow) işlevselliğini kullanacağız.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
sign_penalty()fonksiyonunun argümanlarınıy_truevey_predolarak ayarla.y_truevey_predişaretleri farklı olduğunda karesel hatayı (tf.square(y_true - y_pred))penaltyile çarp.- Fonksiyondan
lossdeğişkeninin ortalamasını döndür — bu, mean squared error’dür (gerçek değer ile tahminlerin zıt işaretli olduğu durumlara verdiğimiz ceza ile).
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
import keras.losses
import tensorflow as tf
# Create loss function
def sign_penalty(____, ____):
penalty = 100.
loss = tf.where(tf.less(y_true * y_pred, 0), \
____ * tf.square(y_true - y_pred), \
tf.square(y_true - y_pred))
return tf.reduce_mean(____, axis=-1)
keras.losses.sign_penalty = sign_penalty # enable use of loss with keras
print(keras.losses.sign_penalty)