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



08.02.2021

Malwarebytes bezpieczne

Pokłosie Sunburst
08.02.2021

Microsoft i Linux

Endpoint Detection and Response
08.02.2021

Bezpieczeństwo chmury

Bitdefender Security for AWS
05.02.2021

Google ogranicza

Koniec z synchronizacją
05.02.2021

Intel NUC 11 Pro Mini PC

Intel poszerzył swoją linię miniaturowych komputerów klasy NUC do zastosowań biznesowych.
05.02.2021

Aktualizacja Dynabooków

Tecra A30-J oraz Satellite Pro: C40 i L50-J
04.02.2021

Punkty Wi-Fi 6

D-Link AX3600 i AX1800
04.02.2021

Inteligentny monitoring

QNAP Guardian PoE QGD-3014-16PT
04.02.2021

Secure SD-WAN dla OT

FortiGate Rugged 60F

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.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

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