Cześć, Habr! Zapraszamy Data Engineerów i specjalistów ds. Machine Learning na bezpłatną lekcję pokazową . Publikujemy także artykuł Luca Monno — Szefa Analizy Finansowej w CDP SpA.
Jedną z najbardziej użytecznych i prostych metod uczenia maszynowego jest Ensemble Learning. Ensemble Learning to metoda, która stoi u podstaw XGBoost, Baggingu, Lasu Losowego i wielu innych algorytmów.
Na Towards Data Science znajduje się wiele świetnych artykułów, ale wybrałem dwie historie ( i ), które mi się najbardziej spodobały. Dlaczego więc pisać jeszcze jeden artykuł na temat EL? Ponieważ chcę pokazać Wam, jak to działa na prostym przykładzie, który dał mi do zrozumienia, że tutaj nie ma żadnej magii.
Kiedy po raz pierwszy zobaczyłem EL w działaniu (pracując z kilkoma bardzo prostymi modelami regresji), nie mogłem uwierzyć własnym oczom i do dziś pamiętam profesora, który mnie nauczył tej metody.
Miałem dwa różne modele (dwa słabe algorytmy uczenia) z wartościami out-of-sample R² równymi 0,90 i 0,93 odpowiednio. Zanim sprawdziłem wynik, myślałem, że otrzymam R² gdzieś pomiędzy tymi dwoma początkowymi wartościami. Innymi słowy, uważałem, że EL można wykorzystać, aby model działał nie gorzej niż najgorszy, ale też nie tak dobrze, jak mogłaby działać najlepsza model.
Ku mojemu największemu zdziwieniu, wyniki prostego uśredniania prognoz dały R² na poziomie 0,95.
Najpierw zacząłem szukać błędu, ale potem pomyślałem, że może tu kryje się jakaś magia!
Czym jest Ensemble Learning
Dzięki EL można połączyć prognozy dwóch lub więcej modeli, aby uzyskać bardziej niezawodny i wydajny model. Istnieje wiele metodologii pracy z zespołami modeli. Omówię tutaj dwie najprzydatniejsze, aby dać ogólne pojęcie.
Dzięki regresji można uśrednić wyniki istniejących modeli.
Dzięki klasyfikacji można pozwolić modelom na wybór etykiet. Etykieta, która była wybierana najczęściej – ta, która zostanie wybrana przez nowy model.
Dlaczego EL działa lepiej
Głównym powodem, dla którego EL działa lepiej, jest to, że każde przewidywanie ma błąd (wiemy to z teorii prawdopodobieństwa), łączenie dwóch przewidywań może pomóc zmniejszyć błąd, a tym samym poprawić wyniki (RMSE, R² itd.).
Na następującym wykresie przedstawiono, jak dwa słabe algorytmy działają na zestawie danych. Pierwszy algorytm ma większy współczynnik kątowy, niż powinien, podczas gdy drugi jest prawie równy zeru (prawdopodobnie z powodu nadmiernej regularyzacji). Ale ensemble pokazuje znacznie lepszy wynik.
Patrząc na wskaźnik R², dla pierwszego i drugiego algorytmu treningowego będzie on wynosil -0,01¹, 0,22, odpowiednio, podczas gdy dla zespołu wyniesie 0,73.

Istnieje wiele powodów, dla których algorytm może okazać się złym modelem, nawet na tak podstawowym przykładzie jak ten: być może zdecydowałeś się wykorzystać regularyzację, aby uniknąć przeuczenia, lub postanowiłeś nie wykluczać niektórych anomalii, a może użyłeś regresji wielomianowej i dopasowałeś niewłaściwy stopień (na przykład używałeś wielomianu drugiego stopnia, a w danych testowych widoczna była wyraźna asymetria, dla której lepiej pasowałby stopień trzeci).
Kiedy EL działa lepiej
Przyjrzyjmy się dwóm algorytmom uczącym działającym na tych samych danych.

Widać, że połączenie dwóch modeli nie poprawiło znacząco wydajności. Początkowo dla dwóch algorytmów treningowych wskaźniki R² wynosiły -0,37 i 0,22 odpowiednio, a dla zespołu -0,04. Oznacza to, że model EL uzyskał średnią wartość wskaźników.
Jednak między tymi dwoma przykładami istnieje duża różnica: w pierwszym przykładzie błędy modeli były negatywnie skorelowane, a w drugim – pozytywnie (współczynniki trzech modeli nie były oszacowane, a po prostu zostały wybrane przez autora jako przykład).
W związku z tym, Ensemble Learning może być wykorzystane do poprawy równowagi między stronniczością a wariancją w dowolnych przypadkach, ale gdy błędy modeli nie są pozytywnie skorelowane, użycie EL może prowadzić do wzrostu wydajności..
Jednorodne i różnorodne modele
Ensemble Learning często jest stosowane na jednorodnych modelach (jak w tym przykładzie lub w lesie losowym), ale w rzeczywistości można łączyć różne modele (regresję liniową + sieć neuronową + XGBoost) z różnymi zestawami zmiennych objaśniających. Prawdopodobnie doprowadzi to do nieskorelowanych błędów i zwiększenia wydajności.
Porównanie z dywersyfikacją portfela
Ensemble Learning działa na podobnej zasadzie jak dywersyfikacja w teorii portfela, ale tym lepiej dla nas.
Przy dywersyfikacji starasz się zmniejszyć rozrzut swoich wskaźników, inwestując w nieskorelowane akcje. Dobrze zdywersyfikowany portfel akcji da wynik lepszy niż najgorsza pojedyncza akcja, ale nigdy nie lepszy niż najlepsza.
Cytując Warrena Buffetta:
„Dywersyfikacja to ochrona przed niewiedzą, dla kogoś, kto nie wie, co robi, nie ma ona [dywersyfikacja] większego sensu.”
W uczeniu maszynowym Ensemble Learning pomaga zmniejszyć rozrzut twojego modelu, ale może to prowadzić do stworzenia modelu o ogólnej wydajności lepszej niż najlepszy pierwotny model.
Podsumujmy
Łączenie kilku modeli w jeden to stosunkowo prosty sposób, który może pomóc rozwiązać problem rozrzutu i zwiększyć wydajność.
Jeśli masz dwa lub więcej modeli, które dobrze działają, nie wybieraj między nimi: używaj ich wszystkich (ale ostrożnie)!
Czy interesuje Cię rozwój w tym kierunku? Zapisy na bezpłatną lekcję demonstracyjną i weź udział w — Inżynier Machine Learning w Mail.ru Group.
Źródło: habr.com
