Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



23.09.2021

5 edycja konferencji Test...

21 października startuje kolejna, piąta już edycja największej w Polsce konferencji...
23.09.2021

Zero Trust Firewall

FortiGate 3500F
23.09.2021

Ochrona IoT

Kaspersky SHS
23.09.2021

Wydatki lobbingowe

Cyfrowy monopol
23.09.2021

Współdziałanie klastrów

SUSE Rancher 2.6
23.09.2021

Panasonic TOUGHBOOK 55

Najnowsza wersja wszechstronnego Panasonic TOUGHBOOK 55 to wytrzymały notebook typu...
23.09.2021

Elastyczna dystrybucja...

Liebert RXA i MBX
23.09.2021

Zdalny podgląd w 360°

D-Link DCS-8635LH
23.09.2021

Sejf na dane

Szyfrowany pendrive

Ocena, optymalizacja i wdrożenie modelu uczenia maszynowego

Data publikacji: 04-02-2021 Autor: Marcin Szeliga

Jakość modeli uczenia maszynowego zależy od dwóch czynników: jakości danych treningowych oraz architektury modelu, czyli zastosowanego algorytmu uczenia i konfiguracji jego hiperparametrów. Uzyskanie dobrych wyników eksperymentów uczenia maszynowego wymaga odpowiedniego przygotowania danych i optymalizacji modelu względem wybranego kryterium jego jakości.

 

W pierwszej części artykułu poznaliśmy rozwiązywany problem (przebieg katastrofy Titanica), oceniliśmy dostępne dane (informacje o pasażerach tragicznego rejsu) i zbudowaliśmy pierwszy model (klasyfikator XGBoost oceniający szanse poszczególnych osób na przeżycie katastrofy). W tej części przyjrzymy się metodom oceny jakości modeli uczenia maszynowego, technikom przygotowania danych na potrzeby tych modeli, powszechnie stosowanym metodom optymalizacji modeli oraz wdrożymy najlepszy model do użycia.


> Ocena modelu

 

Po wykonaniu eksperymentu na wyjściu modułu Evalute Model będziemy mogli zobaczyć metryki jakości naszego modelu. Wybierając lewe wejście, zobaczymy błędy treningowe, zaś po wybraniu prawego wejścia zobaczymy błędy testowe – to one są przede wszystkim obiektem naszego zainteresowania. Zacznijmy od macierzy pomyłek dla danych testowych:

 

  • predykcja pozytywna, klasa pozytywna – 69;
  • predykcja pozytywna, klasa negatywna – 12;
  • predykcja negatywna, klasa pozytywna – 48;
  • predykcja negatywna, klasa negatywna – 138.

 

Jak widać, model pomylił się 12 razy, uznając, że osoba, która zginęła w katastrofie, ją przeżyje, oraz 48 razy uznając, że osoba, która przeżyła katastrofę, zginie w niej. Na tej podstawie możemy ocenić jakość modelu. W tym celu policzymy jego precyzję i czułość.


Precyzja odpowiada na pytanie: ile z pozytywnie sklasyfikowanych przypadków zostało dobrze sklasyfikowanych? W tym wypadku wynosi ona:
Precyzja = 69/(69+12) = 0,852.


Czułość natomiast odpowiada na pytanie: ile z pozytywnych przypadków zostało dobrze sklasyfikowanych? Wynosi więc:
Czułość = 69/(69+48) = 0,59.

 

Obie te miary się uzupełniają – łatwo można poprawić precyzję kosztem czułości i na odwrót. Jeżeli koszt obu rodzajów błędów jest podobny, do oceny jakości modelu powinniśmy użyć średniej obu miar. Ale że precyzja i czułość mierzą proporcję, powinna to być średnia harmoniczna, a nie arytmetyczna. Taką miarą jest F-miara:

 

F – miara = 2 × precyzja × czułość/precyzja + czułość

Zakres wartości F-miary wynosi od 0 do 1, gdzie 1 oznacza model bezbłędny. Zobaczmy jakie wyniki otrzymał nasz pierwszy model otrzymał wynik 0,893 dla danych treningowych oraz 0,697 dla danych testowych. Mogłoby się wydawać, że wynik 0,697 jest całkiem dobry. Ale zwróćmy uwagę na dużą różnicę pomiędzy błędem treningowym a testowym. To wyraźny znak nadmiernego dopasowania modelu do danych treningowych. Ponadto trafność modelu jest tylko o 10% wyższa od trafności losowego zgadywania (pamiętajmy, że ponad 75% pasażerów zginęło w katastrofie). Wnioski nasuwają się same – musimy poprawić nasz model.

 

> Przygotowanie danych

 

Przekonaliśmy się właśnie, że dane źródłowe nigdy nie są gotowe do analizy, niezależnie od tego, jak są zbierane i przetwarzane. Dlatego zawsze konieczne jest ich przygotowanie. W tym wypadku będzie ono obejmowało redukcję wymiarowości, uzupełnienie brakujących wartości, normalizację zmiennych numerycznych i zakodowanie zmiennej tekstowej.

 

Redukcja wymiarowości

 

Najprostszą metodą redukcji wymiarowości jest usuwanie nieprzydatnych zmiennych wejściowych, czyli zmiennych nieskorelowanych w żaden sposób z wyjściową. Do znalezienia nieprzydatnych zmiennych użyjemy modułu Filter Based Feature Selection. Po podłączeniu go do wyjścia modułu Titanic należy wskazać zmienną wyjściową Survived oraz wybrać metodę oceniania korelacji. Ponieważ jest to zmienna kategoryczna, wybierzemy test chi-kwadrat. Polega on na zsumowaniu różnić, pomiędzy obserwowanymi i spodziewanymi wartościami tabeli częstości. Przypuść­my, że chcemy usunąć dwie najsłabiej skorelowane zmienne wejściowe, czyli musimy ograniczyć liczbę zmiennych do 9. Po uruchomieniu na prawym wyjściu modułu otrzymamy wyczyszczony zbiór, a na lewym wyniki testu chi-kwadrat. W ten sposób usnęliśmy zmienne PassangerID oraz Embarked.

 

Uzupełnienie brakujących wartości


Do uzupełnienia brakujących wartości użyjemy modułu Clean Missing Data. Najpierw uzupełnimy brakujący wiek pasażerów. Po dodaniu modułu należy połączyć go z pierwszym wyjściem modułu Filter Based Feature Selection. Następnie wybierzemy uzupełnianą zmienną Age i metodę jej uzupełniania – Replace with median. Drugą zmienną z brakującymi wartościami jest Cabin. W jej wypadku to, czy dana osoba podróżowała w kabinie, czy nie, może być ważniejsze od samego numeru kabiny. Dlatego zastąpimy ją zmienną Cabin_IsMissing>, której wartości ustawimy na 1 dla przykładów, w których wartość zmiennej Cabin była brakująca, i na 0 dla pozostałych przykładów. Zrobimy to również za pomocą modułu Clean Missing Data. Tym razem po dodaniu modułu i połączeniu go z wyjściem wcześniej dodanego modułu Clean Missing Data należy wybrać zmienną Cabin, zastąpić brakujące wartości dowolną stałą (np. 0) i zaznaczyć pole wyboru Generate missing value indicator column. Następnie za pomocą modułu Select columns in Dataset należy usunąć kolumnę Cabin. Przy okazji usuniemy też zmienną Ticket.

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie, jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"