+ - 0:00:00
Notes for current slide
Notes for next slide

Metody przetwarzania
i analizy danych

Klasyfikacja

© Łukasz Wawrowski

1 / 35

Podział metod

Uczenie nadzorowane - końcowy wynik jest znany

  • klasyfikacja

  • regresja

Uczenie nienadzorowane - końcowy wynik nie jest znany

  • grupowanie obiektów

  • grupowanie cech

2 / 35

Podział metod

3 / 35

Klasyfikacja

  • dane tabelaryczne

  • obrazy

  • teksty

4 / 35

Klasyfikacja

  • binarna (binary) - tylko dwa warianty: zachorowanie, spłata kredytu

  • wieloklasowa (multiclass) - typ klienta

  • wieloetykietowa (multilabel) - gatunek filmu

A visual introduction to machine learning

Model Tuning and the Bias-Variance Tradeoff

5 / 35

Przykład

German credit data

  1. Age (numeric)
  2. Sex (text: male, female)
  3. Job (numeric: 0 - unskilled and non-resident, 1 - unskilled and resident, 2 - skilled, 3 - highly skilled)
  4. Housing (text: own, rent, or free)
  5. Saving accounts (text - little, moderate, quite rich, rich)
  6. Checking account (text, little, moderate, rich)
  7. Credit amount (numeric, in DM)
  8. Duration (numeric, in month)
  9. Purpose (text: car, furniture/equipment, radio/TV, domestic appliances.. and so on...)
  10. Risk (text: good/bad): it's our Target Variable, describes if client paid or didn't pay loan
6 / 35

Zadanie

Proszę utworzyć nową zmienną o nazwie installment, która będzie zawierała wysokość raty.

05:00
7 / 35

Podział danych

  • dane uczące (treningowe) - zbiór przykładów używanych do dopasowania parametrów algorytmu

  • dane testowe - niezależny od danych uczących zbiór przykładów o takim samym rozkładzie jak dane uczące

  • dane walidacyjne - zbiór przykładów używanych do dopasowania hiperparametrów

Często nazewnictwo danych testowych i walidacyjnych jest mylone.

Wikipedia

Pakiet rsample zawiera funkcje do podziału zbiorów.

8 / 35

Algorytmy

  • white-box: regresja logistyczna, drzewa decyzyjne

  • black-box: sieci neuronowe, XGBoost

Niektóre z metod opierają się na losowości i wyniki mogą się wtedy nieznacznie różnić pomiędzy uruchomieniami. Aby tego uniknąć można zastosować ziarno generatora set.seed().

9 / 35

Złożoność modelu

10 / 35

Złożoność modelu

11 / 35

Frameworki do ML

Istnieje wiele pakietów implementujących różne algorytmy ML (sprawdź na Machine Learning Task View). Można korzystać z nich pojedynczo, ale nie są w żadnej sposób wystandaryzowane: różne nazwy argumentów i struktury obiektów wynikowych.

Pakiety mające na celu integrację różnych algorytmów:

12 / 35

Drzewa decyzyjne

Źródło

13 / 35

Drzewa decyzyjne

14 / 35

Drzewa decyzyjne

15 / 35

Drzewa decyzyjne

16 / 35

Drzewa decyzyjne

17 / 35

Drzewa decyzyjne

18 / 35

Drzewa decyzyjne

19 / 35

Pakiet rpart

Pakiet rpart umożliwia tworzenie prostych drzew decyzyjnych. Do wizualizacji tychże najlepiej wykorzystać pakiet rpart.plot, który tworzy drzewa bardziej atrakcyjne wizualnie.

W przypadku klasyfikacji binarnej każdy węzeł prezentuje:

  • prognozowaną klasę

  • prawdopodobieństwa zaklasyfikowania do klasy pozytywnej

  • odsetek obserwacji w węźle

Pakiet caret zawiera wiele funkcji przydatnych w klasyfikacji.

20 / 35

Macierz pomyłek (confusion matrix)

Źródło

21 / 35

Miary

Wyniki klasyfikacji można oceniać za pomocą wielu miar:

  • Dokładność (accuracy): % poprawnie zaklasyfikowanych

  • Precyzja (precison): % poprawnie rozpoznanych przypadków pozytywnych TP/(TP+FP)

  • Czułość (sensitivity/recall): % prawdziwie pozytywnych TP/(TP+FN)

  • Swoistość (specificity): % prawdziwie negatywnych TN/(TN+FP)

  • F1: średnia harmoniczna z czułości i precyzji 2TP/(2TP+FP+FN)

