Uczenie maszynowe w R

Dariusz Brzeziński

Część II: Regresja i miary oceny

Agenda

  • Regresja za pomocą caret
  • Miary ocen
    • macierz pomyłek
    • miary jedno- i wielo-klasowe
    • rankery
    • krzywa ROC
    • klasyfikatory probabilistyczne

Uczenie maszynowe - przypomnienie

  • Nadzorowane
    • klasyfikacja (Logistic Regression, CART, ID3, ANN, Ripper, PART, Bagging, Boosting, Random Forest)
    • regresja (regresja liniowa, regresja nieliniowa, GBM, SGD)
  • Nienadzorowane
    • grupowanie (k-means, AHC, DBSCAN, OPTICS, Birch, SOM)
    • reguły asocjacyjne (Apriori, FP-Growth)

Zadanie z poprzednich zajęć

  • Załaduj zbiór danych churn:
library(modeldata)
data(mlc_churn)
churnData <- data.frame(mlc_churn)
  • Podziel ten zbiór na uczący i testowy (75% w zbiorze uczącym)
  • Przetestuj dwa algorytmy klasyfikacyjne
  • Zastanów się czy warto wstępnie przetworzyć zbiór
  • Określ przestrzeń przeszukiwania parametrów
  • Porównaj algorytmy za pomocą wykresu

Regresja

Problem analogiczny do klasyfikacji, w którym należy przewidzieć wartość liczbową. Wiele algorytmów klasyfikacji ma swoje odpowiedniki dla regresji (np. drzewa decyzyjne, k-NN, sieci neuronowe).

Stratyfikacja danych w regresji wymaga dbania o podobieństwo rozkładów danych uczących i testowych.

Regresja

library(caret)
library(ggplot2)

idx <- createDataPartition(diamonds$price,
                           p=0.7, list=F)
d1 <- data.frame(price=diamonds[idx,]$price)
d2 <- data.frame(price=diamonds[-idx,]$price)

ggplot(mapping=aes(alpha=0.4)) +
 geom_density(aes(price, fill="red"), d1) +
 geom_density(aes(price, fill="blue"), d2) +
 theme_minimal()

Regresja

plot of chunk unnamed-chunk-4

Zadanie z regresji

  • Załaduj zbiór diamonds:
library(ggplot2)
  • Podziel zbiór na uczący i testowy w proporcjach 70%-30%
  • Stwórz model regresyjny, który przewidzi cenę diamentu na podstawie wartości pozostałych parametrów
  • W trakcie pracy przypatrz się wpływowi różnych zmiennych na cenę diamentu

Miary oceny

Miary oceny sterują wyborem modelu klasyfikacyjnego, regresji czy grupowania.

Zły wybór miary oceny może spowodować, że przeszacujemy zdolności predykcyjne algorytmu.

Miary oceny

Taksonomia miar oceny klasyfikatorów i regresorów

(Japkowicz & Shah, 2014)

Macierz pomyłek

Większość miar oceny klasyfikatorów oparta jest na macierzy pomyłek (ang. confusion matrix)

Actual \ Predicted Positive Negative total
Positive \( \mathit{TP} \) \( \mathit{FN} \) \( P \)
Negative \( \mathit{FP} \) \( \mathit{TN} \) \( N \)
total \( \widehat{P} \) \( \widehat{N} \) \( n \)

Miary oceny - przykłady

\[ \begin{align} \text{Accuracy}& =\frac{\mathit{TP}+\mathit{TN}}{\mathit{TP}+\mathit{TN}+\mathit{FP}+\mathit{FN}}\\\\ \text{Balanced accuracy}& = \frac{1}{2}(\frac{\mathit{TP}}{P} + \frac{\mathit{TN}}{N})\\\\ \text{False negative rate}& = \frac{\mathit{FN}}{\mathit{FN} +\mathit{TP}} = \frac{\mathit{FN}}{P}\\\\ \text{False positive rate}& = \frac{\mathit{FP}}{\mathit{FP}+\mathit{TN}} = \frac{\mathit{FN}}{N} \end{align} \]

Miary oceny - przykłady

\[ \begin{align} \text{Precision}& = \frac{\mathit{TP}}{\mathit{TP}+\mathit{FP}}\\\\ \text{Recall}& = \frac{\mathit{TP}}{\mathit{TP}+\mathit{FN}} = \text{true positive rate}\\\\ \text{F$_{\beta}$-measure}& = (1+\beta^2) \cdot \frac{\text{recall} \cdot \text{precision}}{(\beta^2 \cdot \text{precision}) + \text{recall}}\\\\ \text{G-mean}& = \sqrt{\frac{\mathit{TP}}{\mathit{TP}+\mathit{FN}} \cdot \frac{\mathit{TN}}{\mathit{FP}+\mathit{TN}}}\\\\ &= \sqrt{\text{sensitivity} \cdot \text{specificity}}\\\\ \end{align} \]

Miary oceny - niezbalansowanie klas

Dobór miary do problemu jest szczególnie ważny, gdy dane są niezbalansowane. Wówczas należy określić czy któraś z klas jest bardziej istotna (jest tzw. klasą pozytywną).

Koszt nierozpoznania klasy pozytywnej jest większy niż koszt nierozpoznania klas negatywnej. Jeśli te koszty można łatwo skwantyfikować (np. przekładają się wprost na złotówki), to można określić macierz kosztów.

Część algorytmów klasyfikacji potrafi przyjąć jako parametr macierz kosztów.

Miary oceny - problemy wieloklasowe

Miary takie jak precision, recall, sensitivity, specificity, F-measure nadają się jedynie do klasyfikacji binarnej. Jeżeli te miary mają zostać zastosowane do problemu n-klasowego, należy zbadać n wartości tej miary.

Alternatywą do analizowania wielu wartości jest mikro- i makro-uśrednianie. Mikro-uśrednianie sumuje elementy (pod-)macierzy pomyłek pod-problemów binarnych, a makro-uśrednianie to średnia arytmetyczna tych pod-macierzy.

Miary oceny - uśrednianie

\[ \begin{align} \text{M$_{micro}$}& = M(\sum_{l \in \mathcal{L}}tp_l,\sum_{l \in \mathcal{L}}fp_l,\sum_{l \in \mathcal{L}}fn_l,\sum_{l \in \mathcal{L}}tn_l)\\\\ \text{M$_{macro}$}& = \frac{1}{|\mathcal{L}|}\sum_{l \in \mathcal{L}}M(tp_l, fp_l, fn_l, tn_l),\\\\ \end{align} \]

gdzie \( \mathcal{L} \) to zbiór etykiet klas.

Miary oceny - rankery

Zadaniem podobnym do klasyfikacji binarnej jest uporządkowanie przypadków według pewności przynależności do klasy pozytywnej. Przykładowo chcemy określić klientów do których najlepiej wysłać reklamę w ramach zadanego budżetu.

Klasyfikatory, które zwracają liczbę określającą pewność przynależności do klasy nazywa się rankerami.

Szczególnym typem rankerów są algorytmy przewidujące prawdopodobieństwo przynależności do klasy.

Miary oceny - rankery

Rankery ocenia się za pomocą miar liczących liczbę pomyłek w rankingu. Najpopularniejszą miarą do tego celu jest pole pod krzywą ROC (AUC). Krzywą wykreśla się poprzez zmianę progu klasyfikacyjnego na rankingu zwróconym przez wybrany algorytm.

Analiza krzywej ROC

Miary oceny - ROC

Oprócz analizowania pola pod krzywą można również analizować punkty w przestrzeni ROC. Obliczając tpr i fpr klasyfikator otrzymujemy punkt w przestrzeni. Analiza wielu punktów (różnych klasyfikatorów/różnych parametryzacji klasyfikatora) pozwala określi, które modele są niezdominowane (pareto-optymalne).

W celu porównania wielu rankerów można śledzić kształt ich krzywych ROC. Krzywe ROC tworzy się poprzez łączenie punktów w przestrzeni ROC, które otrzymałoby się zmieniając próg klasyfikatora.

Analiza ROC - jak używać

  1. Problem musi być dwuklasowy
  2. Jeśli chcesz analizować klasyfikatory
    • dla każdego klasyfikator narysuj punkt w przestrzeni ROC
    • szukaj brzegu pareto (punktów niezdominowanych)
  3. Jeśli chcesz znaleźć najlepszy ranker dla danego budżetu
    • ustal próg klasyfikatora zgodnie z budżetem
    • dalej jak punkt 2.

Analiza ROC - jak używać

  1. Jeśli chcesz stroić próg klasyfikatora
    • klasyfikator musi zwracać liczbę (ranker)
    • ustal akceptowalne fpr
    • sprawdź który algorytm i ma najlepszy tpr dla wybranego fpr
    • sparwdź jaki próg odpowiada najlepszemu punktowi
  2. Jeśli nie znasz budżetu dla rankera
    • policz pole pod krzywą ROC
    • wybierz model z największym polem

Miary oceny - prawdopodobieństwa

Klasyfikatory zwracające prawdopodobieństwo można oceniać miarami stosowanymi do problemow regresji.

Nie dla każdego algorytmu zwracane pradopodobieństwa odpowiadają prawdopodobieństwu poprawnej odpowiedzi. Proces dopasowywania prawdopodobieństw zwracanych przez klasyfikator do rozkładów nazywa się kalibracją.

Podsumowanie

  • Regresja za pomocą caret
  • Miary ocen
    • macierz pomyłek
    • miary jedno- i wielo-klasowe
    • rankery
    • krzywa ROC
    • klasyfikatory probabilistyczne

Przydatne zasoby