Leaderboard w H2O AutoML
Właśnie zacząłem uczyć się korzystania z H2O Auto ML i wypróbowuję binarny model klasyfikacji.
Próbuję zrozumieć, dlaczego rankingi modelu zmieniają się z każdym biegiem.
Top 5 modeli pozostaje w pierwszej piątce, ale modele nieznacznie przechodzą na wyższą lub niższą rangę.
Podczas gdy DRF raz zajął drugie miejsce, innym razem zajął trzecie miejsce.
Istnieje kilka powodów, dla których mogę spekulować, że powoduje to zmiany.
- Ziarno algorytmu zmienia się za każdym razem
- Nie ma przypisanej ramki tabeli liderów
- RF obejmuje losowe pobieranie próbek jako część procesu, w wyniku którego za każdym razem budowane są różne drzewa
- Tablica liderów nie ulegnie zmianie, za zmianę odpowiada inna zmiana danych / kodu.
Czy mógłbyś mi pomóc lepiej to zrozumieć.
Odpowiedzi
Wygląda na to, że nie sadzisz nasionka, więc powinieneś zacząć od tego. Aby algorytmy z wrodzoną losowością (np. XGBoost, GBM, Random Forest) dawały za każdym razem tę samą odpowiedź, należy ustawić losowe ziarno (przynajmniej). W H2O AutoML istnieje jeden seedargument (który jest przesyłany potokiem do wszystkich indywidualnych algorytmów) i jeśli ustawisz go na tę samą wartość za każdym razem, większość modeli będzie taka sama w powtarzających się przebiegach. Domyślnie AutoML przeprowadza również walidację krzyżową z losowymi fałdami, więc gwarantuje to również użycie tych samych fałd za każdym razem.
Jest kilka zastrzeżeń - głębokie uczenie H2O nie jest powtarzalne (domyślnie), nawet jeśli ustawisz ziarno, więc te modele zawsze się zmieniają. Ponieważ zestaw „All Models” Stacked Ensemble korzysta z modeli Deep Learning oprócz kilku innych modeli, ostateczny zestaw również będzie niemożliwy do odtworzenia.
Na koniec powinieneś użyć max_modelszamiast of, max_runtime_secsaby kontrolować, jak długo ma działać AutoML - w przeciwnym razie możesz uzyskać inną liczbę modeli na tablicy wyników (i w zespole All Models Stacked Ensemble) w kolejnych uruchomieniach.