22 / 35

SVM - maszyna wektorów nośnych

23 / 35

SVM - maszyna wektorów nośnych

24 / 35

Lasy losowe

  1. Weź zbiór danych
  2. Wybierz n drzew do zbudowania
  3. Dla wartości od i=1 do n:
  4. | Wylosuj próbę bootstrapową
  5. | Stwórz drzewo na podstawie wylosowanych danych
  6. | Dla każdego podziału
  7. | | Wylosuj m zmiennych ze wszystkich p zmiennych
  8. | | Wybierz najlepszą zmienną do podziału
  9. | | Stwórz podział
  10. | Zakończ proces budowy drzewa kiedy kryterium jest optymalne
  11. Zwróć zbiór wynikowych drzew

Źródło

Pakiet ranger zawiera szybką implementację lasów losowych.

25 / 35

Boosting gradientowy

26 / 35

Pakiet h2o

H2O is an open source, in-memory, distributed, fast, and scalable machine learning and predictive analytics platform that allows you to build machine learning models on big data and provides easy productionalization of those models in an enterprise environment.

  • wiele algorytmów

  • wbudowane metody Explainable AI (XAI) (patrz też: DrWhy)

  • interfejs graficzny h2o.flow()

  • automatyczny dobór modelu h2o.automl() - webinar

27 / 35

Walidacja krzyżowa

Źródło

28 / 35

Tuning hiperparametrów

Domyślne parametry modelu nie muszą dawać najlepszych rezultatów. W celu ulepszenia klasyfikatora stosuje się metody przeszukiwania parametrów.

  • learning rate

  • max depth

  • number of trees

  • sample rate

Można przeszukiwać całą przestrzeń parametrów (intensywne obliczeniowo) albo losowo.

29 / 35

Kod w h2o

gbm_params <- list(learn_rate = seq(0.01, 0.1, 0.01),
max_depth = seq(2, 10, 1),
sample_rate = seq(0.5, 1.0, 0.1),
col_sample_rate = seq(0.1, 1.0, 0.1),
ntrees = seq(50,150,10))
search_criteria <- list(strategy = "RandomDiscrete", max_models = 36, seed = 1)
gbm_grid <- h2o.grid(algorithm = "gbm",
x = x_var,
y = y_var,
grid_id = "gbm_grid1",
training_frame = train_data_h2o,
validation_frame = test_data_h2o,
seed = 1,
hyper_params = gbm_params,
search_criteria = search_criteria)
gbm_gridperf <- h2o.getGrid(grid_id = "gbm_grid",
sort_by = "auc",
decreasing = TRUE)
m4 <- h2o.getModel(gbm_gridperf@model_ids[[1]])
30 / 35

Symulacja wyniku biznesowego

  • średnia kwota kredytu: 3500

  • marża na spłaconym kredycie: 20%

  • strata na niespłaconym kredycie: 50%

wynik=TP(35000,2)FP(35000,5)

31 / 35

Krzywa ROC

Krzywa ROC to jeden ze sposobów wizualizacji jakości klasyfikacji, pokazujący zależności wskaźników TPR (True Positive Rate) oraz FPR (False Positive Rate).

  1. obliczamy prawdopodobieństwo klasyfikacji do danej klasy

  2. testujemy wiele progów prawdopodobieństwa (domyślnie 0,5)

  3. dla każdego progu obliczamy macierz pomyłek

Pole pod krzywą ROC - AUC (Area under curve) jest jedną z miar jakości klasyfikacji. AUC = 1 (klasyfikator idealny), AUC = 0.5 (klasyfikator losowy), AUC < 0.5 (klasyfikator gorszy od losowego).

Źródło

32 / 35

Objaśnianie modelu

  • Ważność cech - jak bardzo model wykorzystuje daną cechę do predycji.

  • Partial dependency plots - jak zmienia się prawdopodobieństwo klasyfikacji w zależności od predyktora.

Explanatory Model Analysis

Interpretable Machine Learning

33 / 35

Zadanie

Przeprowadź klasyfikację mieszkań ze względu na miejsce.

homes <- read_csv("http://www.wawrowski.edu.pl/data/sf_ny_homes.csv")
homes <- homes %>%
mutate(in_sf=as.factor(in_sf))
34 / 35

Pytania?

35 / 35

Podział metod

Uczenie nadzorowane - końcowy wynik jest znany

  • klasyfikacja

  • regresja

Uczenie nienadzorowane - końcowy wynik nie jest znany

  • grupowanie obiektów

  • grupowanie cech

2 / 35
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow