Dariusz Brzeziński
Część II: Regresja i miary oceny
caret
library(modeldata)
data(mlc_churn)
churnData <- data.frame(mlc_churn)
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.
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()
library(ggplot2)
Miary oceny sterują wyborem modelu klasyfikacyjnego, regresji czy grupowania.
Zły wybór miary oceny może spowodować, że przeszacujemy zdolności predykcyjne algorytmu.
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 \) |
\[ \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} \]
\[ \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} \]
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 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.
\[ \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.
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.
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.
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.
…
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ą.
caret