BaşlayınÜcretsiz başlayın

Ö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

Kursa Göz Atın

Egzersiz talimatları

  • sign_penalty() fonksiyonunun argümanlarını y_true ve y_pred olarak ayarla.
  • y_true ve y_pred işaretleri farklı olduğunda karesel hatayı (tf.square(y_true - y_pred)) penalty ile çarp.
  • Fonksiyondan loss değ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)
Kodu Düzenle ve Çalıştır