1. Nauka
  2. /
  3. Kursy
  4. /
  5. Uczenie maszynowe w finansach z Pythonem

Connected

ćwiczenie

Niestandardowa funkcja straty

Do tej pory korzystaliśmy ze średniego błędu kwadratowego jako funkcji straty. Sprawdza się to dobrze, jednak przy przewidywaniu cen akcji warto czasem zaimplementować własną funkcję straty. Taka niestandardowa funkcja może pomóc poprawić działanie modelu w wybrany przez nas sposób. Na przykład stworzymy teraz funkcję straty z wysoką karą za przewidywanie ruchów ceny w złym kierunku. Dzięki temu sieć nauczy się przynajmniej poprawnie przewidywać kierunek zmian ceny.

Aby to zrobić, musimy napisać funkcję przyjmującą argumenty (y_true, y_predicted). Skorzystamy też z funkcjonalności backendu keras (opartego na tensorflow), aby wykryć przypadki, w których prawdziwa wartość i predykcja mają różne znaki, a następnie nałożyć na nie karę.

Instrukcje

100 XP
  • Ustaw argumenty funkcji sign_penalty() jako y_true i y_pred.
  • Pomnóż błąd kwadratowy (tf.square(y_true - y_pred)) przez penalty w przypadkach, gdy znaki y_true i y_pred są różne.
  • Zwróć średnią zmiennej loss z funkcji – jest to średni błąd kwadratowy (z naszą karą za przeciwne znaki wartości rzeczywistych i predykcji).