Peter Flach: Machine Learning, repetytorium 1
1 Co składa się na uczenie maszynowe
The ingredients of machine learning
S010
każde zadanie (task) uczenia maszynowego polega na wypracowaniu pewnego rozwiązania przy pomocy odpowiedniego modelu matematycznego (którego parametrów na początku nie znamy)
na wejściu modelu mamy dane (data) będące konkretnymi wartościami pewnych cech, atrybutów (features), na wyjściu modelu otrzymujemy rozwiązanie zadania
zadania wiążą się z pewnymi obiektami (domain objects), indywiduami, przykładami, egzemplarzami, pomiarami w świecie
problem uczenia maszynowego (learning problem) polega na automatycznym, maszynowym zbudowaniu modelu przy pomocy odpowiedniego algorytmu
1.1 Zadania: czyli typy problemów które rozwiązujemy
Tasks: the problems that can be solved with machine learning
S010
Najistotniejsze klasy zadań to m.in:
Mogą się różnić tym co otrzymujemy na wyjściu modelu (w wyniku jego użycia).
S016
Możemy mówić o modelach:
predykcyjnych, kiedy wiemy jakich zmiennych wyjściowych oczekiwać, np. w zadaniu klasyfikacji, gdy znamy klasy do których chcemy przyporządkować obiekty
deskryptywnych, kiedy to sam algorytm ma wypracować, odkryć, zaproponować w.w. zmienne
Ponadto modele dla zadań ML można budować w sposób:
nadzorowany (z nauczycielem) (supervised)
nienadzorowany (unsupervised)
Istotną kwestią jest możliwość oceny jakości pracy algorytmu uczenia.
W procesie uczenia wypracowywany model powinien być ulepszany (wg pewnej przyjętej miary).
1.2 Modele: czyli to co budujemy w procesie uczenia
Models: the output of machine learning
S018
Celem algorytmu uczenia jest wypracowanie parametrów odpowiedniego modelu.
Modele te mogą być rożnego typu, należeć do różnych klas.
Trzy podstawowe klasy modeli wskazane w podręczniku to modele:
logiczne, formalizowane przy pomocy pojęć logiki matematycznej, np. pojęcie reguły,
geometryczne, wykorzystujące pojęcia geometrii, w tym analitycznej i algebry, np. pojęcie odległości,
probabilistyczne, wykorzystujące rachunek prawdopodobieństwa i statystykę, np. pojęcie prawdopodobieństwa zdarzenia.
Ze względu na sposób działania, modele mogą mieć charakter
grupowania, lub
oceniania
obiektów.
Na slajdach S019-27
omówiono wstępnie przykłady modeli z poszczególnych klas.
A ich wzajemne relacje i klasyfikację pokazano na S028,9
.
1.3 Cechy: to bez czego modele nie mogłyby się obejść
Features: the workhorses of machine learning
Cechy (features) stanowią mechanizm pojęciowy dzięki któremu jesteśmy w stanie opisać obiekty.
Z matematycznego punktu widzenia cecha będzie funkcją, która przyporządkowuje obiektowi wartości z pewnej dziedziny.
Np. chcemy sklasyfikować różne jabłka ze względu na ich kolor.
'Kolor' jest cechą, jego konkretna wartość, np. 'jasnoczerwony' jest tym, co pojawi się jako dana na wejściu modelu (tu klasyfikatora).
Na wyjściu pojawi się klasa do której można przypisać konkretne jabłko, np. 'dojrzałe'.
Na S033-6
pokazane są różne przykłady doboru cech, pojęć, w zależności od których możemy lepiej użyć pewnych modeli.
Np. dzięki użyciu przekształcenia danych przy użyciu funkcji kernel możliwym staje się użycie klasyfikatora liniowego tam, gdzie na oryginalnych danych nie byłby w stanie zadziałać.
Funkcja k dostarcza niejako nowego, innego pojęcia (innej przestrzeni).
2 Klasyfikacja binarna
Binary classification and related tasks
Klasyfikacja jest jednym z najważniejszych - najczęściej występujących - zadań ML,
a klasyfikacja binarna jej najważniejszym przypadkiem.
Między innymi dlatego, że klasyfikacje wieloklasową przeprowadzamy w oparciu o przypadek binarny.
Do opisu zadań klasyfikacji używamy odpowiednich pojęć.
instancja, (instance) egzemplarz, przypadek, dotyczy pojedynczego wystąpienia tego czegoś co klasyfikujemy np. jabłka, oznaczmy go x
przestrzeń instancji (instance space) jest zbiorem wszystkich możliwych przypadków, oznaczmy ją kreślonym dużym X
etykiety (label) należą do przestrzeni etykiet (label space) oznaczmy je odpowiednio kreślonymi l i L. Etykiety są używane do oznaczania przykładów w zbiorze uczącym, treningowym (training set) Tr={tr: (x,l(x))}
wyjście klasyfikatora y, należy do pewnej przestrzeni Y
W ogólnym przypadku modele (w tym klasyfikatory) będą więc pewnymi funkcjami.
Różne scenariusze opisane są na S038
.
Należy też pamiętać o kłopotach z jakością danych, określanych technicznie jako szum (noise).
Zaszumione może być zarówno etykietowanie (ktoś źle opisał zbiór treningowy) jak i dane wejściowe, dostajemy nietypowe jabłka albo śliwki.
2.1 Klasyfikacja
Classification
Klasyfikator to funkcja X → C.
W klasyfikacji binarnej zbiór C ma dwa elementy, najczęściej oznaczane jako pozytywne i negatywne, p/n, +/-, +1/-1.
Budowany klasyfikator jest tylko pewną aproksymacją, przybliżeniem, potencjalnego klasyfikatora idealnego.
W procesie uczenia poprawiamy tę aproksymację.
S040
pokazuje jak w prosty sposób przejść od drzewa pokazującego liczbę przypadków w danej klasie zależności od kombinacji cech, do drzewa decyzyjnego stanowiącego klasyfikator (czy też jego przybliżenie).
S041
Żeby móc poprawić aproksymację, jaką jest klasyfikator musimy być wstanie ocenić jego jakość (performance).
Może do tego służyć tablica krzyżowa (Contingency table).
Ważne pojęcia to true/false positives/negatives
W tablicy na S040
mamy:
TP = 30
TN = 40
FP = 20
FN = 10
Trues oznaczono na niebiesko, falses na czerwono.
Idealny klasyfikator powinien prawidłowo sklasyfikować wszystkie Pos = 50 i Neg = 50, podczas gdy nasza aproksymacja zidentyfikowała 40 jako p i 60 jako n.
W tym przypadku liczność obu klas jest jednakowa (50/50).
Kłopoty pojawiają się, gdy jedna z klas jest nadreprezentowana, vide S041
wtedy trzeba wziąć pod uwagę tę proporcję.
Metryki
W celu precyzyjnej oceny jakości klasyfikatora używamy szeregu metryk.
class ratio (stosunek klas) clr = Pos/Neg
accuracy (dokładność) acc = (TP+TN)/(Pos+Neg) – stosunek przykładów sklasyfikowanych poprawnie sklasyfikowanych do wszystkich
error rate err=1-acc
recall, sensitivity, true positive rate tpr=Tp/Pos (wrażliwość)
specificity, true negative rate tnr=TN/Neg (swoistość)
precision, confidence prec=TP/(TP+FP) (precyzja)
F-measure F=2*(precision*recall)/(precision+recall)
Patrz też:
Wizualizacja metryk
W celu lepszego porównywania klasyfikatorów z użyciem metryk używamy wizualizacji.
Najprostsza to wykres pokrycia, coverage plot bezpośrednio wizualizujący tablicę krzyżową.
Patrz S043
.
S044
Bardziej zaawansowaną metodą wizualizacji jest wykres ROC
Receiver_operating_characteristic
Pozwala na porównanie klasyfikatorów które są normalizowane do tej samej przestrzeni.
S050
Obszar poniżej krzywej ROC odpowiada dokładności klasyfikatora, związanej z ilością poprawnie sklasyfikowanych par tp/fp.
Obszar ten czasem nazywa się AUC – area under the (ROC) curve.
2.2 Ocenianie
Scoring and ranking
Osobną metodą budowania klasyfikatorów jest użycie funkcji oceniającej, przypisującej pewnym kombinacjom wartości cech współczynniki.
Współczynniki są wyliczane w zależności od tego, ile przykładów z danej klasy opisują. S047-9
To które kombinacje cech przesądzają o przynależności do konkretnej klasy zależy od porównania dokładności
S054,5
2.3 Prawdopodobieństwo przynależności do klas
Class probability estimation
S057,8
Pokrewną grupą klasyfikatorów są takie, które oceniają prawdopodobieństwo przynależności danej instancji do klasy.
Służą do przewidywania przynależność instancji.
Na wyjściu takiego klasyfikatora dostajemy wartość prawdopodobieństwa przynależności instancji do klasy.
3 Coś więcej niż klasyfikacja binarna
Beyond binary classification
3.1 Klasyfikacja wieloklasowa
Handling more than two classes
S062,3
Mając klasyfikator kilkuklasowy możemy wyliczyć jego dokładność w poszczególnych klasach.
Zakładając, że w procesie uczenia mamy tylko przykłady pozwalające na uczenie klasyfikatorów binarnych, tzn. odróżniających od siebie tylko 2 klasy, mamy dwie podstawowe metody budowania klasyfikatora wieloklasowego:
1-do-wiele (one-versus-rest) w którym uczymy k klasyfikatorów binarnych gdzie w uczeniu C_k pozostałe klasy są uznawane za przykłady negatywne, oraz
1-do-1 (one-versus-one) w którym uczymy uczymy klasyfikatory dla każdej pary klas a następnie odpowiednio łączymy ich wyniki w procesie klasyfikacji.
3.2 Regresja
Regression
S069
Obok klasyfikacji regresja jest jednym z ważniejszych przypadków ML.
Aby uniknąć przeuczenia (overfitting) liczba parametrów które dopasowujemy w procesie uczenia powinna być istotnie mniejsza niż liczba znany punktów/danych/przykładów.
S069
bias vs. variance
Ilustracja dobrze ilustruje intuicję pozwalającą odróżnić odchylenie wyników od ich wariancji.
3.3 Uczenie nienadzorowane i deskryptywne
Unsupervised and descriptive learning
S072
W uczeniu nienadzorowanym (klasteryzacja i uczenie deskryptywne) zadania uczenia maszynowego i problem uczenia się pokrywają.
Nie mamy do dyspozycji zbioru uczącego.
Nie mamy modelu, którego parametry poprawiamy, ile - w procesie uczenia - budujemy taki model,
np. określamy ile istnieje klas i jak do nich przypisywać przykłady.
Na uczenie nienadzworowane możemy najczęściej spojrzeć jako na odkrywanie wiedzy (knowledge discovery).
S073-6
Istotne przypadki uczenia nienadzworowanego to: