Mulai sekarangMulai gratis

Fungsi loss kustom

Sampai sekarang, kita menggunakan mean squared error sebagai fungsi loss. Ini baik-baik saja, tetapi untuk prediksi harga saham ada kalanya berguna membuat fungsi loss kustom. Fungsi loss kustom dapat membantu meningkatkan kinerja model dengan cara-cara spesifik yang kita inginkan. Misalnya, kita akan membuat fungsi loss kustom dengan penalti besar jika memprediksi pergerakan harga dengan arah yang salah. Ini akan membantu jaringan kita belajar untuk setidaknya memprediksi arah pergerakan harga yang benar.

Untuk melakukannya, kita perlu menulis fungsi yang menerima argumen (y_true, y_predicted). Kita juga akan menggunakan fungsionalitas dari backend keras (menggunakan tensorflow) untuk mencari kasus ketika nilai sebenarnya dan prediksi memiliki tanda yang berbeda, lalu memberi penalti pada kasus-kasus tersebut.

Latihan ini merupakan bagian dari kursus

Machine Learning untuk Keuangan dengan Python

Lihat Kursus

Instruksi latihan

  • Atur argumen fungsi sign_penalty() menjadi y_true dan y_pred.
  • Kalikan squared error (tf.square(y_true - y_pred)) dengan penalty ketika tanda y_true dan y_pred berbeda.
  • Kembalikan nilai rata-rata dari variabel loss dari fungsi — ini adalah mean squared error (dengan penalti untuk tanda aktual vs prediksi yang berlawanan).

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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)
Edit dan Jalankan Kode