Ostatnimi modelami, które wypróbuję będą las losowy i XGBoost. Sprawdźmy jak dobre rezultaty uda się uzyskać wykorzystując te algorytmy oparte na drzewach decyzyjnych.
Las losowy
Zaczynam od lasu losowego z intuicyjnie dobranymi parametrami:
- liczba drzew – 300,
- liczba zmiennych losowanych przy każdym podziale – 7
- minimalny rozmiar liścia – 150
Do walidacji używam metody k-fold z k=4.
Uzyskane wyniki na zbiorze walidacyjnym to:
- ROC AUC: 0.638
- Dokładność: 60,6%
Do wyniku bukmacherów jeszcze trochę brakuje. Biorąc jednak pod uwagę nieskomplikowanie modelu i konstrukcję zmiennych, myślę, że możemy już być zadowoleni z tego wyniku.
XGBoost
Do tuningu parametrów w przypadku XGBoost używam pakietu RBayesianOptimization, który ma być lepszym wyborem niż standardowy random search. Po optymalizacji uzyskałem wynik niewiele lepszy od lasu losowego. Nie ma tutaj większej różnicy. Metryki na zbiorze walidacyjnym wyglądają następująco:
- ROC AUC: 0.640
- Dokładność: 60.9%
Parametry modelu to:
Myślę, że jak na tak prostą konstrukcję zmiennych to wynik nie jest zły. Weźmy pod uwagę, że w wystawianie kursów przez bukmacherów są zaangażowane całe działy specjalistów z dostępem do dużo bardziej szczegółowych danych. Tak przynajmniej to sobie wyobrażam 🙂
Zastanawiam się o ile jeszcze jestem w stanie poprawić ten wynik. Poświęcę chyba jeszcze trochę czasu na wygenerowanie większej liczby zmiennych i sprawdzę co da się z tym zrobić.