Post on 23-Jul-2020
Uczenie maszynowe, algorytmy i systemy datamining
Norbert Jankowski
Department of InformaticsNicolaus Copernicus University
Toruń, Poland
www.is.umk.pl/˜norbert/ml
Projekt współfinansowany ze środkówUni Europejskiej w ramach
Europejskiego Funduszu Społecznego
NJ (KIS/UMK) Uczenie maszynowe 1 / 197
Mniemanie, jakoby każdy wyższy oficer był głupi.GENERALIZACJA
H. Steinhaus
NJ (KIS/UMK) Uczenie maszynowe 2 / 197
Literatura
Literatura I
R. O. Duda, P. E. Hart, D. G. Stork.Pattern Classification.Wiley, wydanie 2, 2001.
J. Friedman, T. Hastie, R. Tibshirani.The Elements of Statistical Learning: Data Mining, Inference, andPrediction.Springer-Verlag, 2001.
Daniel Larose.Discovering knowledge in data. An introduction to data mining.John Wiley & Sons, 2005.
T. Mitchell.Machine learning.McGraw Hill, 1997.
NJ (KIS/UMK) Uczenie maszynowe 3 / 197
Literatura
Literatura II
C. M. Bishop.Neural Networks for Pattern Recognition.Oxford University Press, 1995.
C. M. Bishop.Pattern Recognition and Machine Learning.Springer-Verlag, 2006.
UWAGA: Jednak niektórych rzeczy, o których będzie mowa, nie ma(prawie) nigdzie :)
NJ (KIS/UMK) Uczenie maszynowe 4 / 197
Wstęp
Wstęp
Data + mining = dataminingAlgorytmy uczące się, maszyny uczące sięa czasami nawet niekoniecznie uczące sięUczenie się z danych, odkrywanie wiedzy z danych, budowanie modeli(matematycznych wiedzy)CEL: wydobyć właściwą informację z danych, na jej podstawiezbudować właściwy model, zgodnie z celem. Jeśli to jest możliwe. . .
Różne środowiska analizy danych, budowania modeli
NJ (KIS/UMK) Uczenie maszynowe 5 / 197
Wstęp
Problematyka
Różne typy danychRóżne typy celu — cel czyli, to co z danych chcemy wydobyćRóżne metody oceny uzyskanego celuCEL = zbudowanie wiarygodnego modelu na podstawie danych ipewnej wiedzy a priori
NJ (KIS/UMK) Uczenie maszynowe 6 / 197
Wstęp
Przykłady danych / problemów
Chory / zdrowy — przeróżne problemy medyczneCo wpływa na X a co nie ma związku z XRozpoznawanie pisma, mowy, twarzy obiektów, ruchu - UCIAnaliza „zachowań” klientów (banki, sklepy, etc.)Klasteryzacja (analiza skupień), czyli co łączy (jakie cechy/zależności)pewne grupy obiektówPredykcjeSterowanie/automatyka
NJ (KIS/UMK) Uczenie maszynowe 7 / 197
Wstęp
Etapy całości procesu datamining
1 postawienie/zrozumienie problemu2 wyznaczenie właściwych danych związanych z problemem3 niezbędne przygotowanie danych do modelowania matematycznego
(informatycznego)4 modelowanie i testowanie5 przygotowanie użytecznego rozwiązania dla końcowego odbiorcy i
wdrożenieMy będziemy się zajmowali punktem 3 i 4.
NJ (KIS/UMK) Uczenie maszynowe 8 / 197
Wstęp
Różna postać danych
Najczęściej macierz (lub 2 macierze):wiersz = obiekt, kolumna = cechawiersz = iksiński, kolumna = wzrostcechy mogą być ciągłe lub dyskretne:wzrost – ciągłykocha – dyskretny (tak/nie)mebel – dyskretny nieuporządkowany(nie-)porównywalność wymiarów cechbraki w danych: wartości niewyznaczone i zagubionebłędne dane: błąd pomiaru, błąd przy wprowadzaniu, zła interpretacja(czegoś) -> zły wpisdane niemacierzowe: grafy – opisy relacji (kto co kupuje, kto gdziesurfuje, zależności NLP, cząsteczki chemiczne, ...)dane tekstowe, obiekt – ciąg danychdane vs. miary odległości (a także podobieństwa)NJ (KIS/UMK) Uczenie maszynowe 9 / 197
Wstęp
Problem — definicja od strony modelowaniamatematycznego
Problem = {D,M, T }
D – daneM – przestrzeń modeliT – miara oceny wiarygodności modelu
NJ (KIS/UMK) Uczenie maszynowe 10 / 197
Wstęp
Typy problemów — aproksymacja
Aproksymacja, regresjaDane: 〈X, y〉X – macierz m × n (wiersz = obiekt, kolumny = cechy),y – wektor oczekiwanych wartości (yi ∈ R)Cel: szukamy funkcji F (·) takiej, że:
F (xi ) = yi + ε
ε jest niepewnością danych (yi ), czyli szumem.UWAGA: w interpolacji oczekujemy:
F (xi ) = yi
czyli pełnej dokładności. Przy aproksymacji bardziej nam zależy naGENERALIZACJI a nie bezwzględnej dokładności.
NJ (KIS/UMK) Uczenie maszynowe 11 / 197
Wstęp
Typy problemów — predykcja
Dane: xCel: szukamy funkcji F (·) takiej, że:
F (xi , xi+1, . . . , xi+k) = xi+k+1 + ε
lub czasemF (xi , xi+1, . . . , xi+k) = xi+k+l + ε
ε jest niepewnością danych (yi ), czyli szumem.
NJ (KIS/UMK) Uczenie maszynowe 12 / 197
Wstęp
Typy problemów — klasyfikacja
Dane: 〈X, y〉X – macierz m × n (wiersz = obiekt, kolumny = cechy),y – wektor m elementowy oczekiwanych KLAS (yi ∈ S a S jestzbiorem wyliczeniowym)Cel: szukamy funkcji F (·) takiej, że:
F (xi ) = yi + ε
najczęściej S = {−1, 1}, czyli dwie klasylub S = {0, . . . , k}, czyli kilka klas
NJ (KIS/UMK) Uczenie maszynowe 13 / 197
Wstęp
Typy problemów — klasteryzacja
Dane: XX – macierz m × n (wiersz = obiekt, kolumny = cechy)Cel: szukamy funkcji F (·) takiej, że:
F (xi ) = yi
gdzie yi ∈ S
najczęściej S = {−1, 1}, czyli dwa klastrylub S = {0, . . . , k}, czyli kilka klastrów
NJ (KIS/UMK) Uczenie maszynowe 14 / 197
Wstęp
Typy problemów — selekcja cech
Dane: 〈X, y〉X – macierz m × n (wiersz = obiekt, kolumny = cechy),y – wektor m elementowy oczekiwanych KLAS (yi ∈ S a S jestzbiorem wyliczeniowym)Cel: szukamy podzbioru P ⊆ {0, . . . , n − 1} takiego, że daje sięznaleźć funkcję F (·) takiej, że:
F (x′i ) = yi + ε
gdzie x′i jest wektorem cech P z wektora xi .
NJ (KIS/UMK) Uczenie maszynowe 15 / 197
Wstęp
Typy problemów — selekcja prototypów
Dane: 〈X, y〉X – macierz m × n (wiersz = obiekt, kolumny = cechy),y – wektor m elementowy oczekiwanych KLAS (yi ∈ S a S jestzbiorem wyliczeniowym)Cel: szukamy podzbioru P ⊆ {0, . . . ,m − 1} takiego, że daje sięznaleźć funkcję F (·) takiej, że:
F (xi ) = yi + ε
w oparciu o uczenie na podzbiorze wektorów X o indeksach z P .
NJ (KIS/UMK) Uczenie maszynowe 16 / 197
Liniowa dyskryminacja
Liniowa dyskryminacja
Liniowa dyskryminacja = podział przestrzeni na dwie części, klasę A iBPrzydatne gdy mamy problem klasyfikacji z dwiema klasami a danedają się separować (stosunkowo) dobrze hiperpłaszczyzną rozpiętą naprzestrzeni cech.
Problem liniowo separowalny — mówimy, że problem jest liniowoseparowalny jeśli istnieje hiperpłaszczyzna dzieląca przestrzeń w tensposób, że z jednej strony znajdują się obiekty jednej klasy a z drugiejdrugiej klasy.
NJ (KIS/UMK) Uczenie maszynowe 17 / 197
Liniowa dyskryminacja
Funkcja dyskryminująca
h(x) = wTx + w0
w jest szukanym wektorem wag.Przyjmujemy, że przynależność do danej klasy rozstrzygamy poprzez:
F (x) =
{−1 h(x) < 01 ¬
r jest odległością x od hiperpłaszczyzny H określonej przez h:
r =h(x)
||w||
ponieważ:x = xp + r
w||w||
xp jest rzutem x na H.NJ (KIS/UMK) Uczenie maszynowe 18 / 197
Liniowa dyskryminacja
Dążenie aby wektory przeciwnych klas były po przeciwnych stronachhiperpłaszczyzny można zastąpić poprzez cel:
wTxi · yi > 0
czyli wszystkie (jakby) po tej samej stronie tylko, że odpowiednie po ich„negacjach” (yi = ±1).W konsekwencji jeśli dla danego w i xi wyjdzie:
wTxi · yi > 0
to znaczy, że został dobrze sklasyfikowany, a w przeciwnym przypadku źle.
NJ (KIS/UMK) Uczenie maszynowe 19 / 197
Liniowa dyskryminacja
Algorytmy spadku gradientu — ogólnie
Cel = minimalizacja:
Jp(w) =m∑i=1
(−wTxi · yi )
wtedy∇Jp =
∑i
−xi · yi
1 initialize w,criterion θ, η(·),2 k = 03 do {4 k = k + 15 w = w − η(k)∇J(w)6 } while η(k)∇J(w) ≥ θ7 return w
NJ (KIS/UMK) Uczenie maszynowe 20 / 197
Liniowa dyskryminacja
Batch Perceptron LD
1 Batch_Perceptron_LD(D)2 initialize w,criterion θ, η(·),3 k = 04 do {5 k = k + 16 w = w + η(k)
∑mi=1(xi · yi )
7 } while η(k)∑
i xi · yi ≥ θ8 return w
NJ (KIS/UMK) Uczenie maszynowe 21 / 197
Liniowa dyskryminacja
Online Perceptron LD
1 Online_Perceptron_LD(D)2 initialize w,3 k = 04 do {5 k = (k + 1) % m6 if (wTxk · yk < 0 )7 w = w + xk · yk8 } while ¬wszystko OK && nie osiągnięto limitu iteracji9 return w
NJ (KIS/UMK) Uczenie maszynowe 22 / 197
Liniowa dyskryminacja
Online B Perceptron LD
1 Online_B_Perceptron_LD(D)2 initialize w, b, criterion θ, η(·),3 k = 04 do {5 k = (k + 1) % m6 if (wTxk · yk + b < 0 )7 w = w + η(k)xk · yk8 } while ((∃i wTxi · yi + b ≥ 0) && nie osiągnięto limitu iteracji)9 return w
NJ (KIS/UMK) Uczenie maszynowe 23 / 197
Liniowa dyskryminacja
Perceptron 2 LD
J(w) =∑i∈E
(wTxi · yi − b)2
||xi ||2
∇J =∑i∈E
(wTxi · yi − b)xi · yi||xi ||2
E jest zbiorem wektorów generujących błędy.
NJ (KIS/UMK) Uczenie maszynowe 24 / 197
Liniowa dyskryminacja
1 Perceptron_2_LD(D)2 initialize w, b, criterion θ, η(·),3 k = 04 do{5 k = k + 16 j=0; E = {}7 do{8 j = j + 19 if (wTxj · yj − b < 0 )
10 E = E ∪ {j}11 } while (j<m)
12 w = w + η∑
i∈E(b−wT xi ·yi )xi ·yi
||xi ||2
13 } while(E != ∅)14 return w
NJ (KIS/UMK) Uczenie maszynowe 25 / 197
Liniowa dyskryminacja
MSE & pseudoodwrotność
Cel:Xw = y
gdzie
X =
1 x11 · · · x1n· · ·1 xm1 · · · xmn
czyli:
n∑j=1
xijwj + w0 = yi i = 1, . . . ,m, yi = ±1
Wtedy błąd to:e = Xw − y
Niech
Js(w) = ||Xw − y||2 =m∑i=1
(wTxi − yi )2
NJ (KIS/UMK) Uczenie maszynowe 26 / 197
Liniowa dyskryminacja
To
∇Js =m∑i=1
2(wTxi − yi )xi = 2XT (Xw − y)
∇Js = 0
wtedyXTXw = XTy
w = (XTX)−1XTy = X†y
gdzie X† ≡ (XTX)−1XT jest macierzą pseudoodwrotną, którą możemypoliczyć z pomocą algorytmu SVD w złożoności O(mn2).
NJ (KIS/UMK) Uczenie maszynowe 27 / 197
Liniowa dyskryminacja
Rozkład według wartości szczególnych SVD i macierzpseudoodwrotna
Poprzez rozkład SVD macierz A można przedstawić jako:
A = UΣV T
gdzie Σ jest macierzą Σ =
[D 00 0
],m × n. D = diag(σ1, . . . , σn).
UT = U−1 a także V T = V−1.Teraz A† można wyznaczyć poprzez:
A† = V Σ∗UT
gdzie Σ∗ też jest m. przekątniową z wartościami 1/σi o wymiarach n ×m.
SVD — O(mn2)
NJ (KIS/UMK) Uczenie maszynowe 28 / 197
Liniowa dyskryminacja
1 LDA_SVD(D)2 [U,Σ,V T ] = SVD(X );3 w = V Σ−1UTy4 return w
NJ (KIS/UMK) Uczenie maszynowe 29 / 197
Liniowa dyskryminacja LMS — least mean squares
∇Js =m∑i=1
2(wTxi − yi )xi
∇Js = 2(wTxi − yi )xi
1 LMS(D)2 initialize w, criterion θ, η(·),3 k = 04 do {5 k = k + 16 w = w + η(k)(yk −wTxk)xk7 } while η(k)(yk −wTxk)xk ≥ θ8 return w
NJ (KIS/UMK) Uczenie maszynowe 30 / 197
Regresja liniowa
Regresja liniowa
Cel:Xw = y
∑j
xijwj = yi i = 1, . . . ,m, yi ∈ R
MSE & pseudoodwrotność
e = Xw − y
w = (XTX)−1XTy = X†y
LMS, iteracyjnie:
w = w + η(k)(yk −wTxk)xkNJ (KIS/UMK) Uczenie maszynowe 31 / 197
k najbliższych sąsiadów
k najbliższych sąsiadów (kNN – k nearest neighbours)
Dane: 〈X, y〉.Aby sklasyfikować wektor x należy:
Wyznaczyć zbiór k najbliższych sąsiadów do x pośród wektorów X.Niech Nk będzie zbiorem indeksów tych wektorów.
Wektor x zostaje przypisany do klasy, która jest najczęstsza pośród Nk .
NJ (KIS/UMK) Uczenie maszynowe 32 / 197
k najbliższych sąsiadów
Prawdopodobieństwo przynależności x do klasy c można określićpoprzez:
P(c|x) =1k
∑yi=c ∧ i∈Nk
1
A klasę zwycięską przez:
c = arg maxi
P(ci |x)
NJ (KIS/UMK) Uczenie maszynowe 33 / 197
k najbliższych sąsiadów
Sąsiedzi – Metryka
Wyznaczanie Nk — czyli k najbliższych sąsiadów x z X.Potrzebujemy metryki:
d(x, x′) = ||x− x′||
kNN może pracować z dowolną metryką!
NJ (KIS/UMK) Uczenie maszynowe 34 / 197
k najbliższych sąsiadów
Metryki
Minkovsky
DM(x, x′;α) =
( n∑i=1
|xi − x ′i |α)1/α
.
Euclides — α = 2Manhattan — α = 1Chebyshev – α→∞
DCh(x, x′) = maxi=1,...,n
|xi − x ′i |.
Camberra
DCa(x, x′) =n∑
i=1
|xi − x ′i ||xi + x ′i |
NJ (KIS/UMK) Uczenie maszynowe 35 / 197
k najbliższych sąsiadów
HammingaDHamm(x, x′) =
∑i=1,...,n ∧ xi 6=x ′i
1
Mahalanobis
D2M(x; x′) =
√(x− x′)Σ−1(x− x′)T ,
gdy Σ jest macierzą kowariancji(σij = σ(Xi ,Xj) =
∑k=1,...,m(xki − xk)(x ′kj − x ′k),
Xi — wektor wartości i-tej cechy (kolumna X).
corr(Xi ,Xj) = σ(Xi ,Xj)/(σiσj)).
NJ (KIS/UMK) Uczenie maszynowe 36 / 197
k najbliższych sąsiadów
Minkovsky–Hamming
DMH(x, x′;α) =
( n∑i=1
|d iMH(xi , x
′i )|α)1/α
.
gdzie
d(x , x ′) =
x − x ′ i-ta cecha ciągła0 x = x ′ & i-ta – cecha nieuporządkowana1 x 6= x ′ & i-ta cecha – nieuporządkowana
Miara szczególnie istotna, gdy dane zawierają cechy uporządkowane inieuporządkowane! Powinna być używana jak większość na danychpoddanych standaryzacji (dla cech uporządkowanych).
NJ (KIS/UMK) Uczenie maszynowe 37 / 197
k najbliższych sąsiadów
kNN i różne k
Jakie k jest dobre? Jakie k jest najlepsze?Co gdy k = 1?k = 5k a C (C liczba klas)Co gdy k = m?
NJ (KIS/UMK) Uczenie maszynowe 38 / 197
k najbliższych sąsiadów
kNN i impasy
IlościowyOdległościowy
Impas ilościowyGdy pośród najczęstszej klasy mamy dwie lub więcej o tej samej liczbiesąsiadów.Co robić? [Nic lub dobierać do zerwania impasu]
Impas odległościowyCo gdy dla pewnego k wyznaczyliśmy k najbliższych sąsiadów ale (!)okazuje się, że jest więcej wektorów w X, które mają taką samąodległość do x jak najdalszy z k najbliższych.Co robić?
Nic – zdajemy się na losowość (nie najlepsze wyjście. . . )Dobieramy wszystkie o tej samej odległości co ostatni
NJ (KIS/UMK) Uczenie maszynowe 39 / 197
k najbliższych sąsiadów
Jednorodność udziału sąsiadów w decyzji kNN
1 – wpływ jednorodny: ∑yi=c ∧ i∈Nk
1
1/d(x, xi ) ∑yi=c ∧ i∈Nk
1/d(x, xi ),
gdzie pi oznacza, którym (pod kątem bliskości) jest i-ty sąsiad.1/p ∑
yi=c ∧ i∈Nk
1/pi ,
gdzie pi oznacza, którym (pod kątem bliskości) jest i-ty sąsiad.
NJ (KIS/UMK) Uczenie maszynowe 40 / 197
Znormalizowane radialne funkcje bazowe
Znormalizowane radialne funkcje bazowe (Normalized radialbasis functions (NRBF))
P(c|x,X, y) =∑i∈I c
k(x; xi ), (1)
gdzie I c = {i : xi ∈ Xyi = c} a
k(x; xi ) =G (x, xi ;σ)∑mj=1 G (x, xj ;σ)
, (2)
gdzie G (x, x′;σ) = exp(−||x− x′||2/σ) jest funkcją Gaussa.
Jak widać tu także używamy metryki. Tak więc podobnie jak w przypadkukNN — możemy korzystać z różnych metryk.
NJ (KIS/UMK) Uczenie maszynowe 41 / 197
Znormalizowane radialne funkcje bazowe
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
0
0.2
0.4
0.6
0.8
1P
roba
bilit
y
Dispersions: σ1=0.5, σ
2=1 Centers: t
1=−1, t
2=1
NJ (KIS/UMK) Uczenie maszynowe 42 / 197
Znormalizowane radialne funkcje bazowe
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
0
0.2
0.4
0.6
0.8
1P
roba
bilit
y
Dispersions: σ1=0.15, σ
2=1.5 Centers: t
1=0, t
2=0
NJ (KIS/UMK) Uczenie maszynowe 43 / 197
Klasyfikator MAP & maksymalnej wiarygodności (Maximumlikelihood)
Klasyfikator MAP & maksymalnej wiarygodności (Maximumlikelihood)
Klasyfikator MAP:
hMAP = arg maxy∈Y
P(y |D)
Z tw. Bayes’a
P(y |D) =P(D|y)P(y)
P(D)
czyli
hMAP = arg maxy∈Y
P(D|y)P(y)
P(D)
hMAP = arg maxh∈Y
P(D|y)P(y)
Gdy założyć a priori, że wszystkie hipotezy y są jednakowoprawdopodobne mamy klasyfikator największej wiarygodności:
hML = arg maxy∈Y
P(D|y)
NJ (KIS/UMK) Uczenie maszynowe 44 / 197
Optymalny i naiwny klasyfikator Bayesowski
Optymalny klasyfikator Bayesowski
Prawdopodobieństwo przynależności do klasy y dla danych uczącychD i wektora klasyfikowanego x dla pewnego modelu h (klasyfikator):
P(y |D, x)
Prawdopodobieństwo przynależności do klasy y ze względu na różnehipotezy h ∈ H (różne hipotezy = możliwość zbudowania różnychklasyfikatorów):
P(y |D,H) =∑h∈H
P(y |h, x)P(h|D)
H różne dopuszczalne modele.Optymalny klasyfikator Bayesowski
BOC (x|D,H) = arg maxy∈Y
∑h∈H
P(y |h, x)P(h|D)
NJ (KIS/UMK) Uczenie maszynowe 45 / 197
Optymalny i naiwny klasyfikator Bayesowski
Naiwny klasyfikator Bayesowski
Niestety BOC jest czysto abstrakcyjny i nie daje się łatwo wyznaczyćprawie zawsze.Twierdzenie Bayesa:
P(yi |x) =P(x |yi )P(yi )
P(x)=
P(x |yi )P(yi )∑j P(x |yj)P(yj)
Naiwny klasyfikator Bayesowski (NB) — zakłada niezależność cech:P(x|y) =
∏ni=1 P(xi |y). Mamy wtedy:
NBC (x) = arg maxy∈Y
P(y |x) = arg maxy∈Y
P(x|y)P(y)
P(x)
= arg maxy∈Y
P(y)n∏
i=1
P(xi |y). (3)
P(x) nie wpływa na arg max.NJ (KIS/UMK) Uczenie maszynowe 46 / 197
Optymalny i naiwny klasyfikator Bayesowski
Wyznaczanie klasyfikacji NB
Musimy wyznaczyć: P(y) i P(xi |y) = P(xi ∧ y)/P(y)
P(y) =|{yi : yi = y}|
mDla nieuporządkowanych cech:
P(xi |y) =|{〈x′, y ′〉 : x ′i = xi ∧ y ′ = y}|
|{yi : yi = y}|Dla uporządkowanych:
P(xi |y) =1√
2πσiyexp(−
(xiy − xiy )2
2σ2iy)
wartości xiy i σiy to średnia i standardowe odchylenie wartości i-tejcechy wektorów należących do klasy y .
Alternatywnie dla uporządkowanych cech można dokonaćdyskretyzacji.NJ (KIS/UMK) Uczenie maszynowe 47 / 197
Optymalny i naiwny klasyfikator Bayesowski
Choć Naiwny Klasyfikator Bayesowski zakłada niezależnośćposzczególnych cechy, nie oznacza to jednak, że tylko dla takichdanych może być stosowany.Często nie wiadomo nic o zależności wymiarów. Klasyfikatora NBmożemy użyć, lecz trzeba będzie zweryfikować jego faktycznąużyteczność.
NJ (KIS/UMK) Uczenie maszynowe 48 / 197
Klasteryzacja k-średnich (k-means)
Klasteryzacja k-średnich (k-means)
Dane X (brak danych o klasach!)Algorytm dzieli obszar danych (jak i dane) na określone k klastrów witeracyjnym procesie:
1 k−means(D,k)2 initialize k centrów: t1, . . . , tk (np. losowymi wektorami z D)3 j=14 do {5 foreach xi in D {6 // przypisz x do najbliższego centrum:7 yi = argminj ||xi − tj ||8 }9 for( i=1 to k ) {
10 P = {〈x, y〉 : y = i}11 ti =
1|P|
∑x∈P x
12 }13 j++14 } while (j < nrIter);15 return y1, . . . , ym; t1, . . . , tk
NJ (KIS/UMK) Uczenie maszynowe 49 / 197
Klasteryzacja k-średnich (k-means)
Centra ti wyznaczone przez algorytm k-średnich można używać doklasyfikacji nowych danych:
F (x) = arg minj=1,...,k
||x− tj ||
demo
NJ (KIS/UMK) Uczenie maszynowe 50 / 197
Klasteryzacja k-średnich (k-means)
Klasyfikacja danych z klasami za pomocą k-średnich
Nieco nietypowe zastosowanie k-średnich:Na podstawie danych D = 〈X, y〉 można zbudować klasyfikator przezszereg klasteryzatorów k-średnich.W tym celu można stworzyć k klastrów dla każdej z klas danych D.
NJ (KIS/UMK) Uczenie maszynowe 51 / 197
Klasteryzacja Dendrogramy
Klasteryzacja za pomocą dendrogramów
Punkt startowy to ustawienie klastrów w każdym punkcie danych:
ci = xi
Następnie iteracyjnie następuje łączenie dwóch najbliższych sobieklastrów i zastąpienie ich jednym. Czyli dwa najbliższe klastry sąłączone, tworzony jest nowy klaster zastępujący.w kolejnych krokach znów szukamy dwóch najbliższych klastrów izastępujemy je jednym. Proces powtarzamy aż zbudujemy drzewo lubk klastrów.istotnym atrybutem tej metody jest aspekt wizualizacyjny w postacidendrogramu.
NJ (KIS/UMK) Uczenie maszynowe 52 / 197
Klasteryzacja Dendrogramy
NJ (KIS/UMK) Uczenie maszynowe 53 / 197
Klasteryzacja Dendrogramy
1 dendrogram(D,k)2 initialize ci = xi , i = 1, . . . ,m3 P = {c1, . . . , cm}4 i=05 while(i < m−k){6 find nearest clusters cp and cq in P7 remove cp and cq from P8 c ′ = join cp and cq9 P = P + c ′
10 }11 return P;
STOP gdy liczba klastrów osiągnie k lub po zbudowaniu pełnego jednegodrzewa.
Typy dendrogramów = metody realizacji "szukania najbliższych" obiektów(analiza odległości klastrów) i "łączenia klastrów", czyli wyznaczaniapołożenia centrum nowego obiektu i przynależnych elementów.
NJ (KIS/UMK) Uczenie maszynowe 54 / 197
Klasteryzacja Dendrogramy
Metody liczenia odległości pomiędzy klastrami:średnia odległość pomiędzy parami elementów z dwóch klastrów
dist(cp, cq) =1
|cp| · |cq|∑
x∈cp ,x′∈cq
||x− x′||
największa odległość pomiędzy parami elementów z dwóch klastrów
dist(cp, cq) = max{||x− x′|| : x ∈ cp, x′ ∈ cq}
najmniejsza odległość pomiędzy parami elementów z dwóch klastrów
dist(cp, cq) = min{||x− x′|| : x ∈ cp, x′ ∈ cq}
odległość pomiędzy środkami (centroidami) klastrów:
dist(cp, cq) = ||cp − cq||
ci = 1|ci |∑
x∈ci x — środek klastra
Możliwość używania różnych metryk, jak dla kNN.NJ (KIS/UMK) Uczenie maszynowe 55 / 197
Klasteryzacja Dendrogramy
Dendrogramy 2D
Analiza podobieństwa wektorów i cech na jednym podwójnymdendrogramie.
NJ (KIS/UMK) Uczenie maszynowe 56 / 197
Klasteryzacja dbscan
Klasteryzacja dbscan
Klasteryzacja oparta o gęstość.Klastry o nieregularnych kształtacheps — maksymalna odległość punktudo klastra.MinPts — określa minimalną liczbępunktów w otoczeniu przy analiziegęstości.
A C
B
N
q jest bezpośrednio osiągalny z p jeśli ich odległość jest niewiększaniż eps i p jest otoczony odpowiednią liczbą punktów (MinPts).q jest osiągalny z p jeśli istnieje sekwencja punktów p1, . . . , pl
(p1 = q i pl = p), gdzie pi+1 jest bezpośrednio osiągalny z pi .
NJ (KIS/UMK) Uczenie maszynowe 57 / 197
Klasteryzacja dbscan
p i q są „połączone" jeśli istnieje punkt o, taki że: p i q są osiągalnez o.punkty w klastrze są połączone
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
NJ (KIS/UMK) Uczenie maszynowe 58 / 197
Klasteryzacja dbscan
1 DBSCAN(D, eps, MinPts)2 for each unvisited point P in dataset D {3 mark P as visited4 NeighborPts = regionQuery(P, eps)5 if sizeof(NeighborPts) < MinPts6 mark P as NOISE7 else8 C = new cluster9 expandCluster(P, NeighborPts, C, eps, MinPts)
10 }11 expandCluster(P, NeighborPts, C, eps, MinPts)12 add P to cluster C13 for each point Q in NeighborPts {14 if Q is not visited15 mark Q as visited16 NeighborPtsQ = regionQuery(Q, eps)17 if sizeof(NeighborPtsQ) >= MinPts18 NeighborPts += NeighborPtsQ19 if Q is not yet member of any cluster20 add Q to cluster C21 }
NJ (KIS/UMK) Uczenie maszynowe 59 / 197
Klasteryzacja dbscan
Własności
Nie wymaga określenia liczby klastrów.Wymaga: eps i MinPtsNieregularne kształty odpowiadające gęstościom.Reaguje pozytywnie na szum.Możliwość używania różnych metryk.
demo
NJ (KIS/UMK) Uczenie maszynowe 60 / 197
Klasteryzacja dbscan
Porównanie różnych klasteryzacji
NJ (KIS/UMK) Uczenie maszynowe 61 / 197
Metody testowania maszyn uczących
Uczenie i testowanie
Testowanie jest niezbędne do weryfikacji uczenia.Uczymy na danych uczących (treningowych) a testujemy na danychtestowych.Testy na danych treningowych są niewiarygodne (nie weryfikują czyproces uczenia jest udany a powstały klasyfikator/aproksymatornadaje się do zastosowania).
NJ (KIS/UMK) Uczenie maszynowe 62 / 197
Metody testowania maszyn uczących
Poprawność i błąd klasyfikacji
Dla klasyfikatora F i danych testowych D′ poprawność klasyfikacjidefiniujemy poprzez:
acc(F ,D′) =
∑〈x,y〉∈D′ ∧ F (x)=y 1
|D′|a błąd klasyfikacji jako
err(F ,D′) = 1− acc(F ,D′)
Poprawność i błąd zbalansowany:Niech N i będzie zbiorem wektorów klasy i z danych D’:
N i = {〈x, y〉 : y = i}
accb(F ,D′) =1C
C∑i=1
∑〈x,y〉∈N i∧y=F (x) 1
|N i |
NJ (KIS/UMK) Uczenie maszynowe 63 / 197
Metody testowania maszyn uczących
Baserate, macierz konfuzji (rozrzutu)
Jeden z najtoporniejszych klasyfikatorów to taki, który ZAWSZE głosuje naklasę najliczniejszą, wtedy jego dokładność to:
baserate(D) =liczba wektorów najliczniejszej klasy z D
|D|
Macierz konfuzji K o rozmiarach C × C :
Kij = |{〈x, y〉 : y = j ∧ F (x) = i}|
mówi o statystycy oczekiwanej klasyfikacji i otrzymanej klasyfikacji. Np.:
K =
[45 32 55
]K21 = 2 mówi, że 2 wektory miały być sklasyfikowane jako klasa 1 azostały sklasyfikowane jako klasa 2.
NJ (KIS/UMK) Uczenie maszynowe 64 / 197
Metody testowania maszyn uczących
Macierz konfuzji II
Rozpatrzmy macierz konfuzji dla przypadku dwuklasowego:
pred \ orig True FalsePositive TP FPNegative FN TN
FP – rozpoznano schorzenie, gdy zdrowyFN – nie rozpoznano schorzenia, gdy chory
Sensitivity = Recall = TP-rate = TP/(TP + FN)
Specificity = TN/(TN + FP)
Precision = TP/(TP + FP)
FP-rate = FP/(TN + FP)
F-measure = 2 ∗ TP/(2 ∗ TP + FP + FN)
Sensitivity — wrażliwość Specificity — specyficznośćNJ (KIS/UMK) Uczenie maszynowe 65 / 197
Metody testowania maszyn uczących
SSE, MSE, RMSE, APE, AVR
Sumaryczny błąd kwadratowy
SSE (F ,D′) =m∑i=1
(F (xi )− yi )2 (4)
Uśredniony błąd kwadratowy
MSE (F ,D′) =1m
SSE =1m
m∑i=1
(F (xi )− yi )2 (5)
RMSE (F ,D′) =√
MSE (F ,D′) (6)
Średni błąd procentowy (niebezpieczny wokół zera dla yi )
APE =1m
m∑i=1
∣∣∣∣F (xi )− yi )
yi
∣∣∣∣ ∗ 100% (7)
AVR =
∑mi=1(F (xi )− yi )
2∑mi=1(y − yi )2 (8)
NJ (KIS/UMK) Uczenie maszynowe 66 / 197
Metody testowania maszyn uczących
Kroswalidacja (cross validation CV)
Testowanie na pojedynczym zbiorze testowym jest niewiarygodne.Dlatego na podstawie jednego zbioru można wytworzyć szereg zbiorówtreningowych i odpowiadającym im zbiorów testowych.Robimy to poprzez losowy podział zbioru D na k możliwie równolicznychrozłącznych części:
D = D1 ∪ . . . ∪ Dk Di ∩ Dj = ∅ (i 6= j) (9)
Wtedy D′i = D \ Di stanowią k zbiorów uczących a odpowiadające imczęści testowe to Di .Stratyfikowana kroswalidacja:Gdy dodatkowo przy losowaniu dbać aby proporcje klas w częściach Di byłymożliwie zbliżone do proporcji klas z D to mamy podział stratyfikowany.
NJ (KIS/UMK) Uczenie maszynowe 67 / 197
Metody testowania maszyn uczących
Typowo dzielimy na 10 części w CV: 10-fold CV.W wyniku trening i testu na k częściach uzyskujemy k wyników ztestów. Używamy ich uśrednień:
acc(D) =1k
k∑i=1
acc(Fi ,Di ) (10)
gdzie Fi jest maszyną uczoną na zbiorze D′i .Odchylenie standardowe poprawności uczenia:
σ(D) =
√√√√ 1k − 1
k∑i=1
(acc(Fi ,Di )− acc(D))2 (11)
NJ (KIS/UMK) Uczenie maszynowe 68 / 197
Metody testowania maszyn uczących
Powtarzanie i uśrednianie CV
Aby wyniki uzyskane z kroswalidacji były wiarygodne należy kroswalidacjęwielokrotnie powtórzyć niezależnie losując dane kolejnych kroswalidacji anastępnie policzyć średnią poprawność i jej odchylenie standardowe.
Typowo wykonuje się następujące podziały:– 10× 10-fold CV– 5× 2-fold CVTak więc w pierwszym przypadku mamy 100 uczeń i 100 testów a wdrugim 10 uczeń i testów. W drugim przypadku nigdy nie uczymy 2 razy natym samym wektorze w ramach jednej kroswalidacji.
LOO: w przeszłości był też używany test „leave one out”, czylikroswalidacja m-foldowa. Co oznacz, że maszyna uczona była na m − 1wektorach a testowana na jednym. Tego nie należy stosować ponieważ niedaje wiarygodnych rezultatów.
NJ (KIS/UMK) Uczenie maszynowe 69 / 197
Oprogramowanie data mining
Oprogramowanie data mining
RapidMiner http://www.rapid-i.comWeka http://www.cs.waikato.ac.nz/ml/weka/KNIME http://www.knime.org/
NJ (KIS/UMK) Uczenie maszynowe 70 / 197
Learning vector quantization LVQ
Learning vector quantization LVQ
1 LVQ(D,k)2 initialize k centrów: t1, . . . , tk (np. losowymi wektorami z D)3 + przypisanie im klas4 j=05 do {6 α0 = α∗ ∗ (nrIter − j)7 // for in random order...8 foreach( xi in D ) {9 winnerId = nearest(xi , T, || · ||);
10 α = y twinnerId==yi ? α0 : −α0;
11 twinnerId += α ∗ (xi − twinnerId)12 }13 j++14 } while (j < nrIter);15 return t1, . . . , tk
NJ (KIS/UMK) Uczenie maszynowe 71 / 197
Learning vector quantization LVQ
Po procesie uczenia LVQ może być używane jako klasyfikator:klasyfikacja polega na ustaleniu klasy najbliższego centrum ti doklasyfikowanego wektora x.Centra ti prototypy.LVQ jako klasyfikator to 1NN z zbiorem centrów jako zbioremuczącym kNN.Poprzez CV do uczenia można wyznaczyć właściwą liczbęneuronów/centrów.
NJ (KIS/UMK) Uczenie maszynowe 72 / 197
Maszyna wektorów wspierających (SVM)
Maszyna wektorów wspierających
Istotą metody SVM jest konstrukcja optymalnej hiperpłaszczyzny,
której zadaniem jest rozseparowanie danych z możliwie największymmarginesem zaufania.
NJ (KIS/UMK) Uczenie maszynowe 73 / 197
Maszyna wektorów wspierających (SVM)
Tak zdefiniowana optymalna hiperpłaszczyzna, określona przezwspółczynniki w i b, spełnia poniższą nierówność
ykF (xk)
||w||≥ τ k = 1, 2, . . . ,m, (12)
oczywiście przy założeniu, że istnieje margines ufności τ , a F (x) jestzdefiniowane (na początek) przez:
F (x) = w>x + b. (13)
A będzie realizowane poprzez znalezienie:
F (x) =m∑i=1
aiyi · 〈x, xi 〉+ b. (14)
NJ (KIS/UMK) Uczenie maszynowe 74 / 197
Maszyna wektorów wspierających (SVM) Funkcje jądrowe
Funkcje jądrowe
Z powodu możliwości wystąpienia liniowej nieseparowalności w przestrzeniwejściowej ideą SVM nie stała się konstrukcja optymalnej hiperpłaszczyznyw przestrzeni wejściowej, lecz w pewnej wysoko wymiarowej przestrzenicech Z, która najczęściej jest nieliniowym produktem pewnych funkcjibazowych φi (x) (wybranych a priori), określonych w przestrzeni wejściowej.Wtedy równanie optymalnej hiperpłaszczyzny przyjmuje postać:
F (x) =m∑i=1
aiyiK (xi , x) + b, (15)
gdzie Ki (xi , x) jest jądrem iloczynu skalarnego (ang. inner product kernel)funkcji bazowych (przestrzeni cech Z) φj(x), j = 1, 2, . . . ,m.Łatwo zauważyć, że w miejsce wixi z równania (13) mamy aiyiK (xi , x).Np. iloczyn skalarny może być zdefiniowany przez
K (x, x′) = φi (x)>φi (x′). (16)
NJ (KIS/UMK) Uczenie maszynowe 75 / 197
Maszyna wektorów wspierających (SVM) Funkcje jądrowe
Funkcje jądrowe K reprezentujące iloczyn skalarny muszą być dodatniookreślone:∫ ∫
K (x, x′)f (x)f (x′) dx dx′ > 0 dla f 6= 0,∫
f 2(x)dx <∞.(17)
dla wielomianów stopnia q mamy:
K (x, x′) = [γ(x>x′) + θ]q, (18)
w najprostszej wersji mamy:
K (x, x′) = x>x′. (19)
Jednak nie każda postać K z (18) jest dodatnio określona. Dla θ = 0i θ = 1, gdy q jest naturalne, to K jest dodatnio określone.
NJ (KIS/UMK) Uczenie maszynowe 76 / 197
Maszyna wektorów wspierających (SVM) Funkcje jądrowe
Funkcja gaussowska
K (x, x′) = exp
(−||x− x′||2
γ
), (20)
Funkcja tangens hiperboliczny K (·):
K (x, x′) = tanh(γ[x>x′] + θ). (21)
NJ (KIS/UMK) Uczenie maszynowe 77 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Konstrukcja optymalnej hiperpłaszczyzny
CEL: Uzyskanie możliwie największego marginesu pomiędzy dwiema klasami.Może być zapisany w następujący sposób.
maxw,b
min{||x− xi || : w>x + b = 0, i = 1, . . . ,m} (22)
Przeskalowujemy w i b tak, aby najbliższe punkty hiperpłaszczyzny w>x + b = 0leżały na hiperpłaszczyznach zdefiniowanych przez:
w>x + b = ±1. (23)
Wtedy dla wszystkich wektorów xi mamy:
yi [w>xi + b] ≥ 1. (24)
NJ (KIS/UMK) Uczenie maszynowe 78 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
b
b
b
bb
b
b
b
b
x1
r
r
r
r
r
r
r
r
x2
{x | 〈w, x〉+ b = −1} {x | 〈w, x〉+ b = +1}
{x | 〈w, x〉+ b = 0}
〈w, x1〉+ b = −1
〈w, x2〉+ b = +1
⇓〈w, (x2 − x1)〉 = 2
⇓〈 w
||w|| , (x2 − x1)〉 =2
||w||
NJ (KIS/UMK) Uczenie maszynowe 79 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Stąd łatwo wyznaczyć szerokość marginesu. Weźmy dwa najbliższe punktyx1 i x2 do hiperpłaszczyzny, po jednym z każdej klasy. Następnie zrzutujmyje wzdłuż prostej prostopadłej używając wektora normalnego w/||w||.Wtedy odległość pomiędzy zrzutowanymi punktami to:[
w||w||
]>[x1 − x2] =
2||w||
. (25)
Teraz (22) można przekształcić do nowej funkcji celu:
minw,b
τ(w) =12||w||2, (26)
przy warunkach:
yi [w>xi + b] ≥ 1 i = 1, . . . ,m. (27)
NJ (KIS/UMK) Uczenie maszynowe 80 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Problem optymalizacyjny z ograniczeniami można rozwiązać metodąmnożników Lagrange’a.
minx,y
f (x , y) (28)
z ograniczeniem:g(x , y) = 0 (29)
Tworzymy Lagrangian:
L(x , y , α) = f (x , y)− αg(x , y) (30)
gdzie α > 0 to mnożnik Lagrange’a.A następnie przyrównujemy:
∂
∂xL(x , y ,α) = 0 (31)
∂
∂yL(x , y ,α) = 0 (32)
NJ (KIS/UMK) Uczenie maszynowe 81 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Tak samo dla wielu zmiennych xi (i = 1, . . . , n) z wieloma ograniczeniamigk(x) = 0.Cel:
min f (x) (33)
z ograniczeniami:gi (x) = 0 i = 1, . . . ,K (34)
Wtedy lagrangian to:
L(x,α) = f (x)−K∑i=1
αigi (x) (35)
∂
∂xiL(x,α) = 0 i = 1, . . . , n (36)
NJ (KIS/UMK) Uczenie maszynowe 82 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Dla SVM (26) definiujemy lagrangian:
L(w, b,α) =12||w||2 −
m∑i=1
αi (yi [x>i w + b]− 1), (37)
gdzie αi > 0 są mnożnikami Lagrange’a.Teraz celem jest maksymalizacja lagrangiana L ze względu na współczynnikiαi i minimalizacja ze względu na w i b.To prowadzi do warunków, w których pochodne L ze względu na powyższewspółczynniki zanikają:
∂
∂bL(w, b,α) = 0, (38)
∂
∂wL(w, b,α) = 0, (39)
co prowadzi do:m∑i=1
αiyi = 0, w =m∑i=1
αiyixi . (40)
NJ (KIS/UMK) Uczenie maszynowe 83 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Wektory xi , dla których αi > 0, nazywane są wektorami wspierającymi.Zgodnie z twierdzeniem Karush-Kuhn-Thuckera teorii optymalizacji wpunkcie siodłowym lagrangiana L (37) niezerowe są tylko tewspółczynniki αi , dla których mamy:
αi (yi [x>i w + b]− 1) = 0, i = 1, . . . ,m. (41)
Własność ta pokazuje, że wektory podpierające leżą dokładnie namarginesie.Tym samym pozostałe wektory stają się nieistotne i dla nichnierówności (27) są oczywiście spełnione.
NJ (KIS/UMK) Uczenie maszynowe 84 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Wykorzystując powyższą własność i jednocześnie podstawiając (40) dolagrangiana L (37) eliminujemy zmienne w i b.W ten sposób otrzymujemy dualny problem optymalizacyjny
maxα
W (α) =m∑i=1
αi −12
m∑i ,j=1
αiαjyiyjx>i xj (42)
z ograniczeniami (warunkami KKT):
αi ≥ 0 i = 1, . . . ,m, (43)m∑i=1
αiyi = 0. (44)
Po powyższych przekształceniach funkcją decyzyjną (klasyfikacyjną) jest:
F (x) = sgn
(m∑i=1
αiyix>xi + b
). (45)
NJ (KIS/UMK) Uczenie maszynowe 85 / 197
Maszyna wektorów wspierających (SVM) Konstrukcja optymalnej hiperpłaszczyzny
Powracając do przestrzeni funkcji φ(·) możemy przeformułować i uogólnićdualny problem (42):
maxα
W (α) =m∑i=1
αi −12
m∑i ,j=1
αiαjyiyjK (xi , xj). (46)
Ograniczenia (43) pozostają bez zmian.Tak określony problem poszukuje optymalnej hiperpłaszczyzny wprzestrzeni funkcji φ(·) (16).Z kolei funkcja decyzyjna przyjmuje formę:
F (x) = sgn
(m∑i=1
αiyiK (x, xi ) + b
). (47)
Wartość b powyższego zbioru łatwo wyznaczyć na podstawie jednejz równości (41). W praktyce b często przyjmuje średnią wartość z wartości,jakie można wyznaczyć z równości (41) w celu poprawy dokładności.
NJ (KIS/UMK) Uczenie maszynowe 86 / 197
Maszyna wektorów wspierających (SVM) Hiperpłaszczyzna dla przypadków nieseparowalnych
Hiperpłaszczyzna dla przypadków nieseparowalnych
Nieseparowalność oznacza niemożność spełnienia warunków (27).Rozwiązanie polega na wprowadzeniu zmiennych ξi rozluźniającychwięzi nierówności (27):
yi [w>xi + b] ≥ 1− ξi i = 1, . . . ,m, (48)ξi ≥ 0. (49)
Jak widać z (48) ξi dopuszczają, by pewne wektory xi (te, dla którychξ > 0) leżały po niewłaściwej stronie płaszczyzn określającychmargines.
Klasyfikator powinien kontrolować szerokość marginesu ||w||, jak i wysokośćkary:
∑i ξi .
Powyższe rozważanie prowadzi do nowej funkcji celu:
minw,b,ξ
12||w||2 + C
m∑i=1
ξi (50)
z ograniczeniami (48) i (49). C musi być większe od 0.
NJ (KIS/UMK) Uczenie maszynowe 87 / 197
Maszyna wektorów wspierających (SVM) Hiperpłaszczyzna dla przypadków nieseparowalnych
Zgodnie z twierdzeniem Karush-Kuhn-Tuckera lagrangian (50) przyjmiepostać:
L(w, b,α,µ) =12||w||2 + C
m∑i=1
ξi −m∑i=1
αi (yi [x>i w+ b]−1+ ξi )−m∑i=1
µiξi ,
(51)µi są mnożnikami Lagrange’a wymuszającymi dodatniość ξi .
To, tak jak poprzednio, prowadzi do warunków, w których pochodne Lzanikają:
∂
∂bL(w, b,α,µ) = 0, (52)
∂
∂wL(w, b,α,µ) = 0, (53)
NJ (KIS/UMK) Uczenie maszynowe 88 / 197
Maszyna wektorów wspierających (SVM) Hiperpłaszczyzna dla przypadków nieseparowalnych
m∑i=1
αiyi = 0 (54)
w =m∑i=1
αiyixi (55)
z warunkami:∂
∂ξiL(w, b,α,µ) = C − αi − µi = 0, (56)
yi [x>i w + b]− 1 + ξi ≥ 0, (57)ξi ≥ 0, (58)αi ≥ 0, (59)µi ≥ 0, (60)
αi (yi [x>i w + b]− 1 + ξi ) = 0, (61)µiξi = 0. (62)
NJ (KIS/UMK) Uczenie maszynowe 89 / 197
Maszyna wektorów wspierających (SVM) Hiperpłaszczyzna dla przypadków nieseparowalnych
Ostatecznie prowadzi to do dualnego problemu optymalizacyjnego:
maxα
W (α) =m∑i=1
αi −12
m∑i ,j=1
αiαjyiyjx>i xj (63)
z ograniczeniami:
0 ≤ αi ≤ C i = 1, . . . ,m, (64)m∑i=1
αiyi = 0. (65)
NJ (KIS/UMK) Uczenie maszynowe 90 / 197
Maszyna wektorów wspierających (SVM) ν-SVC
ν-SVC
W powyższym problemie ważną rolę odgrywa współczynnik C , który, jaknapisali Schölkopf i Smola jest „nieintuicyjny".Z powyższych powodów zaproponowano nowy algorytm ν-SVM, gdzieparametr C zastąpiono przez ν.
Pierwotny problem optymalizacyjny zdefiniowano przez:
minw,b,ξ,ρ
τ(w, ξ, ρ) =12||w||2 − νρ+
1m
m∑i=1
ξi (66)
z ograniczeniami:
yi [x>i w + b] ≥ ρ− ξi , (67)ξi ≥ 0, (68)ρ ≥ 0 (69)
NJ (KIS/UMK) Uczenie maszynowe 91 / 197
Maszyna wektorów wspierających (SVM) ν-SVC
Parametr ν charakteryzuje się ciekawymi własnościami. Przypuśćmy, żew rezultacie optymalizacji finalna wartość ρ jest większa od 0, mamywtedy:
1 ν jest ograniczeniem górnym na procent wektorów leżących wewnątrzmarginesu:
1m|{i : yiF (xi ) < ρ}|, (70)
2 ν jest ograniczeniem dolnym na procent wektorów podpierających(support vectors (SVs)) względem całego zbioru wektorów.
NJ (KIS/UMK) Uczenie maszynowe 92 / 197
Maszyna wektorów wspierających (SVM) ν-SVC
ν 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
współ. błędów 0.00 0.07 0.25 0.32 0.39 0.50 0.61 0.71
współ. SV 0.29 0.36 0.43 0.46 0.57 0.68 0.79 0.86
margines 0.005 0.018 0.115 0.156 0.36 0.42 0.46 0.55
NJ (KIS/UMK) Uczenie maszynowe 93 / 197
Maszyna wektorów wspierających (SVM) ν-SVC
Ostatecznie otrzymujemy funkcję celu problemu dualnego:
maxα
W (α) = −12
m∑i ,j=1
αiαjyiyjK (xi , xj) (71)
z ograniczeniami:
0 ≤ αi ≤1m, (72)
m∑i=1
αiyi = 0, (73)
m∑i=1
αi ≥ ν. (74)
Ogólna postać funkcji decyzyjnej jest taka sama jak (47):
F (x) = sgn
(m∑i=1
αiyiK (x, xi ) + b
). (75)
NJ (KIS/UMK) Uczenie maszynowe 94 / 197
Maszyna wektorów wspierających (SVM) ν-SVC
Pozostaje jeszcze wyznaczenie współczynników b i ρ. W tym celu musimyzdefiniować dwa zbiory S+ i S−:
S+ = {xi : 0 < αi < 1 ∧ yi = +1}, (76)S− = {xi : 0 < αi < 1 ∧ yi = −1}. (77)
Wtedy nierówność (67) staje się równością z ξi = 0 i mamy:
b = − 12s
∑x∈S+∪S−
m∑j=1
αjyjK (x, xj), (78)
ρ =12s
∑x∈S+
m∑j=1
αjyjK (x, xj)−∑x∈S−
m∑j=1
αjyjK (x, xj)
, (79)
gdzie s = |S+| = |S−|.
NJ (KIS/UMK) Uczenie maszynowe 95 / 197
Maszyna wektorów wspierających (SVM) SVM dla regresji (ε-SVR)
SVM dla regresji (ε-SVR)
SVM może być także sformułowany w kontekście problemów regresyjnych.Punktem wyjścia jest funkcji błędu ε−niewrażliwej (ang. ε−insensitive errorfunction):
c(x, y , f (x)) = |y − f (x)|ε = max{0, |y − f (x)| − ε}. (80)
+ǫ−ǫ x
|y − f (x)|ǫ
NJ (KIS/UMK) Uczenie maszynowe 96 / 197
Maszyna wektorów wspierających (SVM) SVM dla regresji (ε-SVR)
Podobnie jak i w przypadku klasyfikacji, na początku można zawęzićposzukiwania do przypadku liniowego i poszukiwać rozwiązania problemuregresji liniowej:
f (x) = x>w + b (81)
poprzez minimalizację
12||w||2 + C
m∑i=1
|yi − f (xi )|ε. (82)
NJ (KIS/UMK) Uczenie maszynowe 97 / 197
Maszyna wektorów wspierających (SVM) SVM dla regresji (ε-SVR)
Podobnie jak w przypadku konstrukcji miękkiej optymalnejhiperpłaszczyzny wprowadza się zmienne łagodzące nierówności.
W tym przypadku wprowadza się dwa typy zmiennych (ξ i ξ∗), jedną dlaprzypadku f (xi )− yi > ε i drugą, gdy yi − f (xi ) > ε.
Wtedy problem regresji można przedstawić jako problem optymalizacyjny:
minw,ξ,ξ∗,b
τ(w, ξ, ξ∗) =12||w||2 + C
m∑i=1
(ξi + ξ∗i ) (83)
przy ograniczeniach:
− ε− ξ∗i ≤ f (xi )− yi ≤ ε+ ξi i = 1, . . . ,m, (84)ξi , ξ
∗i ≥ 0. (85)
NJ (KIS/UMK) Uczenie maszynowe 98 / 197
Maszyna wektorów wspierających (SVM) SVM dla regresji (ε-SVR)
Wracając do postaci SVM z funkcjami jądrowymi i przechodząc do postacidualnego problemu optymalizującego otrzymujemy:
maxα,α∗
W (α,α∗) =− εm∑i=1
(α∗i + αi ) +m∑i=1
(α∗i − αi )yi
− 12
m∑i,j=1
(α∗i − αi )(α∗j − αj)K (xi , xj)(86)
z ograniczeniami:
0 ≤ αi , α∗i ≤ C i = 1, . . . ,m, (87)
m∑i=1
(αi − α∗i ) = 0. (88)
Funkcja regresji przyjmuje postać:
f (x) =m∑i=1
(α∗i − αi )K (xi , x) + b. (89)
NJ (KIS/UMK) Uczenie maszynowe 99 / 197
Maszyna wektorów wspierających (SVM) Optymalizacja problemów programowania kwadratowego
Optymalizacja problemów programowania kwadratowego
Rozwiązania problemów optymalizacyjnych wymagają rozwiązaniaproblemu optymalizacji programowania kwadratowego.
Najważniejszym elementem wspomagającym optymalizację jestdekompozycja problemu.
NJ (KIS/UMK) Uczenie maszynowe 100 / 197
Maszyna wektorów wspierających (SVM) Optymalizacja problemów programowania kwadratowego
Dekompozycja: Ogólny problem optymalizacyjny:
maxα
W (α) = p>α− 12α>Qα (90)
z ograniczeniami:
0 ≤ αi ≤ C i = 1, . . . ,m, (91)y>α = ∆, (92)
(gdzie Qij = yiyjK (xi , xj))Zostaje przekształcony do:
maxαB
W (αB) = (p− QBRαR)>αB −12α>BQBBαB (93)
z ograniczeniami:
0 ≤ αB,i ≤ C ∀ i ∈ B, (94)y>BαB = ∆− y>RαR , (95)
gdzie[
QBB QBR
QRB QRR
]jest pewną permutacją macierzy Q.
NJ (KIS/UMK) Uczenie maszynowe 101 / 197
Maszyna wektorów wspierających (SVM) Optymalizacja problemów programowania kwadratowego
Zasadniczą ideą dekompozycji jest podział całego zbioru uczącego nadwa: roboczy B i resztę zbioru R = {1, . . . ,m} \ B .Wektor αB podlega optymalizacji, a αR jest zamrożony.Czynnik −1
2α>RQRRαR + p>RαR jest stały i dlatego nie znalazł się w
(93)).
NJ (KIS/UMK) Uczenie maszynowe 102 / 197
Maszyna wektorów wspierających (SVM) Optymalizacja problemów programowania kwadratowego
Ogólny schemat algorytmu rozwiązywania problemu optymalizacjiprzez dekompozycję może wyglądać jak poniżej:
1 Wyznaczyć wektor α1 jako rozwiązanie początkowe.2 Jeśli wektor αk jest optymalny: STOP.
W przeciwnym przypadku wyznaczyć zbiór roboczy (indeksów)B ⊂ {1, . . . ,m} rozmiaru q, R = {1, . . . ,m} \ B . Wektory αk
B i αkR
są odpowiednimi, względem zbiorów indeksów B i R , częściamiwektora αk .
3 Rozwiązać podproblem optymalizacyjny (93) względem αkB .
4 αk+1B ustawić na rozwiązanie optymalne (93), a αk+1
R na αkR .
Następnie skok do 2.
NJ (KIS/UMK) Uczenie maszynowe 103 / 197
Maszyna wektorów wspierających (SVM) Optymalizacja problemów programowania kwadratowego
Powyższy schemat wymaga jednak sprecyzowania odpowiedzi na trzypytania:
1 Jak wybierać zbiór roboczy?2 Na jakiej podstawie decydować, czy wektor αk jest optymalny?3 Jak rozwiązywać podproblemy?
Dwa najciekawsze algorytmy korzystające z powyższej dekompozycjiproblemu to SVMlight Joachimsa i SMO Platta z modyfikacjami Keerthiegoi in..
NJ (KIS/UMK) Uczenie maszynowe 104 / 197
Maszyna wektorów wspierających (SVM) SMO
SMO, optymalizacja α1 i α2
SMO po wybraniu do zbioru roboczego dwóch wektorów x (przyjmijmy x1 i x2)prowadzi optymalizację w sposób analityczny ponieważ dla dwóch wektorówmożna policzyć dokładnie optymalne korekty wag α1 i α2.α∗ są ograniczone (0 ≤ αi ≤ C ) i muszą leżeć na diagonali:
Z tego można wyznaczyć ograniczenia na wartości α2:Jeśli y1 6= y2 to:
L = max(0, αold2 − αold
1 ) H = min(C ,C + αold2 − αold
1 ) (96)
w przeciwnym wypadku:
L = max(0, αold2 + αold
1 − C ) H = min(C , αold2 + αold
1 ) (97)
NJ (KIS/UMK) Uczenie maszynowe 105 / 197
Maszyna wektorów wspierających (SVM) SMO
Reguła uczenia bez ograniczenia może być następująca:
αnew2 = αold
2 −y2(E1 − E2)
η(98)
gdzie Ei = F (xi )− yi a η wpływa na szybkość uczenia i jest drugąpochodną:
η = 2K (x1, x2)− K (x1, x1)− K (x2, x2) (99)
Reguła uczenia z ograniczeniem może być następująca:
αnew ,clip2 =
H if αnew
2 ≥ H
αnew2 if L < αnew
2 < H
L if α2 ≤ L
(100)
αnew1 = αold
1 + y1y2(αold2 − α
new ,clip2 ) (101)
NJ (KIS/UMK) Uczenie maszynowe 106 / 197
Extreme learning machines
Extreme learning machines (ELM) and RBF
The linear discrimination model g(x) = wTx is learned by:
w = (XTX)−1XTy = X†y (102)
where X is a matrix of input data, y label (class) vector and X† ispseudo-inverse matrix. The above equation is a solution for the goal:
Js(w) = ||Xw − y||2 =m∑i=1
(wTxi − yi )2 (103)
obtained by zeroing the gradient.The non-linear model of neural network is generated by a set ofgaussian/sigmoidal kernels (k1, . . . , kl), and learned in a similar way asabove networks after transforming the original space into the spaceobtained by kernels. It means that instead of X in Eq.102 the matrix F isused (see 106).
NJ (KIS/UMK) Uczenie maszynowe 107 / 197
Extreme learning machines
ELM model in the kernel space is defined by:
g ′(x) = wT fx =l∑
j=1
wj · kj(x; xzj ) + w0 (104)
where xzj are randomly selected between all data vectors, and
fx = [k1(x; xz1), . . . , kl(x, xzl ), 1]T .
Above equation is indeed a RBFN network (or SVM)
The above equation is a solution for the goal:
Js(w) = ||Fw − y||2 =m∑i=1
(f Txi w − yi )
2 (105)
where F = [fx1 , . . . , fxm ].The w is obtained again by pseudo inverse matrix:
w = (FTF)−1FTy = F†y (106)
NJ (KIS/UMK) Uczenie maszynowe 108 / 197
Extreme learning machines
1 RBF_ELM(D, k, l)2 for(i=1 to m) {3 for(j=1 to l)4 F[i,j] = kj(xi , xj);5 F(i,l+1) = 1;6 }7 [U,Σ,V T ] = SVD(F );8 w = V Σ−1UTy9 return w
10 end
k vector of l kernel functions.
NJ (KIS/UMK) Uczenie maszynowe 109 / 197
Extreme learning machines
Complexity of learning = complexity of SVD (computation of matrix F†):
O(ml2)
Good accuracy!
RBFN, ELM and linear discrimination:If k∗ is Gaussian than RBFN = ELMIf k∗ is sigmoidal (σ(x,uj) = 1/(1 + e−xTuj )) than standard ELM+ random linear combination (random uj or uj = xzj )
If k∗ is inner product (xTxzj ) = linear discrimination
NJ (KIS/UMK) Uczenie maszynowe 110 / 197
Algorytmy selekcji cech
Algorytmy selekcji cech
Wektory xi danych D są opisywane przez zbiór n cech.Selekcja cech to nic innego jak wybór podzbioru kolumn macierzdanych D (zakładamy postać macierzową).Selekcja cech => Redukcja wymiarowościCele selekcji:
Usunięcie cech, które utrudniają proces uczeniaklasyfikatora/aproksymatora.Zmniejszenie nakładu obliczeń: po selekcji proces uczenia jest prostszy.Wyznaczenie cech niezbędnych do procesu klasyfikacji/aproksymacji.Wyznaczenie alternatywnych podzbiorów cech doklasyfikacji/aproksymacji.Usuwanie cech “pustych" (o zerowej lub bliskiej zeru wariancji)
Nie ma selekcji dla selekcji, zawsze selekcja ma czemuś służyć. Mawspomóc rozwiązanie zdefiniowanego zadania.
NJ (KIS/UMK) Uczenie maszynowe 111 / 197
Algorytmy selekcji cech
Typy selekcji cech
Wewnętrzna — gdy algorytm klasyfikacji/aproksymacji, jako częśćprocesu uczenia, dokonuje selekcji cech.Zewnętrzna — niezależna od algorytmu klasyfikacji/aproksymacji.
RankingiSelekcje forward/backwardWrapping + rankingi
NJ (KIS/UMK) Uczenie maszynowe 112 / 197
Algorytmy selekcji cech Korelacja liniowa i selekcja cech
Korelacja liniowa i selekcja cech
corr(Xi ,Xj) =
∑mk=1(xki − Xi )(xkj − Xj)
(m − 1)σiσj=
cov(Xi ,Xj)
σiσj
gdzie Xi jest średnią i-tej cechy a
σi =
√√√√ 1m − 1
m∑k=1
(xki − Xi )2
jest standardowym odchyleniem wartości i-tej cechy.
Ostatecznie ranking CC jest obliczany ze współczynników:
JCC (i) = |corr(Xi ,Y )|
NJ (KIS/UMK) Uczenie maszynowe 113 / 197
Algorytmy selekcji cech Korelacja liniowa i selekcja cech
1 – korelacja pozytywna, −1 – negatywna a 0 brak korelacji.
[rys. z Wiki]
NJ (KIS/UMK) Uczenie maszynowe 114 / 197
Algorytmy selekcji cech Korelacja liniowa i selekcja cech
Obliczamy:JCC (1), JCC (2), . . . , JCC (n).Czyli patrzymy na korelacje każdej z cech z klasami przypisanymiposzczególnym wektorom.
Sortujemy współczynniki JCC (i):
JCC (i1) ≥ JCC (i2) ≥ . . . ≥ JCC (in)
Teraz mamy uporządkowane cechy od najbardziej skorelowanej z klasami donajmniej skorelowanych.
Ostatecznie wybieramy pewne k najbardziej skorelowanych cech idokonaliśmy selekcji cech.
Wybór najwłaściwszego k pozostaje dodatkowym zadaniem. Można tozrobić poprzez przeszukiwanie krosswalidacją do uczenia.
NJ (KIS/UMK) Uczenie maszynowe 115 / 197
Algorytmy selekcji cech Selekcje cech za pomocą F-scora
Selekcje cech za pomocą F-scora
F-score dla i-tej cechy liczymy poprzez:
JF (i) =1
K − 1
∑Kk=1(X k
i − Xi )2∑K
k=1[σki ]2
X ki oznacza średnią dla i-tej cechy liczoną tylko z wektorów przypisanych
do klasy k-tej.
Czasami spotykamy wersję ważoną:
JwF (i) =
1K − 1
∑Kk=1(X k
i − XI )2 ·mk∑K
k=1[σki ]2 · (mk − 1)
gdzie mk oznacza liczbę wektorów, które są przypisane do klasy k .
NJ (KIS/UMK) Uczenie maszynowe 116 / 197
Algorytmy selekcji cech Selekcje cech za pomocą F-scora
Ciąg dalszy podobnie jak dla współczynnika korelacji:Liczymy JF (1), JF (2), . . . , JF (n).Sortujemy . . .Wybieramy k pierwszych . . .
NJ (KIS/UMK) Uczenie maszynowe 117 / 197
Algorytmy selekcji cech Selekcja za pomocą liniowego SVM
Selekcja za pomocą liniowego SVM
Po wyznaczeniu liniowego SVM uzyskujemy:
F (x) =∑i
αixTi x− b
Ale możemy policzyć:w =
∑i
αixi
Teraz możemy zbudować ranking:
Jsvm(i) = |wi |
Jsvm(i) mówi nam na ile i-ta cecha odgrywała rolę w procesieklasyfikacji/aproksymacji.Znów mamy podefiniowane JSVM(i), które można posortować i wybraćważniejsze cechy.NJ (KIS/UMK) Uczenie maszynowe 118 / 197
Algorytmy selekcji cech Rankingi teorio–informacyjne
Rankingi teorio–informacyjne i entropia
Niech p będzie wektorem prawdopodobieństw pewnej przestrzeni dyskretnej(∑
p1 = 1), wtedy entropia jest zdefiniowana przez:
H(p) = −∑pi 6=0
pi log2 pi (107)
Entropia może być widziana jako miara różnorodności.
H([1]) = 0H([.5 .5]) = 1H([.4 .6]) = 0.9710H([.2 .8]) = 0.7219H([.1 .9]) = 0.4690H([.01 .99]) = 0.0808
H([.3333 .3333 .3333]) = 1.5849H([.25 .25 .25 .25]) = 2H([.70 .10 .10 .10]) = 1.3568H([.70 .20 0.05 0.05]) = 1.2568
NJ (KIS/UMK) Uczenie maszynowe 119 / 197
Algorytmy selekcji cech Rankingi teorio–informacyjne
Rankingi teorio–informacyjne
Mutual information ranking (MI): Shannon described the concept ofentropy and mutual information. The entropy in context of feature may bedefined by:
H(Xj) = −∑
x ′∈dom(Xj )
P(Xj = x ′) log2 P(Xj = x ′) (108)
where dom(Xj) is set of values in Xj .
P(Xj = x ′) =|{xij : xij = x ′, i = 1, . . . ,m}|
m(109)
and in similar way for classes:
H(y) = −K∑i=1
P(Y = yi ) log2 P(Y = yi ). (110)
NJ (KIS/UMK) Uczenie maszynowe 120 / 197
Algorytmy selekcji cech Rankingi teorio–informacyjne
The mutual information (MI) may be used as a base of feature ranking:
JMI (Xj) = I (Xj , y) = H(Xj) + H(y)− H(Xj , y), (111)
where H(Xj , y) is joint entropy:
H(Xj , y) = −∑
x ′∈dom(Xj )
K∑i=1
P(Xj = x ′ ∧ Y = yi ) log2 P(Xj = x ′ ∧ Y = yi )
(112)
NJ (KIS/UMK) Uczenie maszynowe 121 / 197
Algorytmy selekcji cech Rankingi teorio–informacyjne
klasa/ceha T=60 N=40T=70 50 20N=30 10 20
H(klasa) = H([70/100 30/100]) = 0.8813
H(cecha) = H([60/100 40/100]) = 0.971
H(klasa,cecha) = H([50/100 20/100 10/100 20/100]) = 1.761
I(klasa, cecha) = 0.0913
klasa/ceha T=60 N=40T=70 42 28N=30 18 12
H(klasa,cecha) = H([42/100 28/100 18/100 12/100]) = 1.8522
I(klasa, cecha) = 0.0001NJ (KIS/UMK) Uczenie maszynowe 122 / 197
Algorytmy selekcji cech Rankingi teorio–informacyjne
Asymmetric Dependency Coefficient (ADC) is defined as mutualinformation normalized by entropy of classes:
JADC (Xj) = I (Xj , y)/H(y). (113)
Normalized Information Gain (US) is defined by the MI normalized bythe entropy of feature:
JADC (Xj) = I (Xj , y)/H(Xj). (114)
Normalized Information Gain (UH) is the third possibility ofnormalizing, this time by the joint entropy of feature and class:
JUH(Xj) = I (Xj , y)/H(Xj , y). (115)
Symmetrical Uncertainty Coefficient (SUC): this time the MI isnormalized by the sum of entropies:
JSUC (Xj) = I (Xj , y)/(H(Xj , y) + H(y)). (116)
NJ (KIS/UMK) Uczenie maszynowe 123 / 197
Algorytmy selekcji cech Selekcje Forward i Backward
Selekcje Forward i Backward
Start z pełnej przestrzeni cech.Po czym sekwencyjnie usuwanie najbardziej psującej cechy.
Start z pustego zbioru cech.Sekwencyjnie dodajemy cechy najbardziej poprawiająceklasyfikacje/aproksymacje.
Zazwyczaj mocno czasochłonne. . .
NJ (KIS/UMK) Uczenie maszynowe 124 / 197
Algorytmy selekcji cech Selekcja Relief
Selekcja Relief
1 relief_fselect(D,nrIter)2 for( i=1 to n )3 JRe(i) = 04
5 for( iter=1 to nrIter ) {6 r = weź indeks losowego wektora7 s = najbliższy wektor z tej samej klasy co r8 a = najbliższy wektor z przeciwnej klasy względem r9 for( i=1 to n )
10 JRe(i) = JRe(i)− xri−xsiq + xri−xai
q
11 }
nrIter nie powinno być za duże, np. min(m,1000). Zamiast jednegonajbliższego, można użyć k najbliższych.
NJ (KIS/UMK) Uczenie maszynowe 125 / 197
Algorytmy selekcji cech Selekcja Relief
Selekcje i drzewa decyzyjne
O tym później. . .
NJ (KIS/UMK) Uczenie maszynowe 126 / 197
Analiza czynników głównych (PCA)
Analiza czynników głównych (PCA)
Analiza czynników głównych = Principal component analysisCelem PCA jest znalezienie obrotu przestrzeni, który zagwarantuje, żepo nim największą wariancją będzie charakteryzować się pierwszywymiar, drugi wymiar będzie miał największą wariancję z wyłączeniempierwszego, itd.Wymiary są do siebie prostopadłe.PCA sprawia, że pierwsze wymiary pochłaniają najwięcej zmienności wcałości danych. Czasem zdarza się, że tyko część pierwszych wymiarówcharakteryzuje się zmiennością a reszta nie wnosi zbyt wiele.Jak PCA można używać jako metodę redukcji wymiarowości? Jakowybranie k pierwszych wymiarów po obrocie.
Wady/Zalety:PCA w żaden sposób nie korzysta z etykiet klas. PCA patrzy wyłącznie naprzestrzeń wejściową.
NJ (KIS/UMK) Uczenie maszynowe 127 / 197
Analiza czynników głównych (PCA)
Przed obrotem:
F#1 F#2 F#3 F#4 F#5 F#6 F#7
26 000
24 000
22 000
20 000
18 000
16 000
14 000
12 000
10 000
8 000
6 000
4 000
2 000
0
[Dane bez standaryzacji]
Po obrocie:
Dimension_1 Dimension_2 Dimension_3 Dimension_4 Dimension_5 Dimension_6 Dimension_7
40 000
35 000
30 000
25 000
20 000
15 000
10 000
5 000
0
NJ (KIS/UMK) Uczenie maszynowe 128 / 197
Analiza czynników głównych (PCA)
Przed obrotem:
F#1 F#2 F#3 F#4 F#5 F#6 F#7
4.54
3.53
2.52
1.51
0.50
-0.5-1
-1.5-2
-2.5-3
[Dane po standaryzacji]
Po obrocie:
Dimension_1 Dimension_2 Dimension_3 Dimension_4 Dimension_5 Dimension_6 Dimension_7
4
3
2
1
0
-1
-2
-3
-4
-5
NJ (KIS/UMK) Uczenie maszynowe 129 / 197
Analiza czynników głównych (PCA)
SVD
SVD jest najefektywniejszą metodą dla PCA.Poprzez rozkład SVD macierz A można przedstawić jako:
A = UΣV T
gdzie Σ jest macierzą Σ =
[D 00 0
],m × n. D = diag(σ1, . . . , σn).
UT = U−1 a także V T = V−1.Tak więc macierz V jest szukaną macierzą obrotu.
Po dekompozycji należy posortować całość (Σ i V T ) względemwartości własnych Σ.Procedura numeryczna SVD jest dostępna w numerical recipes (C,C++, C#), w matlabie, lapack i in.
NJ (KIS/UMK) Uczenie maszynowe 130 / 197
Analiza czynników głównych (PCA)
Eigenfaces
NJ (KIS/UMK) Uczenie maszynowe 131 / 197
Skalowanie wielowymiarowe
Skalowanie wielowymiarowe
Skalowanie wielowymiarowe = Multidimensional scaling (MDS).MDS służy do nieliniowego rzutowania punktów z przestrzeniwielowymiarowej do niskowymiarowej, np. 2D.Cel podstawowy to wizualizacja danych wielowymiarowych napłaszczyźnie.Rzutowanie odbywa się w taki sposób, aby różnice odległości pomiędzypunktami w wielowymiarowej przestrzeni i niskowymiarowej przestrzenibyły możliwie zbliżone.
Niech δij = ‖xi − xj‖ będzie odległością w oryginalnej przestrzeni adij = ‖x ′i − x ′j‖ odległością w niskowymiarowej przestrzeni.
NJ (KIS/UMK) Uczenie maszynowe 132 / 197
Skalowanie wielowymiarowe
S(y) =1
Fn
∑i<j
Wij (δij − dij(y))2
This function is called the Stress. There are three types of Stress functionsused in the GhostMiner implementation of MDS (see for example R.O.Duda, P.E. Hart, D.G. Stork, Pattern Classification, 2nd Ed, John Wiley &Sons, New York 2001).
Wij = 1 Fn =∑
i<j d2ij S1(y) = 1∑Nt
i<j δ2ij
∑i<j (δij − dij)
2
Wij = 1δij
Fn =∑
i<j δij S2(y) = 1∑i<j δij
∑i<j
(δij−dij (y))2
δij
Wij = 1δ2ij
Fn = m(m − 1) S3(y) = 1m(m−1)
∑i<j
(δij−dij (y)
δij
)2S1 — classical MDSS2 — Sammon’s mappingS3 — relative errors 1− dij/dij and preserves the global structure (largerdistances) better at a cost of higher local distortions.
NJ (KIS/UMK) Uczenie maszynowe 133 / 197
Skalowanie wielowymiarowe
Algorytm: iteracyjna metoda zbieżności metodą spadku gradientu.Inicjalizacja przez PCA.
NJ (KIS/UMK) Uczenie maszynowe 134 / 197
Komitety maszyn uczących
Komitety maszyn uczących
Cele tworzenia komitetów maszynRozwiązywanie problemów wieloklasowych za pomocą maszyndedykowanych do problemów 2-klasowych.Budowanie maszyn dających lepsze rezultaty: większa dokładność, atakże większa stabilność.integracji mogą podlegać klasyfikatory jak i aproksymatory.
NJ (KIS/UMK) Uczenie maszynowe 135 / 197
Komitety maszyn uczących
Wszystkie komitety łączy niewątpliwie ogólny schemat ich budowy:
START
Dystrybucjadanych
Maszyna 1 Maszyna 2 . . . MaszynaT − 1
Maszyna T
Modułdecyzyjny
NJ (KIS/UMK) Uczenie maszynowe 136 / 197
Komitety maszyn uczących K -klasyfikatorów
K -klasyfikatorów / maszyna liniowa
Jeden klasyfikator na jedną klasęW celu zbudowania K -klasyfikatora oryginalny zbiór par uczących Dzamieniamy na K zbiorów, po jednym dla każdej z K klas:
Dk = {〈x1, yk1 〉, 〈x2, yk
2 〉, . . . 〈xm, ykm〉} k = 1, 2, . . . ,K , (117)
gdzie yki przyjmuje wartości 1 lub 0:
yki =
{1 yi = k
0 yi 6= ki = 1, 2, . . . ,m. (118)
Tak zdefiniowane zbiory Dk są zbiorami uczącymi dla poszczególnychpodmodeli komitetu.
NJ (KIS/UMK) Uczenie maszynowe 137 / 197
Komitety maszyn uczących K -klasyfikatorów
Każdy z podmodeli generuje wartość wyjściową C i (x) (dlai = 1, 2, . . . ,K ). Wartość C i (x) powinna być zawarta w przedziale[0, 1]. Wartość zbliżona do zera oznacza, że obserwacja x nieodpowiada klasie i , natomiast wartość C i (x) zbliżona do jedynkioznacza, że obserwacja x odpowiada klasie i .Moduł decyzyjny podejmuje ostateczną decyzję:
C (x) = arg maxi
C i (x). (119)
Normalizując wartości C i (x) możemy dostać prawdopodobieństwaprzynależności do poszczególnych klas:
p(C i |x) =C i (x)∑Kj=1 C j(x)
. (120)
NJ (KIS/UMK) Uczenie maszynowe 138 / 197
Komitety maszyn uczących K2-klasyfikatorów
K 2-klasyfikatorów
Maszyny dyskryminujące dla każdej pary klas ki , kj .
Komitet K 2-klasyfikatorów wymusza stworzenie dokładnie(K2
)maszyn
Cij dla i = 1, . . .K , j = 1, . . . ,K , j < i ityle samo zbiorów par uczących:
D ij = {〈xk , y ijk 〉 : yk = i ∨ yk = j〉}, (121)
gdzie y ijk przyjmuje wartości 1 lub 0:
y ijk =
{1 yk = i ,
0 yk 6= i .(122)
NJ (KIS/UMK) Uczenie maszynowe 139 / 197
Komitety maszyn uczących K2-klasyfikatorów
Dzięki konstrukcji powyższych zbiorów danych, każdy model Cij
posiada wiedzę o rozróżnianiu klasy i od klasy j .Mamy macierz klasyfikatorów (i ich odpowiedzi dla wektorówwejściowych x):
−C 2,1 −C 3,1 C 3,2 −...
.... . .
C k−1,1 C k−1,2 C k−1,3 −C k,1 C k,2 C k,3 · · · C k,k−1 −
. (123)
Niestety, gdy zapytamy model Cij o klasyfikacje wektora, któryewidentnie należy do klasy różnej od i i j , trudno spodziewać sięracjonalnej odpowiedzi (model Cij nigdy nie widział wektorównależących do tej klasy!).NJ (KIS/UMK) Uczenie maszynowe 140 / 197
Komitety maszyn uczących K2-klasyfikatorów
Przynależność danego wektora x do klasy i można zdefiniować przezponiższe równanie
p(C i |x) =
∑〈j ,i〉,i 6=j C ij(x)∑〈k,j〉,k 6=j C kj(x)
, (124)
zakładamy C ji (x) = 1− C ij(x).Bardziej zalecane jest dokonanie wstępnej diagnozy w oparciu okomitet K -klasyfikatorów. Następnie, gdy nie mamy pełnejjednoznaczności, tj. istnieją dwie (czasem więcej) klasy i i j , dlaktórych wartości C i (x) i C j(x) (patrz równanie 119) są duże, możnaposiłkować się klasyfikatorem C ij , który specjalizuje się wrozstrzyganiu przynależności do jednej z klas i i j .Komitet K 2-klasyfikatorów może okazać się efektywniejszy odk-klasyfikatorów, gdy podmodelami komitetów będą liniowe modeledyskryminujące, a także gdy maszyny źle radzą sobie z problemami odużych dysproporcjach liczebności instancji poszczególnych klas.
NJ (KIS/UMK) Uczenie maszynowe 141 / 197
Komitety maszyn uczących Typy modułów decyzyjnych
Podstawowe typy modułów decyzyjnych komitetówklasyfikujących
Ogólna postać komitetu może być następująca:
F (x) =T∑i=1
wiFi (x) (125)
Jak widać, efektem komitetu jest po prostu ważona kombinacja podmodeli.Najczęściej suma wag wi powinna być równa 1, a poszczególne wi ≥ 0 (a wnajprostszym przypadku wi = 1/T ). [UWAGA: tutaj Fi i F to wektory Kelementowy — jedna wartość dla każdej klasy (127).]
W przypadku klasyfikacji można przeprowadzić głosowanie w oparciuo klasyfikacje poszczególnych modeli komitetu:
V (x) = arg maxi
∑j : Fj (x)=i
1. (126)
NJ (KIS/UMK) Uczenie maszynowe 142 / 197
Komitety maszyn uczących Typy modułów decyzyjnych
Zakładając natomiast, że każdy model daje nie tylko etykietę zwycięskiejklasy, ale także wektor prawdopodobieństw poszczególnych klas:
pi = Fi (x), (127)
gdzie pi = [pi1, . . . , p
iK ], a K jest liczbą klas, możemy wyznaczać
prawdopodobieństwa dla komitetu:
pw (Ci |x) =1T
T∑j=1
pji . (128)
Na podstawie tych prawdopodobieństw można stworzyć komitet ważony:
W (x) = arg maxi=1,...,K
pw (Ci |x). (129)
NJ (KIS/UMK) Uczenie maszynowe 143 / 197
Komitety maszyn uczących Budowanie komitetów
Budowanie komitetów — kiedy komitet ma sens?
Komitet nieróżnorodnych maszyn Fi nie ma sensu!Ponieważ generuje taką samą decyzję jak F1 (skoro F1(x) = Fi (x))Różnorodność danych Di
Różnorodność maszyn Fi : z różnorodności konfiguracji lub typówmaszyn.
NJ (KIS/UMK) Uczenie maszynowe 144 / 197
Komitety maszyn uczących Komitet kroswalidacyjny
Komitet kroswalidacyjny
Tworzymy zbiory danych jak do CV: Di i D′i \ D.Uczymy T maszyn na zbiorach D′i (jak w CV)Nauczone maszyny używamy jako podmaszyny komitetu (głosującegolub ważonego).
NJ (KIS/UMK) Uczenie maszynowe 145 / 197
Komitety maszyn uczących Adaboosting
Adaboosting
Uczenie kolejnych maszyn komitetu poprzez obserwacjewcześniejszych błędów.Adaboosting w każdej i-ej iteracji uczenia powtarza sekwencje kroków:
1 Tworzenie zbioru uczącego Di dla i-ego klasyfikatora do rozkładudanych Di .
2 Uczenie maszyny Li na danych Di .3 Test maszyny Li na oryginalnych danych uczących D i ustalenie
błędów dla poszczególnych instancji danych (missi (xj)).4 Wyznaczenie błędu boostingu εi .5 Estymacja nowego rozkładu danych Di+1 w oparciu o zmiany
klasyfikacji po ostatnim uczeniu.
Wady: maszyny muszą być uczone sekwencyjnie.
NJ (KIS/UMK) Uczenie maszynowe 146 / 197
Komitety maszyn uczących Adaboosting
Rozkład danych Di
Wartość początkowa rozkładu Di to:
D1(xj) = 1/m. (130)
Następnie rozkład zmienia sie zgodnie z:
Di+1(xj) =Di (xj)
Zi·
{1
2(1−εi ) if Fi (xj) 6= yj12εi
¬, (131)
gdzie Zi normalizuje do 1 sumę prawdopodobieństw.Błąd boostingu εi jest zdefiniowany przez
εi =∑
j :Fi (xj )6=yj
Di (xj). (132)
NJ (KIS/UMK) Uczenie maszynowe 147 / 197
Komitety maszyn uczących Adaboosting
Moduł decyzyjny boostingu, którego zadanie jest klasyfikacja wektora x,jest zdefiniowany poprzez:
M(x) = arg maxk=1,...,K
∑{i :Mi (x)=k}
log1− εiεi
, (133)
gdzie Mi (x) jest decyzją i-tej maszyny a K liczbą klas.
NJ (KIS/UMK) Uczenie maszynowe 148 / 197
Komitety maszyn uczących Adaboosting
0 2 4 6 8
0.2
0.4
0.6
0.8
T
Accuracy
autos
hetero NB LVQ EC DS
0 2 4 6 80.5
0.6
0.7
0.8
0.9
TAccuracy
balance-scale
hetero NB LVQ EC DS
NJ (KIS/UMK) Uczenie maszynowe 149 / 197
Komitety maszyn uczących Adaboosting
0 2 4 6 8
0.7
0.8
0.9
T
Accuracy
chess-king-rook-vs-king-pawn
hetero NB LVQ EC DS
0 2 4 6 8
0.4
0.5
0.6
0.7
0.8
TAccuracy
ecoli
hetero NB LVQ EC DS
NJ (KIS/UMK) Uczenie maszynowe 150 / 197
Komitety maszyn uczących Adaboosting
0 2 4 6 8
0.2
0.4
0.6
T
Accuracy
glass
hetero NB LVQ EC DS
0 2 4 6 8
0.7
0.75
0.8
0.85
0.9
TAccuracy
parkinsons
hetero NB LVQ EC DS
NJ (KIS/UMK) Uczenie maszynowe 151 / 197
Komitety maszyn uczących Stacking
Stacking
W metodach typu stacking miejsce modułu decyzyjnego zajmujemodel adaptacyjny, który reguluje wpływy poszczególnych składowychkomitetu.Uczenie w stackingu przebiega dwuetapowo:– nauczenie T podmaszyn komitetu.– uczenie odpowiedniej maszyny modułu decyzyjnego na podstawiedecyzji podejmowanych przez podmodele komitetu.Maszyny w Stackingu mogą być uczone równolegle (są niezależne wprzeciwieństwie do AdaBoostingu).
NJ (KIS/UMK) Uczenie maszynowe 152 / 197
Komitety maszyn uczących Stacking
W stackingu podmodele mają przygotowywane dane do uczenia, jakdla kroswalidacji. i-ty model uczy się na danych D′i = D \ Di .Następnie tworzy się zbiór danych uczących moduł adaptacyjny:
DCV = {〈zi , yi 〉, i = 1, . . . ,m}, (134)
gdzie zi jest wektorem:
[zi1, zi2, . . . , ziT ] = [F1(xi ),F2(xi ), . . . ,FT (xi )]. (135)
Jak teraz widać, moduł decyzyjny będzie uczony w oparciu o wyjściapodmodeli komitetu.
NJ (KIS/UMK) Uczenie maszynowe 153 / 197
Komitety maszyn uczących Stacking
Moduł decyzyjny może być realizowany przez dowolny klasyfikator.Tak więc podjęcie decyzji przez Stacking to– wyznaczenie decyzji podmaszyn– a na ich podstawie podejmuje decyzje nauczony moduł decyzyjny.
NJ (KIS/UMK) Uczenie maszynowe 154 / 197
Selekcja wektorów/prototypów
Selekcja wektorów/prototypów
Selekcja wektorów/prototypów = usunięcie z danych D części wierszy. Toco pozostaje staje się zbiorem uczącym.CELE selekcji wektorów:
Filtrowanie, czyli usuwanie przeszkadzających wektorów. Szczególniewektorów, które są niejako sprzeczne z pozostałymi wektorami danych.Zmniejszenie zbioru uczącego prowadzące do zmniejszenia złożonościuczenia. Jednocześnie możliwie nie pogarszając klasyfikacji.Selekcja prototypów, czyli bardzo niewielkiej części wektorów z D,które wystarczają do opisu wiedzy całości danych D.
NJ (KIS/UMK) Uczenie maszynowe 155 / 197
Selekcja wektorów/prototypów Metody filtrujące
Metody filtrujące
Edited Nearest Neighbor (ENN)
Usuwa wektory, których klasa jest niezgodna z klasą większościowąnajbliższych sąsiadów:
1 ENN(D,k) {2 foreach (xi in D)3 {4 Nk = k najbliższych sąsiadów xi ;5 yy = arg maxk ′ |{ya : xa ∈ Nk ∧ ya = k ′}|;6 if (yi 6= yy )7 usuń xi z D;8 }9 return D;
10 }
NJ (KIS/UMK) Uczenie maszynowe 156 / 197
Selekcja wektorów/prototypów Metody filtrujące
Repeated Edited Nearest Neighbor (RENN)
Powtarza ENN tak długo, jak tylko nastąpiło usunięcie wektora z D.
1 RENN(D,k) {2 do{3 l = |D|;4 D = ENN(D, k);5 }while( l != |D| );6 return D;7 }
NJ (KIS/UMK) Uczenie maszynowe 157 / 197
Selekcja wektorów/prototypów Metody filtrujące
All-k Nearest Neighbor (AkNN)
Powtarza ENN dla szeregu różnych k .
1 AkNN(D,l)2 {3 for (k=1 to l )4 D = ENN(D, k);5 return D;6 }
NJ (KIS/UMK) Uczenie maszynowe 158 / 197
Selekcja wektorów/prototypów Metody filtrujące
Edited NRBF (ENRBF)
ENRBF usuwa takie wektory xi (w pętli), dla których:
∃k 6=yi P(yi |xi ,Di ) < αP(k |xi ,Di ), (136)
gdzie Di = D − 〈xi , yi 〉, a α ∈ (0, 1].Natomiast P(k |xi ,Di ) jest liczone jak w NRBF.
Czyli usuwanie wektorów xi , których klasyfikacja była by prawie na pewnobłędna, po usunięciu xi z D. [Czyli wektory niekonsystentne. Podobnie jakENN.]
NJ (KIS/UMK) Uczenie maszynowe 159 / 197
Selekcja wektorów/prototypów Metody filtrujące
Condensed Nearest Neighbor Rule (CNN)Startuje z losowego wektora danych D.Następnie każdy wektor źle klasyfikowany jest dodawany do nowegozbioru.Ten algorytm jest mocno wrażliwy na kolejność rozpatrywaniawektorów.
1 CNN(D,k) {2 S = losowy wektor x′ z D;3 foreach (xi in D \ {x′} )4 yy = classify(xi ,k);5 if (yi != yy)6 S = S + 〈xi , yi 〉7 return S;8 }
[niska efektywność!]
NJ (KIS/UMK) Uczenie maszynowe 160 / 197
Selekcja wektorów/prototypów Selekcja prototypów
Selekcja prototypów
DROP1–DROP4, czyli seria algorytmów DROP
Niech A(x, k) oznacza zbiór wektorów, dla których x jest jednym z knajbliższych sąsiadów. A(x, k) to wektory, na które wpływa x.
F#337363534333231302928272625242322212019
F#5
53525150494847464544434241403938373635343332313029282726252423222120191817
NJ (KIS/UMK) Uczenie maszynowe 161 / 197
Selekcja wektorów/prototypów Selekcja prototypów
DROP1Usuwa instancje x ze zbioru D jeśli nie zmienia to klasyfikacji elementów zbioruA(x).
1 DROP1(D,k) {2 do{3 foreach (xi in D in random order ) {4 delete xi if it will not change5 classification of instances from A(xi , k)6 }7 } while(changes);8 return D;9 }
NJ (KIS/UMK) Uczenie maszynowe 162 / 197
Selekcja wektorów/prototypów Selekcja prototypów
DROP2Ma znacznie lepszą efektywność.DROP2 nie przegląda wektorów w kolejności losowej!DROP2 startuje od sortowania po odległościach poszczególnychinstancji od najbliższego im wektora klasy przeciwnej. Sortowaniemalejące. Każdemu xi wyznaczamy najbliższego wroga i jegoodległość.
1 DROP2(D,k)2 do {3 foreach (xi in D in dist−order)4 delete xi if it will not change5 classification of instances from A(xi , k)6 } while(changes in D)7 return D;8 end
NJ (KIS/UMK) Uczenie maszynowe 163 / 197
Selekcja wektorów/prototypów Selekcja prototypów
DROP3DROP3 przed uruchomieniem DROP2 zapuszcza ENN.
DROP4DROP4 zaczyna od zaostrzonej procedury ENN:aby usunąć x, jego klasa musi być nie tylko inna niż większościowasąsiadów, ale dodatkowo usunięcie musi nie pogarszać klasyfikacji.Po tym wstępnym procesie następuje zapuszczenie DROP2.
NJ (KIS/UMK) Uczenie maszynowe 164 / 197
Selekcja wektorów/prototypów Selekcja prototypów
1 DROP4(D,k)2 foreach (xi in D)3 delete xi if kNN(x,k) 6= yi and it will not4 change classification of instances from A(xi , k)5 do {6 foreach (xi in D in dist−order)7 delete xi if it will not change8 classification of instances from A(xi , k)9 } while (changes in D)
10 return D;11 end
NJ (KIS/UMK) Uczenie maszynowe 165 / 197
Selekcja wektorów/prototypów Selekcja prototypów
Długość kodowania
Niech S oznacza nowy zbiór wektorów, który stanie się ostatecznymzbiorem prototypów.
Cel to minimalizacja:
J(m,m′, q) = F (m′,m) + m′ log2 K + F (q,m−m′) + q log2(K −1), (137)
m i m′ są liczbami wektorów w oryginalnym (D) i uproszczonym (S)zbiorze. K jest liczbą klas. q jest liczbą źle sklasyfikowanych wektorów zD \ S .
F (m, n) = log∗
(m∑i=0
n!
i !(n − i)!)
), (138)
log∗ n = arg mink
F ′(k) ≥ n
F ′(0) = 1,F ′(i) = 2F′(i−1).
NJ (KIS/UMK) Uczenie maszynowe 166 / 197
Selekcja wektorów/prototypów Selekcja prototypów
EncLenStart S z oryginalnego zbioru D.W pętli losowo po wszystkich wektorach: Usuwane są te wektory,które minimalizują J(·) (jeśli usunięcie wektora zmniejsza J).
NJ (KIS/UMK) Uczenie maszynowe 167 / 197
Selekcja wektorów/prototypów Selekcja prototypów
1 EncLen(D, startS = D, R = D)2 S = startS3 m′ = m4 q = numerOfErrors(D \ S , S)5 j = J(m,m′, q)6 foreach (xi in R) {7 S = S \ {xi}8 m′−−9 q = numerOfErrors(D \ S , S)
10 j ′ = J(m,m′, q)11 if(j ′ ≤ j)12 j = j ′
13 else {14 S = S ∪ {xi}15 m′++16 }17 }18 return S ;19 end
start: EncLen(D,D,D)NJ (KIS/UMK) Uczenie maszynowe 168 / 197
Selekcja wektorów/prototypów Selekcja prototypów
EncLenGrowStartuje z pustego zbioru S .Dodaje pierwszy losowy wektor do zbioru S .Kolejne wektory są oglądane w losowej kolejności i dodawane do zbioruS jeśli tylko koszt J po dodaniu okazał by się mniejszy.W kolejnym kroku wołany jest EncLen
NJ (KIS/UMK) Uczenie maszynowe 169 / 197
Selekcja wektorów/prototypów Selekcja prototypów
1 EncLenGrow(D)2 S = ∅3 m′ = 04 q = numerOfErrors(D \ S , S)5 j = J(m,m′, q)6 foreach (xi in D) {7 S = S ∪ {xi}8 m′++9 q = numerOfErrors(D \ S , S)
10 j ′ = J(m,m′, q)11 if(j ′ ≤ j)12 j = j ′
13 else {14 S = S \ {xi}15 m′−−16 }17 }18 S = EncLen(D, S , S)19 return S ;20 end
NJ (KIS/UMK) Uczenie maszynowe 170 / 197
Selekcja wektorów/prototypów Selekcja prototypów
ExploreStartuje z EncLenGrowWykonuje 1000 mutacji:
dodających losowy wektor albousuwających losowy wektor albozamieniający losowy wektor z S z wektorem z D \ S .
To czy w danej iteracji będzie wykonane dodawanie/usuwanie/zamiana jestlosowane.
A to czy w ogóle operacja zostanie wykonana zależy od tego czy przyniesieto zmniejszenie kosztu J.
NJ (KIS/UMK) Uczenie maszynowe 171 / 197
Selekcja wektorów/prototypów Selekcja prototypów
1 Explore(D, p)2 S = EncLenGrow(D)3 for (i=1 to p) {4 switch (random_action 1 of 3) {5 case 1:6 try to add random instance from D \ S7 if only J will decrease8 case 2:9 try to remove random instance from S
10 if only J will decrease11 case 3:12 try to13 add random instance from D \ S14 AND15 remove random instance from S16 if only J will decrease17 }18 }19 return S;20 end
NJ (KIS/UMK) Uczenie maszynowe 172 / 197
Selekcja wektorów/prototypów Selekcja prototypów
DelStartuje z pełnego zbioru.Dla źle klasyfikowanych wektorów próbuje je usunąć gdy zmniejsza tokryterium J.Sortowanie wektorów po ich odległości od swoich najbliższych wrogów.Od najodleglejszych do najbliższych.W wyznaczonej kolejności, co jeszcze jest nie usunięte, to próbujemyusuwać, gdy tylko spełnia zmniejszenie kryterium J.ostatni krok powtarzamy tak długo jak tylko choć dla jednego wektoraudało się zmniejszyć kryterium J.
NJ (KIS/UMK) Uczenie maszynowe 173 / 197
Selekcja wektorów/prototypów Selekcja prototypów
1 function DEL(D)2 R = set of badly classified instances from D3 S = EncLen(D, D, R)4 S = sort(S) in descend order of distance5 to nearest enemy6 do {7 S ′ = S8 S = EncLen(D, S , S)9 } while (S != S ′)
10 return S ;11 end
NJ (KIS/UMK) Uczenie maszynowe 174 / 197
Selekcja wektorów/prototypów Selekcja prototypów
0 40 80
-8
-4
0Explore
ENRBF95DROP2
ELH
AllKNNENN
LVQ
RMHC
ENRBFENRBF99
MC1
DEL
DROP4DROP3
GE
ICF
IB3ELGrow
RNGE
DROP1
CNN
RENN
DROP5
E
|S|/|T|
kNN
NJ (KIS/UMK) Uczenie maszynowe 175 / 197
Drzewa decyzyjne
Drzewa decyzyjne i reguły logiczne
NJ (KIS/UMK) Uczenie maszynowe 176 / 197
Drzewa decyzyjne
NJ (KIS/UMK) Uczenie maszynowe 177 / 197
Drzewa decyzyjne
NJ (KIS/UMK) Uczenie maszynowe 178 / 197
Drzewa decyzyjne
1 TreeGrowing(D)2 T = single node tree;3 if (osiągnięto kryterium stopu)4 oznaczamy węzeł T jako liść, który etykietujemy5 większościową klasą z D;6 else{7 znajdź takie kryterium podziału pewnej cechy A, że8 podział S zgodnie z f(A) dzieli na (v1, . . . , vq)9 i jest najlepszym podziałem ze wszystkich możliwych;
10 if (wartość jakości podziału > próg) {11 etykietujemy T na f(A);12 foreach vi in dom(f(A)) {13 subtree_i = TreeGrowing (Df (A)=vi );14 dodaj subtree_i do listy dzieci T15 z wartością vi na krawędzi;16 }17 }else{18 oznacz korzeń T jako liść z klasą większościową z D;19 }20 }21 return T;
NJ (KIS/UMK) Uczenie maszynowe 179 / 197
Drzewa decyzyjne
1 TreePruning(D,T)2 do{3 wybierz taki węzeł n drzewa T, którego usunięcie powoduje4 zwiększenie miary jakości drzewa;5 if (n != 0)6 T = pruned(T,n);7 }while (n != 0);8 return T;
n = 0 dla korzenia
NJ (KIS/UMK) Uczenie maszynowe 180 / 197
Drzewa decyzyjne
Drzewa decyzyjne definiuje
Kryterium stopuKryterium jakości podziału (czystości) i sposobu dokonywania podziałuMetoda obcinania drzewa, kryterium kontynuacji obcinania drzewa
NJ (KIS/UMK) Uczenie maszynowe 181 / 197
Drzewa decyzyjne Kryterium nieczystości
Kryterium nieczystości
Weźmy jako zmienną losową wartości klas y lub wartości cechy Xi dla wszystkichwektorów.
Tymczasowo załóżmy, że cechy są dyskretne. Potem zobaczymy, że możemy sobietakże radzić, gdy cechy są ciągłe.
Niech P = (p1, . . . , pK ) będą prawdopodobieństwami poszczególnych klas lubp-stwa wartości pewnej cechy.
Wtedy kryterium nieczystości φ(P) : [0, 1]K → R ma własności:
φ(P) ≥ 0.
φ(P) jest minimalne, gdy istnieje pi = 1.
φ(P) jest maksymalne, gdy wszystkie pi = 1/K .
Rolę funkcji nieczystości może pełnić poznana już entropia:
H(P) = −∑i
pi log pi
.NJ (KIS/UMK) Uczenie maszynowe 182 / 197
Drzewa decyzyjne Kryterium nieczystości
Przykłady entropii
H((1/2, 1/2)) = −2 ∗ (1/2 ∗ −1) = 1H((1/4, 1/4, 1/4, 1/4)) = −4 ∗ (1/4 ∗ −2) = 2H((1/n, 1/n, . . . , 1/n)) = −n ∗ (1/n ∗ log n−1) = log n
H((1, 0, 0, 0)) = −1 log 1 = 0
NJ (KIS/UMK) Uczenie maszynowe 183 / 197
Drzewa decyzyjne Jakość punktu podziału
Jakość punktu podziału
Aby uzyskać możliwość mierzenia tego na ile obecną nieczystośćzmniejszymy wybierając taki czy inny podział należy od miary nieczystościodjąć wartości nieczystości jakie powstaną po podziale:
∆φ(D, f (A)) = φ(y)−∑
a∈dom(f (A))
|Da||D|
φ(ya) (139)
Zakładamy, że f (A) to pewien podział (pewnej cechy) i że dzieli on danącechę na wartości: dom(f (A)). Dla przykładu: podział cechy zdrowy natak i nie albo podział cechy wzrost na wartości < 150 i ≥ 150.
Da składa się z tych wektorów danych D, które po podziale będą miaływartości a. Podobnie ya odpowiada skróconemu wektorowi klas do tych zdanych Da.
Czym większa wartość ∆φ(D, f (A)), tym lepszy podział f (A).
NJ (KIS/UMK) Uczenie maszynowe 184 / 197
Drzewa decyzyjne Jakość punktu podziału
Kryteria oceny punktu podziału
Kryterium wzrostu informacyjnego
InfoGain(D, f (A)) = H(y)−∑
a∈dom(f (A))
|Da||D|
H(ya) (140)
Kryterium wzrostu Gain ration
GainRation(D, f (A)) =InfoGain(D, f (A))
H(q)(141)
gdzie q = [q1, . . . , q|dom(f (A))|], a qi = |Dai |/|D|, gdzie ai ∈ dom(f (A)).
NJ (KIS/UMK) Uczenie maszynowe 185 / 197
Drzewa decyzyjne Jakość punktu podziału
Gini
Kryterium nieczystości Gini
Gini(y) =K∑i=1
|yclass=i ||y|
(1− |yclass=i |
|y|
)= 1−
K∑i=1
(|yclass=i ||y|
)2
(142)
Gini([1 0]) = 1 - 1 = 0Gini([1/2 1/2]) = 1 - (1/4 + 1/4) = 1/2Gini([1/3 2/3]) = 1 - (1/9 + 4/9 ) = 4/9Gini([1/4 1/4 1/4 1/4]) = 1 - 1/4 = 3/4
Wtedy kryterium wzrostu Gini to:
GiniGain(D, f (A)) = Gini(y)−∑
a∈dom(f (A))
|Da||D|
Gini(ya) (143)
NJ (KIS/UMK) Uczenie maszynowe 186 / 197
Drzewa decyzyjne Jakość punktu podziału
Kryterium wzrostu Twoing
Twoing(D, f (A)) = 0.25 ·|Ddom(f (A)=T )|
|D|·|Ddom(f (A)=N)|
|D|·(
K∑i=1
∣∣∣∣ |Ddom(f (A)=T ),class=i ||Ddom(f (A)=T )|
−|Ddom(f (A)=N),class=i ||Ddom(f (A)=N)|
∣∣∣∣)2
(144)
gdzie
dom(f (A) = T ) ∪ dom(f (A) = N) = dom(f (A))dom(f (A) = T ) ∩ dom(f (A) = N) = ∅
NJ (KIS/UMK) Uczenie maszynowe 187 / 197
Drzewa decyzyjne Jakość punktu podziału
SSV
SSV (D, f (A)) = 2K∑i=1
|Ddom(f (A)=T ),class=i | · |Ddom(f (A)=N),class 6=i |
−K∑i=1
min(Ddom(f (A)=T ),class=i ,Ddom(f (A)=N),class=i ) (145)
NJ (KIS/UMK) Uczenie maszynowe 188 / 197
Drzewa decyzyjne Kryteria stopu rozrostu drzewa
Kryteria stopu rozrostu drzewa
Wszystkie węzły liście są czyste (składają się tylko z wektorów tejsamej klasy). PEŁNE drzewo.Osiągnięto maksymalną głębokość drzewa.Węzeł ma za małą liczbę instancji, aby stał się węzłem kolejnegopodziału.Jedno z dzieci węzła ma za małą liczbę instancji, aby kontynuowaćpodziały.Kryterium podziału osiągnęło wartość progową.
NJ (KIS/UMK) Uczenie maszynowe 189 / 197
Drzewa decyzyjne Metody obcinania drzew
Metody obcinania drzew
Najczęstszą metodą budowania drzewa jest utworzenie drzewa pełnegoa potem usuwa się co niepotrzebne.
Używanie drzew pełnych prowadzi do używania przeuczonych modeli,czyli takich, które zatracają możliwości generalizacji.Obcinanie węzłów ma więc doprowadzić do takich drzew, które będąmożliwie najlepszymi klasyfikatorami — dającymi najlepszepoprawności klasyfikacji.Najczęściej optymalne konfiguracje obcinania uzyskuje się poprzezkroswalidację do uczenia.Czyli podglądamy jak różnie silnie(!) przycięte drzewa klasyfikują danetestowe. Na tej podstawie uśredniamy siłę przycinania do takiej, którapowinna dać najlepsze wyniki.
NJ (KIS/UMK) Uczenie maszynowe 190 / 197
Drzewa decyzyjne Metody obcinania drzew
Przycinanie CV
W procesie CV wyznacza się jak silnie obcinać:Wyznaczanie optymalnej liczby węzłów.Wyznaczanie optymalnej głębokości drzewa.
NJ (KIS/UMK) Uczenie maszynowe 191 / 197
Drzewa decyzyjne Metody obcinania drzew
Przycinanie bazujące na błędzie
Dla każdego węzła wewnętrznego (nie będącego liściem) sprawdza sięczy jego ucięcie nie pogarsza klasyfikacji.Jeśli tak węzeł jest ucinany a proces obcinania kontynuowany.
NJ (KIS/UMK) Uczenie maszynowe 192 / 197
Drzewa decyzyjne Metody obcinania drzew
Przycinanie bazujące na złożoności
Analizuje się ciąg drzew T0, . . . ,Tq, gdzie T0 jest pełnym drzewem akolejne mają po węźle mniej, aż do Tq, które jest korzeniem.Drzewo Ti+1 powstaje poprzez zastąpienie pewnego węzła liściem.Węzeł wybiera się taki, który spowoduje najmniejsze zwiększenie błęduzdefiniowanego poprzez:
δ =ε(pruned(T ,w),D′)− ε(T ,D′)
|leaves(T )| − |leaves(pruned(T ,w))|(146)
pruned(T ,w) to drzewo, w którym węzeł w zastąpiono liściem. Jakwidać nie patrzy się tylko na jakość klasyfikacji ale także waży się ilośćliści drzewa, czyli węzłów decyzyjnych.W dalszej kolejności wybiera się to drzewo Ti , które daje najmniejszybłąd klasyfikacji.
NJ (KIS/UMK) Uczenie maszynowe 193 / 197
Drzewa decyzyjne Metody obcinania drzew
Inne obcinania
Obcinanie bazujące na błędzie i testach statystycznychMDL...
NJ (KIS/UMK) Uczenie maszynowe 194 / 197
Drzewa decyzyjne Metody obcinania drzew
Znane typy drzew
Alg Podział ObcinanieID3 InfoGain bez obcinaniaC4.5 GainRation obcinanie bazujące na błędzieCART Twoing obcinanie złożonościoweSSV ssv CV + l. w., gł.
NJ (KIS/UMK) Uczenie maszynowe 195 / 197
Drzewa decyzyjne Metody obcinania drzew
Drzewa decyzyjne a selekcja cech
Z metod oceny punktów podziałów łatwo zbudować rankingi cech.
ocena cechy = Wartość najlepszego punktu podziałuranking = cechy, które były użyte w drzewie, ranking z kolejności użyćbądź wartości użytych podziałów cech (najlepszych jeśli cechaużywana wielokrotnie).ocena cechy = jeśli użyto cechy w drzewie, to bierzemy jej największywkład (największą wartoć podziału danej cech), w przeciwnymprzypadku ocena 0.
NJ (KIS/UMK) Uczenie maszynowe 196 / 197
Drzewa decyzyjne Metody obcinania drzew
Lasy drzew (Tree forests)
To jeden z częstszych sposobów budowania komitetów z drzewdecyzyjnych.
Dystrybutor danych: każda maszyna ucząca w komitecie dostaje(najczęściej) dane wynikające z losowego podzbioru czech.Typowo buduje się komitet z "niewyrafinowanych" drzew, czyli raczejz drzew o niedużej złożoności.Komitet może być głosujący lub ważony.i juz :)
NJ (KIS/UMK) Uczenie maszynowe 197 / 197
Drzewa decyzyjne Metody obcinania drzew
1 Literatura2 Wstęp3 Liniowa dyskryminacja
LMS — least mean squares4 Regresja liniowa5 k najbliższych sąsiadów6 Znormalizowane radialne funkcje bazowe7 Klasyfikator MAP & maksymalnej wiarygodności (Maximum likelihood)8 Optymalny i naiwny klasyfikator Bayesowski9 Klasteryzacja
k-średnich (k-means)Dendrogramydbscan
10 Metody testowania maszyn uczących11 Oprogramowanie data mining12 Learning vector quantization LVQ13 Maszyna wektorów wspierających (SVM)
NJ (KIS/UMK) Uczenie maszynowe 197 / 197
Drzewa decyzyjne Metody obcinania drzew
Funkcje jądroweKonstrukcja optymalnej hiperpłaszczyznyHiperpłaszczyzna dla przypadków nieseparowalnychν-SVCSVM dla regresji (ε-SVR)Optymalizacja problemów programowania kwadratowegoSMO
14 Extreme learning machines15 Algorytmy selekcji cech
Korelacja liniowa i selekcja cechSelekcje cech za pomocą F-scoraSelekcja za pomocą liniowego SVMRankingi teorio–informacyjneSelekcje Forward i BackwardSelekcja Relief
16 Analiza czynników głównych (PCA)17 Skalowanie wielowymiarowe18 Komitety maszyn uczących
NJ (KIS/UMK) Uczenie maszynowe 197 / 197
Drzewa decyzyjne Metody obcinania drzew
K -klasyfikatorówK 2-klasyfikatorówTypy modułów decyzyjnychBudowanie komitetówKomitet kroswalidacyjnyAdaboostingStacking
19 Selekcja wektorów/prototypówMetody filtrująceSelekcja prototypów
20 Drzewa decyzyjneKryterium nieczystościJakość punktu podziałuKryteria stopu rozrostu drzewaMetody obcinania drzew
NJ (KIS/UMK) Uczenie maszynowe 197 / 197