Agnieszka Nowak Brzezińska Wykład 2 z 5zsi.tech.us.edu.pl/~nowak/ed/PED_w2.pdf · Wykład 2 z 5....
Transcript of Agnieszka Nowak Brzezińska Wykład 2 z 5zsi.tech.us.edu.pl/~nowak/ed/PED_w2.pdf · Wykład 2 z 5....
Agnieszka Nowak – Brzezińska
Wykład 2 z 5
metoda typ Zmienna niezależna
Regresja liniowa Regresja Wszystkie ilościowe Zakłada liniową zależność, prosta w implementacji
Analiza dyskryminacyjna
klasyfikacja Wszystkie ilościowe Zakłada istnienie podobnych grup
Regresja logistyczna Klasyfikacja Wszystkie ilościowe Oblicza prawdopodobieństwo
Naiwny klasyfikator Bayesa
klasyfikacja Tylko nominalne (jakościowe)
Wymaga dużego zbioru danych
K-NN Regresja lub klasyfikacja
Wszystkie ilościowe Dobre dla nieliniowych zależności, dla odchyleń w danych, i dobrze wyjaśnia dane
Sieci neuronowe Regresja lub klasyfikacja
Wszystkie ilościowe Model czarnej skrzynki
CART Regresja lub klasyfikacja
Każde Dobrze wyjaśnia rozumowanie za pomocą drzew klasyfikacji
Klasyfikacja to technika, którą wykorzystuje się w takich dziedzinach jak np. statystyka, sztuczna inteligencja i uczenie maszynowe. Oprócz tego znajduje ona zastosowanie w wielu sytuacjach, takich jak: rozpoznawanie obiektów obrazów graficznych, przewidywanie nowości na rynkach finansowych, przy wspomaganiu przeróżnych decyzji opierających się na dużej ilości informacji oraz w medycynie przy diagnozowaniu chorób pacjentów.
Klasyfikacja umożliwia znalezienie w zbiorze predefiniowanych klas odwzorowania nieznanych danych za pomocą stworzonego modelu zwanego klasyfikatorem.
Klasyfikowanie nowych obiektów czy też bardziej pełne uświadomienie istniejących podziałów tych obiektów na predefiniowane klasy określonej bazy danych odbywa się za pośrednictwem modelu, który tworzony jest na podstawie danych zawartych w tej bazie.
Klasyfikację można podzielić na następujące etapy:
1. Budowa klasyfikatora (modelu).
2. Testowanie modelu.
3. Wykorzystanie zbudowanego modelu do przewidzenia nieznanych wartości.
Najistotniejszym zadaniem klasyfikacji jest budowa określonego modelu, który posłuży później do predykcji przydziału do klasy, gdzie jest ona nieznana. W tym przypadku wykorzystuje się do tego część zebranych danych (np. przykłady, doświadczenia, czynniki, wektory itd.) tzw. zbiór treningowy. Zbiór ten wydzielany jest na podstawie podziału całej bazy danych na dwie części, z czego jedna część to właśnie zbiór treningowy, a druga to zbiór testowy. Oba zbiory składają się z listy cech (atrybutów) oraz przyporządkowanych do tych cech klas, będących wartościami decyzyjnymi.
Klasyfikator opierając się na zbiorze treningowym uczy się właściwości danych i przypisuje każdemu wektorowi klasę, czyli wartość decyzyjną, będącą wielkością wyjściową modelu.
Testowanie zbudowanego modelu to określenie jakości (dokładności) z jaką dokonuje on predykcji klas.
Testowanie to odbywa się z wykorzystaniem zbioru testowego, który jest zbiorem przykładów utworzonym przy wcześniejszym podziale całej bazy danych na dwie części.
W zależności od ilości danych (np. przykładów) jakie posiada określona baza danych, podział ten jest dokonywany w różnych proporcjach, gdzie najczęściej zbiór testowy przyjmuje 25-50% danych, a zbiór treningowy pozostałą część.
Dokładność danego klasyfikatora wyznaczana jest w następujący sposób: znane wartości decyzyjne przykładów zbioru testowego porównywane są z klasami przewidzianymi przy użyciu tego modelu na tych przykładach.
Z dokonanego porównania wyznaczana jest procentowa dokładność poprawnie zakwalifikowanych przykładów do danych klas, co daje wartość współczynnika jakości danego klasyfikatora.
Jeżeli jest on akceptowalny można wykorzystać ten model przy klasyfikacji nowych danych i przy predykcji wartości decyzyjnych dla przykładów, w których jest ona utracona bądź niewiadoma.
Mamy dany zbiór danych podzielony na klasy decyzyjne, oraz pewien algorytm klasyfikujący.
Problem: zbadać skuteczność algorytmu na tych danych.
Kryterium skuteczności: liczba (procent) prawidłowo rozpoznanych obiektów testowych, niebiorących udziału w treningu
W pierwszym kroku budowany jest model opisujący zadany zbiór danych (treningowy zbiór danych) składający się ze zbioru obiektów (krotek) opisanych za pomocą atrybutów. Jeden z atrybutów jest atrybutem klasyfikującym i określa etykietę klasy, do której należy obiekt. Obiekty tworzące zbiór treningowy wybierane są losowo z pewnej populacji.
Ten etap klasyfikacji nazywany jest też uczeniem z nadzorem, gdyż podana jest klasyfikacja każdego obiektu (przykładem nauczania bez nadzoru jest tworzenie skupień, clustering)
Utworzony model klasyfikacji reprezentowany jest w postaci:
• reguł klasyfikacji,
• drzew decyzyjnych,
• formuł matematycnych.
• Przykład: mając bazę danych z informacjami o kartach kredytowych klientów można utworzyć reguły klasyfikacyjne określające klientów o dobrej lub słabej zdolności kredytowej.
• Reguły mogą być wykorzystane do klasyfikacji przyszłych przypadków, jak również do lepszego zrozumienia zawartości bazy danych
W drugim kroku model jest używany do klasyfikacji. Najpierw oceniana jest dokładność modelu (klasyfikatora). W tym celu posługujemy się zbiorem testowym, który wybrany jest losowo i jest niezależny od zbioru treningowego.
Dokładność modelu na zadanym zbiorze testowym określona jest przez procentową liczbę trafnych klasyfikacji, tzn. jaki procent przypadków testowych został prawidłowo zaklasyfikowany za pomocą modelu. Dla każdego przypadku możemy porównać znaną etykietę klasy z etykietą przypisaną przez model.
Jeśli dokładność modelu została oceniona jako wystarczająca, model można użyć do klasyfikacji przyszłych przypadków (obiektów) o nieznanej etykiecie klasy.
• Predykcja (przewidywanie) może być rozumiana jako wykorzystanie modelu do oszacowania (obliczenia) wartości (lub przedziału wartości), jaką z dużym prawdopodobieństwem może mieć atrybut analizowanego obiektu. Wartością tego atrybutu może być w szczególności etykieta klasy.
• Z tego punktu widzenia klasyfikacja i regresja są dwoma głównymi rodzajami problemów predykcyjnych; przy czym klasyfikacja jest używana do przewidzenia wartości dyskretnych lub nominalnych, a regresja do oszacowania wartości ciągłych lub uporządkowanych.
Umowa:
• przewidywanie etykiet klas – klasyfikacja,
• przewidywanie wartości ciągłych (technikami regresji) – predykacja.
Klasyfikacja i predykcja mają wiele zastosowań, na przykład:
• akceptacja udzielenia kredytu,
• diagnostyka medyczna,
• przewidywanie wydajności,
• selektywny marketing,
• inne
majątek
Duże ryzyko
Średni, duży
oszczędności
mały
duże
Małe, średnie
Małe ryzyko majątek
duży Średni
Małe ryzyko Duże ryzyko
Techniką bardzo podobną do klasyfikacji jest regresja znajdująca zastosowanie w takich dziedzinach jak np. logistyka, analiza danych finansowych, prognozowanie sprzedaży, medycyna, procesy produkcyjne itp.
Głównym celem regresji jest zbudowanie modelu, który podobnie jak wcześniej model klasyfikacji posłuży do predykcji jednej zmiennej na podstawie znanych wartości innych zmiennych.
Podstawową różnicą pomiędzy regresją i klasyfikacją, jest to, że w klasyfikacji przewidywana zmienna przyjmuje wartość kategoryczną, natomiast w regresji jej celem jest przewidzenie zmiennej przyjmującej wartość ciągłą (numeryczną).
Błędy w klasyfikacji
Ok. !
Ok. !
W praktyce stosowanie regresji tak samo jak w klasyfikacji sprowadza się do trzech etapów: budowy klasyfikatora (modelu), testowania modelu oraz wykorzystania zbudowanego modelu do przewidzenia nieznanych wartości.
Budowa modelu regresji odbywa się w podobny sposób do budowy modelu klasyfikacji czyli wykorzystuje się do tego celu zebrane dane podzielone na zbiór testowy i treningowy oraz algorytm regresji.
Jedną z różnic występującą między tymi dwoma technikami jest to, iż w danych do nauki modelu regresji wartością decyzyjną nie jest jak w przypadku klasyfikacji – kategoria, lecz wartość ciągła. Kolejną różnicą jest to, że w klasyfikacji, decyzja opiera się na przyporządkowaniu nowego przykładu do jednej ze znanych wartości kategorycznych zbioru treningowego, natomiast w regresji predykcja ta zachodzi poprzez obliczenie nowej wartości decyzyjnej dla danego przykładu.
Proces regresji służy do ustalenia wartości parametrów tak, by stworzyć funkcję do obliczania wartości decyzyjnej możliwie jak najlepiej odpowiadającą określonemu zbiorowi danych.
Modele regresji najczęściej opierają się na funkcji:
- regresji liniowej,
- regresji nieliniowej (wielorakiej).
Będziemy dokonywać predykcji, a więc przewidywania wartości zmiennej ilościowej.
Przykład będzie dotyczył zbioru 77 płatków śniadaniowych, dla których badane są różne parametry: poziom cukru, tłuszczu, błonnika, a ocena wyrażana jest w postaci tzw. wartości odżywczej płatków.
Zbiór płatków śniadaniowych (R)
Zbiór płatków śniadaniowych (Excel)
Levels Storage
name 77 integer
mfr 7 integer
type 2 integer
calories integer
protein integer
fat integer
sodium integer
fiber double
carbo double
sugars integer
potass integer
vitamins integer
shelf integer
weight double
cups double
rating double
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
name
n missing unique
77 0 77
lowest : 100%_Bran 100%_Natural_Bran All-Bran
All-Bran_with_Extra_Fiber Almond_Delight
highest: Triples Trix Wheat_Chex
Wheaties Wheaties_Honey_Gold
--------------------------------------------------------------------------------
mfr
n missing unique
77 0 7
A G K N P Q R
Frequency 1 22 23 6 9 8 8
% 1 29 30 8 12 10 10
--------------------------------------------------------------------------------
type
n missing unique
77 0 2
C (74, 96%), H (3, 4%)
Szukamy wiedzy o płatkach …
-----------------------------------------------------------------------
calories
n missing unique Mean .05 .10 .25 .50 .75
.90 .95
77 0 11 106.9 70 90 100 110 110
124 140
50 70 80 90 100 110 120 130 140 150 160
Frequency 3 2 1 7 17 29 10 2 3 2 1
% 4 3 1 9 22 38 13 3 4 3 1
-----------------------------------------------------------------------
protein
n missing unique Mean
77 0 6 2.545
1 2 3 4 5 6
Frequency 13 25 28 8 1 2
% 17 32 36 10 1 3
Szukamy wiedzy o płatkach …
carbo
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 22 14.60 8.0 10.3 12.0 14.0 17.0 21.0 21.0
lowest : -1 5 7 8 9, highest: 19 20 21 22 23
-------------------------------------------------------------------------------------------
sugars
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 17 6.922 0.0 0.6 3.0 7.0 11.0 13.0 14.0
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Frequency 1 7 1 3 13 1 5 7 4 5 4 5 5 7 4 3 2
% 1 9 1 4 17 1 6 9 5 6 5 6 6 9 5 4 3
-------------------------------------------------------------------------------------------
potass
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 36 96.08 24 28 40 90 120 190 244
lowest : -1 15 20 25 30, highest: 240 260 280 320 330
Szukamy wiedzy o płatkach …
vitamins
n missing unique Mean
77 0 3 28.25
0 (8, 10%), 25 (63, 82%), 100 (6, 8%)
--------------------------------------------------------------------
shelf
n missing unique Mean
77 0 3 2.208
1 (20, 26%), 2 (21, 27%), 3 (36, 47%)
--------------------------------------------------------------------
weight
n missing unique Mean
77 0 7 1.030
0.5 0.83 1 1.25 1.3 1.33 1.5
Frequency 2 1 64 2 1 5 2
% 3 1 83 3 1 6 3
--------------------------------------------------------------------
Szukamy wiedzy o płatkach …
fat
n missing unique Mean
77 0 5 1.013
0 1 2 3 5
Frequency 27 30 14 5 1
% 35 39 18 6 1
sodium
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 27 159.7 0 0 130 180 210 254 282
lowest : 0 15 45 70 75, highest: 250 260 280 290 320
-----------------------------------------------------------------------------------------------
fiber
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 13 2.152 0.0 0.0 1.0 2.0 3.0 4.4 5.2
0 1 1.5 2 2.5 2.7 3 4 5 6 9 10 14
Frequency 19 16 3 10 1 1 15 4 4 1 1 1 1
% 25 21 4 13 1 1 19 5 5 1 1 1 1
Szukamy wiedzy o płatkach …
cups
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 12 0.821 0.466 0.500 0.670 0.750 1.000 1.000 1.026
0.25 0.33 0.5 0.67 0.75 0.8 0.88 1 1.13 1.25 1.33 1.5
Frequency 1 3 7 13 16 1 2 30 1 1 1 1
% 1 4 9 17 21 1 3 39 1 1 1 1
----------------------------------------------------------------------------------------------------------
rating
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 77 42.67 22.67 27.92 33.17 40.40 50.83 60.09 68.27
lowest : 18.04 19.82 21.87 22.40 22.74, highest: 68.24 68.40 72.80 74.47 93.70
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …
Szukamy wiedzy o płatkach …sprawdzamy korelację między poziomem cukru w płatkach a ich wartością odżywczą
Szukamy wiedzy o płatkach …sprawdzamy rozkład wartości odżywczej płatków ze względu na typ
Szukamy wiedzy o płatkach …histogramy dla danych ilościowych – NIE !!!
Szukamy wiedzy o płatkach …histogramy dla danych jakościowych – TAK !!!
0
20
40
60
80
100
-5 0 5 10 15 20
rati
ng
sugars
sugars
Korelacja Pearsona w excelu
Korelacja Spearmana w excelu
The Spearman correlation,
called Spearman’s rho, is a
special case of the Pearson
correlation computed on ranked
data.
Szukamy wiedzy o płatkach …korelacja dla wszystkich zmiennych – NIE !!!
Szukamy wiedzy o płatkach …korelacja może być przedstawiona dendrogramem
•Analiza regresji jest bardzo popularną i chętnie
stosowaną techniką statystyczną pozwalającą
opisywać związki zachodzące pomiędzy zmiennymi
wejściowymi (objaśniającymi) a wyjściowymi
(objaśnianymi).
•Innymi słowy dokonujemy estymacji jednych
danych korzystając z innych.
•Istnieje wiele różnych technik regresji.
•Metoda zakłada, że pomiędzy zmiennymi objaśniającymi i objaśnianymi istnieje
mniej lub bardziej wyrazista zależność liniowa.
•Mając zatem zbiór danych do analizy, informacje opisujące te dane możemy
podzielić na objaśniane i objaśniające. Wtedy też wartości tych pierwszych będziemy
mogli zgadywać znając wartości tych drugich.
• Oczywiście tak się dzieje tylko w sytuacji, gdy faktycznie między tymi zmiennymi
istnieje zależność liniowa.
•Przewidywanie wartości zmiennych objaśnianych (y) na podstawie wartości
zmiennych objaśniających (x) jest możliwe dzięki znalezieniu tzw. modelu regresji.
•W praktyce polega to na podaniu równania prostej, zwanej prostą regresji o postaci:
y = b_0 + b_1 x gdzie: y - jest zmienną objaśnianą, zaś x - objaśniającą. W równaniu tym bardzo
istotną rolę odgrywają współczynniki b_0 i b_1, gdzie b_1 jest nachyleniem linii
regresji, zaś b_0 punktem przecięcia linii regresji z osią x (wyrazem wolnym) a więc
przewidywaną wartością zmiennej objaśnianej gdy zmienna objaśniająca jest równa
0.
0
10
20
30
40
50
60
70
80
90
100
-2 0 2 4 6 8 10 12 14 16
rati
ng
sugars
sugars
0
10
20
30
40
50
60
70
80
90
100
-2 0 2 4 6 8 10 12 14 16
rati
ng
sugars
sugars
Liniowy (sugars)
xbby 10
sugarsrating *42.24.59
A więc: 4.590 b 42.21 b
„Oszacowana wartość odżywcza płatków (rating) jest równa 59.4 i 2.42 razy
waga cukrów (sugars) w gramach”
Czyli linia regresji jest liniowym przybliżeniem relacji między zmiennymi x
(objaśniającymi, niezależnymi) a y (objaśnianą, zależną) – w tym przypadku
między zawartością cukrów a wartością odżywczą.
Możemy zatem dzięki regresji: SZACOWAĆ, PRZEWIDYWAĆ…
Gdy np. chcemy oszacować wartości odżywcze nowego rodzaju płatków (nieuwzględnionych dotąd w tej próbie 77 różnym badanych płatków śniadaniowych), które zawierają x=1 gram cukrów.
Wówczas za pomocą oszacowanego równania regresji możemy wyestymować wartość odżywczą płatków śniadaniowych zawierającym 1 gram cukrów:
98.561*42.24.59
y
Gdy np. chcemy oszacować wartości odżywcze nowego rodzaju płatków (nieuwzględnionych dotąd w tej próbie 77 różnym badanych płatków śniadaniowych), które zawierają x=5 gram cukrów.
Wówczas za pomocą oszacowanego równania regresji możemy wyestymować wartość odżywczą płatków śniadaniowych zawierającym 5 gram cukrów:
3.475*42.24.59
y
Jak widać, niestety oszacowanie zgodne z równaniem regresji jest nie do końca
zgodne z rzeczywistą wartością odżywczą płatków.
•Czyli każde płatki mające 1 gram cukru powinny mieć wartość odżywczą
równą 56,98 ale jak widać tak nie jest.
•Płatki Cheerios mają wartość odżywczą równą 50,765.
•Czyli nastąpiło PRZESACOWANIE wartości odżywczej płatków o 6,215.
•Graficznie tę odległość widzimy jako odległość punktu reprezentującego
te płatki od jego rzutu pionowego na linię regresji.
•Odległość ta mierzona jako:
•Nazywać będziemy błędem predykcji (błędem
oszacowania, wartością resztową, rezyduum).
•Oczywiście powinno się dążyć do minimalizacji
błędu oszacowania.
•Służy do tego metoda zwana metodą
najmniejszych kwadratów. Metoda polega na tym,
że wybieramy linię regresji która będzie
minimalizować sumę kwadratów reszt dla
wszystkich punktów danych.
)( yy
Odpowiedź: pewnie NIE.
Prawdziwą liniową zależność między wartością odżywczą a zawartością cukrów dla WSZYSTKICH rodzajów płatków reprezentuje równanie:
xy 10
- Losowy błąd
1. Obliczamy wartości xi,yi,xiyi,xi2
xi=534
yi=3285.26
xiyi=19186.76
xi2=5190
1. Obliczamy wartości:
2. Podstawiamy do wzorów:
42.267.1486
79.3596
77/5345190
77/26.3285*53476.1918621
b
4.59935.6*42.26657.4210 xbyb
Wyraz wolny b0 jest miejscem na osi y gdzie linia regresji przecina tę oś czyli jest to przewidywana wartość zmiennej objaśnianej gdy objaśniająca równa się zeru.
Współczynnik kierunkowy prostej regresji oznacza szacowaną zmianę wartość y dla jednostkowego wzrostu x wartość b1=-2.42 mówi, że jeśli zawartość cukrów wzrośnie o 1 gram to wartość odżywcza płatków zmniejszy się o 2.42 punktu.
Czyli płatki A których zawartość cukrów jest o 5 większa niż w płatkach B powinny mieć oszacowaną wartość odżywczą o 5 razy 2.42 = 12.1 punktów mniejszą niż płatki typu B.
Omawiając regresję liniową (prostą) rozpatrywaliśmy dotąd jedynie takie przypadki
zależności między zmiennymi objaśniającymi a objaśnianymi gdzie zmienna
objaśniana była zależna tylko od jednej konkretnej zmiennej objaśniającej.
Jednak w praktyce niezwykle często zmienna objaśniana zależna jest nie od
jednej ale od kilku (wielu) zmiennych objaśniających.
Będziemy zatem rozważać ogólne równanie regresji postaci:
mmxbxbxbby
...22110
gdzie m oznacza liczbę (najczęściej kilku) zmiennych objaśniających.
W środowisku R procedura znajdowania
równania regresji dla podanego zbioru danych możliwa jest dzięki wykorzystaniu funkcji lm.
Komenda R postaci lm(y ~ x) mówi, że
chcemy znaleźć model regresji liniowej dla zmiennej y w zależności od zmiennej x.
równanie regresji, gdy zmienną objaśnianą będzie zmienna rating (wartość
odżywcza płatków) zaś objaśniającą sugars (poziom cukrów), będzie
następującej postaci:
Wówczas pełny zapis okna dialogu z R-em będzie następujący:
> dane<- read.table("C:\\Cereals.data", header = TRUE, row.names = 1)
> model<-lm(rating~sugars, data=dane)
> summary(model)
Call:
lm(formula = rating ~ sugars, data = dane)
Residuals:
Min 1Q Median 3Q Max
-17.853 -5.677 -1.439 5.160 34.421
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 59.2844 1.9485 30.43 < 2e-16 ***
sugars -2.4008 0.2373 -10.12 1.15e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.196 on 75 degrees of freedom
Multiple R-squared: 0.5771, Adjusted R-squared: 0.5715
F-statistic: 102.3 on 1 and 75 DF, p-value: 1.153e-15
>
rating = -2.4 * sugars+ 59.3
Teraz możemy przewidywać, że gdy poziom cukrów wynosi
np 1 to wartość odżywcza płatków będzie wynosić 56.9 zaś
gdy poziom cukrów będzie wynosił 10 wówczas wartość
odżywcza zmaleje do wartości 35.3 (patrz poniżej).
> predict(model,data.frame(sugars=10), level = 0.9, interval = "confidence")
fit lwr upr
1 35.27617 33.14878 37.40356
> predict(model,data.frame(sugars=1), level = 0.9, interval = "confidence")
fit lwr upr
1 56.88355 53.96394 59.80316
Widać z nich, że między zmienną objaśniającą sugars a zmienną objaśnianą fiber
istnieje pewna zależność (w miarę wzrostu wartości sugars spada wartość rating).
Z kolei analizując rozrzut obserwacji ze względu na wartości zmiennej
objaśniającej fiber oraz objaśnianej rating już tak silnej zależności nie
dostrzegamy.
Sprawdźmy jak będzie się zachowywać rozrzut wartości zmiennych
objaśnianych w oparciu o te dwie zmienne objaśniające razem.
> model<-lm(rating~sugars+fiber, data=dane)
> summary(model)
Call:
lm(formula = rating ~ sugars + fiber, data = dane)
Residuals:
Min 1Q Median 3Q Max
-12.133 -4.247 -1.031 2.620 16.398
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 51.6097 1.5463 33.376 < 2e-16 ***
sugars -2.1837 0.1621 -13.470 < 2e-16 ***
fiber 2.8679 0.3023 9.486 2.02e-14 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.219 on 74 degrees of freedom
Multiple R-squared: 0.8092, Adjusted R-squared: 0.804
F-statistic: 156.9 on 2 and 74 DF, p-value: < 2.2e-16
W tym przypadku równanie regresji będzie wyglądać następująco:
Rating = - 2.1837 * sugars+ 2.8679 * fiber+ 51.6097
Uogólniając będziemy mówić, że dla m zmiennych
objaśniających zachodzi reguła, zgodnie z którą: oszacowana
zmiana wartości zmiennej odpowiedzi to} bi, jeśli wartość zmiennej
xi rośnie o jednostkę i zakładając, że wszystkie pozostałe wartości
zmiennych są stałe.
Rating = - 2.1837 * sugars+ 2.8679 * fiber+ 51.6097
Aby zinterpretować współczynnik nachylenia prostej regresji:
b1 = -2.1837
wartość odżywcza maleje o 2.1837 punktu, jeśli zawartość cukru rośnie o jedną jednostkę.
Zakładamy przy tym, że zawartość błonnika (fiber) jest stała.
b2 = 2.8679 wartość odżywcza rośnie o 2.8679 punktu, jeśli zawartość błonnika rośnie o jedną jednostkę a
zawartość cukru (sugars) jest stała.
Błędy predykcji są mierzone przy użyciu reszt $y - \hat{y}$.
Uwaga: w prostej regresji liniowej reszty reprezentują odległość (mierzoną wzdłuż
osi pionowej) pomiędzy właściwym punktem danych a linią regresji, zaś w regresji
wielokrotnej, reszta jest reprezentowana jako odległość między właściwym
punktem danych a płaszczyzną lub hiperpłaszczyzną regresji.
Przykładowo płatki Spoon Size Shredded Wheat zawierają x1=0 gramów cukru i
x2 = 3 gramy błonnika, a ich wartość odżywcza jest równa 72.80 podczas gdy
wartość oszacowana, podana za pomocą równania regresji:
Zatem dla tych konkretnych płatków reszta jest równa 60.21 - 72.80 = 12.59.
> predict(model, data.frame(sugars=0,fiber=3),level=0.95,
interval="confidence")
fit lwr upr
1 60.21342 57.5805 62.84635
Zwróćmy uwagę na to, że wyniki, które tutaj zwraca funkcja R: predict są
bardzo istotne. Mianowicie, oprócz podanej (oszacowanej, przewidywanej)
wartości zmiennej objaśniającej, otrzymujemy również przedział ufności na
zadanym poziomie ufności równym 0.95, który to przedział mieści się między
wartością 57.5805 (lwr) a 62.84635 (upr).
Pozwala stwierdzić czy oszacowane równanie regresji jest przydatne do przewidywania.
Określa stopień w jakim linia regresji najmniejszych kwadratów wyjaśnia zmienność obserwowanych danych.
y yy 2)( yy x y
y yy 2)( yy x y
n
i
yySST1
2)(Całkowita suma kwadratów…
n
i
yySSR1
2)(Regresyjna suma kwadratów …
n
i
yySSE1
2)(Suma kwadratów błędów oszacowania:
SST
SSRr 2Wówczas współczynnik determinacji r2:
SST
SSRr 2
Współczynnik determinacji r2:
Współczynnik determinacji r2
Mierzy stopień dopasowania regresji jako przybliżenia liniowej zależności
pomiędzy zmienną celu a zmienną objaśniającą.
Jaka jest wartość maksymalna współczynnika determinacji r2 ?
Jest ona osiągana wtedy, gdy regresja idealnie pasuje do danych, co ma
miejsce wtedy gdy każdy z punktów danych leży dokładnie na oszacowanej linii
regresji. Wówczas nie ma błędów oszacowania, a więc wartości resztowe
(rezydua) wynoszą 0, a więc SSE=0 a wtedy SST = SSR a r2=1.
Jaka jest wartość minimalna współczynnika determinacji r2 ?
Jest ona osiągana wtedy, gdy regresja nie wyjaśnia zmienności, wtedy SSR =
0, a więc r2=0.
Im większa wartość r2 tym lepsze dopasowanie regresji do zbioru
danych.
Jak już wspomnieliśmy na początku, często w świecie rzeczywistym mamy do
czynienia z zależnościami zmiennej objaśnianej nie od jednej ale raczej od wielu
zmiennych objaśniających.
Wykonanie tego typu analiz w pakiecie R nie jest rzeczą trudną. Wręcz przeciwnie.
Nim przeprowadzimy analizę zależności zmiennej rating od wielu zmiennych
objaśniających np. sugars oraz fiber przyjrzyjmy się wykresom rozrzutu dla tych
zmiennych osobno. Wykres rozrzutu bowiem doskonale odzwierciedla zależności
między pojedynczymi zmiennymi.
Widać z nich, że między zmienną objaśniającą sugars a zmienną objaśnianą fiber
istnieje pewna zależność (w miarę wzrostu wartości sugars spada wartość rating).
Z kolei analizując rozrzut obserwacji ze względu na wartości zmiennej
objaśniającej fiber oraz objaśnianej rating już tak silnej zależności nie
dostrzegamy.
Sprawdźmy jak będzie się zachowywać rozrzut wartości zmiennych
objaśnianych w oparciu o te dwie zmienne objaśniające razem.
gdzie SSR to regresyjna suma kwadratów
zaś SST to całkowita suma kwadratów
Będziemy go interpetować jako część zmienności zmiennej objaśnianej, która
jest wyjaśniana przez liniową zależność ze zbiorem zmiennych objaśniających.
Im większa będzie liczba zmiennych objaśniających tym \textbf{nie mniejsza} będzie
wartość współczynnika determinacji $R^2$.
Możemy wnioskować, że gdy dodajemy nową zmienną objaśniającą do modelu,
wartość $R^2$ będzie nie mniejsza niż przy modelu o mniejszej liczbie
zmiennych. Oczywiście skala (wielkość) tej różnicy jest bardzo istotna w
zależności od tego czy dodamy tę zmienną do modelu czy też nie. Jeśli wzrost
jest duży to uznamy tę zmienną za znaczącą (przydatną).
Niezwykle istotna jest miara nazwana już wcześniej współczynnikiem determinacji
R2 określana za pomocą wzoru:
SST
SSRR 2 2̂
^
1
)ˆ̂( yySSTn
i
2̂^
1
)ˆ̂( yySSRn
i
Jeśli takie reszty obliczymy dla każdej obserwacji to możliwe będzie wyznaczenie
wartości współczynnika determinacji R2. W naszym przypadku jest on równy
0.8092 czyli 80.92 %. Oznacza to w naszej analizie, że 80.92 % zmienności
wartości odżywczej jest wyjaśniane przez liniową zależność pomiędzy zmienną
wartość odżywcza a zbiorem zmiennych objaśniających - zawartością cukrów i
zawartością błonnika.
Jeśli popatrzymy jaka była wartość tego współczynnika, gdy badaliśmy na
początku zależność zmiennej objaśnianej tylko od jednej zmiennej objaśniającej
(cukry) to wartość ta wynosiła R2 = 57.71% . Dla dwóch zmiennych
objaśniających ta wartości wyniosła 80.92 %. Czyli powiemy, że dodając nową
zmienną objaśniającą (w tym przypadku błonnik) możemy wyjaśnić dodatkowe
80.92 - 57.71 = 22.19% zmienności wartości odżywczej (rating) płatków.
Typowy błąd oszacowania jest tu obliczany jako standardowy błąd oszacowania
s i wynosi 6.22 punktu. Oznacza to, że estymacja wartości odżywczej płatków na
podstawie zawartości cukrów i błonnika zwykle różni się od właściwej wartości o
6.22 punktu. Jeśli nowa zmienna jest przydatna, to błąd ten powinien się
zmniejszać po dodaniu nowej zmiennej.
gdzie p oznacza liczbę parametrów modelu (i jest to zazwyczaj liczba zmiennych
objaśniających + 1) zaś n oznacza wielkość próby. Zwykle wartość R2adj będzie po
prostu nieco mniejsza niż wartość R2.
W środowisku R współczynnik determinacji R2 wyznaczymy stosując bezpośrednio
komendę: summary(model.liniowy)\$r.square
Z kolei współczynnik determinacji ale ten tzw. skorygowany (ang. Adjusted) za
pomocą komendy: summary(model.liniowy)\$adj.r.squared
Najprostszym sposobem na wybór optymalnej liczby zmiennych objaśniających
jest współczynnik R2adj zwany skorygowanym. Wiedząc, że R2 = 1 – SSE/SST
wartość R2adj obliczymy jako:
1
12
n
SST
pn
SSE
R adj
> dane<- read.table("C:\\Cereals.data", header = TRUE, row.names = 1)
> model<-lm(rating~sugars+fiber, data=dane)
> summary(model)$r.square
[1] 0.8091568
> summary(model)$adj.r.squared
[1] 0.8039988
Chcąc wyznaczyć wartości tych współczynników dla naszego testowego
modelu z dwiema zmiennymi objaśniającymi sugars oraz fiber w środowisku
R użyjemy odpowiednich komend, jak to pokazuje poniższy kod R wraz z
wynikami:
Jak widzimy współczynnik R2 wynosi 0.809 zaś R2adj odpowiednio 0.804.
Obserwacja jest wpływowa (ang. influential), jeśli jej obecność wpływa na prostą regresji, w taki sposób, że
zmienia się współczynnik kierunkowy tej prostej. Inaczej powiemy, że jeśli obserwacja jest wpływowa to
inaczej wygląda prosta regresji w zależności od tego czy ta obserwacja została ujęta w zbiorze, czy też nie
(gdyż została usunięta).
W praktyce, jeśli obserwowana wartość leży w I-ym kwartylu rozkładu (czyli ma wartość mniejszą niż 25
centyl), to mówimy, że ma ona mały wpływ na regresję. Obserwacje leżące między I a III kwartylem
nazywamy wpływowymi.
Wykrycie obserwacji wpływowych umożliwia pomiar odległości Cooka, w której wykorzystujemy tzw.
modyfikowane rezydua. Usuwając obserwację, którą chcemy uznać za wpływową ze zbioru obserwacji i
obliczając różnicę (między tym jak wyglądają równania regresji z tą obserwacją i gdy jej nie ma) uznajemy
obserwację za wpływową gdy ta różnica będzie wysoka.
Odległość Cooka mierzy poziom wpływu obserwacji i jest obliczana jako:
jest wartością przewidywaną dla j-tej obserwacji obliczoną w modelu z
usuniętą obserwacją i-tą jy
)(ijy jest wartością przewidywaną dla j-tej obserwacji w modelu, w którym nie
usunięto i-tej obserwacji (potencjalnie wpływowej).
Teraz jeśli chcemy poznać obserwacje wpływowe możemy użyć komendy:
> influencePlot(lm(b~a), main="Influence
Plot",sub="Rozmiar kółka jest proporcjonalny do odległości
Cooka)
Jak widać, ostatnia kolumna wskazuje na obserwacje wpływowe zaznaczając przy nich symbol *.
Z naszych danych wynika, że w zbiorze 10 obserwacji mamy 2 wpływowe. Są to obserwacje 1 i 9.
Do wykrycia obserwacji wpływowych możemy także użyć funkcji.
> influence.measures(lm(b~a))
> influence.measures(lm(b~a))
Influence measures of
lm(formula = b ~ a) :
dfb.1_ dfb.a dffit cov.r cook.d hat inf
1 0.0000 0.00e+00 -1.14e-15 1.781 7.45e-31 0.267 *
2 0.5570 -4.52e-01 5.71e-01 1.399 1.65e-01 0.267
3 0.0000 0.00e+00 2.10e-16 1.581 2.52e-32 0.174
4 -0.2337 1.24e-01 -3.13e-01 1.215 5.08e-02 0.119
5 0.0000 0.00e+00 1.42e-16 1.482 1.15e-32 0.119
6 -0.1187 2.05e-18 -2.82e-01 1.195 4.12e-02 0.100
7 0.0217 2.99e-01 7.57e-01 0.573 2.03e-01 0.119
8 0.2719 -6.52e-01 -9.99e-01 0.563 3.40e-01 0.174
9 0.0000 0.00e+00 2.69e-16 1.781 4.13e-32 0.267 *
10 -0.4910 7.42e-01 8.58e-01 1.607 3.62e-01 0.396
>
której efekty będzie następujący
library(car)
> outlier.test(model)
max|rstudent| = 2.850639, degrees of freedom = 73,
unadjusted p = 0.005668692, Bonferroni p = 0.4364893
Observation: Golden_Crisp
Obserwacje odstające będziemy wykrywać przy użyciu znanego już pakietu car i
funkcji outlier.test w ramach tego pakietu.
Wykryliśmy jedną obserwację odstającą (płatki o nazwie Golden_Crisp).
influence.measures(model)
Influence measures of
lm(formula = rating ~ sugars + fiber, data = dane) :
dfb.1_ dfb.sgrs dfb.fibr dffit
100\%_Bran -0.029606 0.006873 8.71e-02 0.09114
100\%_Natural_Bran -0.032678 -0.025977 3.28e-03 -0.11268
All-Bran 0.107395 0.004022 -4.24e-01 -0.45329
All-Bran_with_Extra_Fiber -0.051238 -0.047248 2.62e-01 0.28122
...
Frosted_Flakes -0.000309 0.015791 -6.58e-03 0.02575
Frosted_Mini-Wheats 0.065331 0.017652 9.33e-02 0.27267
...
Golden_Crisp -0.171769 0.576328 -2.20e-01 0.73321
Golden_Grahams -0.087125 -0.053260 1.31e-01 -0.21490
Grape_Nuts_Flakes 0.031668 -0.020034 1.55e-02 0.05831
Grape-Nuts -0.005289 0.004597 -1.28e-03 -0.00738
Shredded_Wheat_'n'Bran 0.287978 -0.328880 1.26e-01 0.43414
Shredded_Wheat_spoon_size 0.373845 -0.378815 3.42e-02 0.46093
Wheaties_Honey_Gold -0.007926 -0.002691 6.93e-03 -0.01710
cov.r cook.d hat inf
100\%_Bran 1.233 2.80e-03 0.1565 *
100\%_Natural_Bran 1.018 4.24e-03 0.0138
All-Bran 1.116 6.80e-02 0.1216 *
All-Bran_with_Extra_Fiber 1.588 2.67e-02 0.3480 *
...
Frosted_Flakes 1.068 2.24e-04 0.0257
Frosted_Mini-Wheats 0.867 2.35e-02 0.0147 *
...
Golden_Crisp 0.809 1.63e-01 0.0621 *
...
Post_Nat._Raisin_Bran 1.147 1.57e-04 0.0918 *
Wartości wpływowe będziemy wykrywać za pomocą fukcji influence.measures.
Wyniki takiej analizy widzimy poniżej.
influence.measures(model)
Influence measures of
lm(formula = rating ~ sugars + fiber, data = dane) :
dfb.1_ dfb.sgrs dfb.fibr dffit
100\%_Bran -0.029606 0.006873 8.71e-02 0.09114
100\%_Natural_Bran -0.032678 -0.025977 3.28e-03 -0.11268
All-Bran 0.107395 0.004022 -4.24e-01 -0.45329
All-Bran_with_Extra_Fiber -0.051238 -0.047248 2.62e-01 0.28122
...
Frosted_Flakes -0.000309 0.015791 -6.58e-03 0.02575
Frosted_Mini-Wheats 0.065331 0.017652 9.33e-02 0.27267
...
Golden_Crisp -0.171769 0.576328 -2.20e-01 0.73321
Golden_Grahams -0.087125 -0.053260 1.31e-01 -0.21490
Grape_Nuts_Flakes 0.031668 -0.020034 1.55e-02 0.05831
Grape-Nuts -0.005289 0.004597 -1.28e-03 -0.00738
Shredded_Wheat_'n'Bran 0.287978 -0.328880 1.26e-01 0.43414
Shredded_Wheat_spoon_size 0.373845 -0.378815 3.42e-02 0.46093
Wheaties_Honey_Gold -0.007926 -0.002691 6.93e-03 -0.01710
cov.r cook.d hat inf
100\%_Bran 1.233 2.80e-03 0.1565 *
100\%_Natural_Bran 1.018 4.24e-03 0.0138
All-Bran 1.116 6.80e-02 0.1216 *
All-Bran_with_Extra_Fiber 1.588 2.67e-02 0.3480 *
...
Frosted_Flakes 1.068 2.24e-04 0.0257
Frosted_Mini-Wheats 0.867 2.35e-02 0.0147 *
...
Golden_Crisp 0.809 1.63e-01 0.0621 *
...
Post_Nat._Raisin_Bran 1.147 1.57e-04 0.0918 *
Za wpływowe uznamy 6 obserwacji:
100%_Bran
All-Bran
All-Bran_with_Extra_Fiber
Frosted_Mini-Wheats
Golden_Crisp (które zresztą uznaliśmy za obserwację odstającą, outlier) oraz
Post_Nat._Raisin_Bran.
Gdy zmienne objaśniające są wysoko skorelowane wyniki analizy regresji mogą być
niestabilne. Szacowana wartość zmiennej xi może zmienić wielkość a nawet kierunek
zależnie od pozostałych zmiennych objaśniających zawartych w tak testowanym
modelu regresji. Taka zależność liniowa między zmiennymi objaśniającymi może
zagrażać trafności wyników analizy regresji.
Do wskaźników oceniających współliniowość należy, m.in. VIF (Variance Inflation
Factor) zwany współczynnikiem podbicia (inflacji) wariancji. VIF pozwala
wychwycić wzrost wariancji ze względu na współliniowość cechy.
Innymi słowy: wskazuje on o ile wariancje współczynników są zawyżone z powodu
zależności liniowych w testowanym modelu. Niektóre pakiety statystyczne pozwalają
także alternatywnie mierzyć tzw. współczynnik toleracji (TOL - ang. tolerance), który
mierzy się jako: 1/VIF
dla modelu xi = f(x1, …., xi-1, xi+1, …, xp) gdzie zmienna xi będzie wyjaśniana przez
wszystkie pozostałe zmienne.
Gdy VIF > 10 mówimy, że współliniowość wystąpiła i chcąc się jej pozbyć z modelu,
usuwamy te cechy, które są liniową kombinacją innych zmiennych niezależnych.
12)1( ii RVIF
Radą na współliniowość jest według niektórych prac zwiększenie zbioru obserwacji
o nowe, tak, by zminimalizować istniejące zależności liniowe pomiędzy zmiennymi
objaśniającymi. Oczywiście, zwiększenie liczby obserwacji nie gwarantuje poprawy
-stąd takie rozwiązanie na pewno nie należy do najlepszych i jedynych. Lepszym
wydaje się komponowanie zmiennych zależnych w nowe zmienne (np. waga i
wzrost są skorelowane silnie i zamiast nich stworzenie jednej zmiennej stosunek
wzrostu do wagi. Taką nową zmienną nazywa się w literaturze kompozytem.
Często - dla dużej liczby zmiennych objaśniających - stosuje sie metodę analizy
składowych głównych (ang. principal component analysis) dla redukcji liczby
zmiennych do jednego lub kilku kompozytów niezależnych.
Gdzie x3i = 10 * x1i - 2 * x2i .
Wtedy powiemy, że zmienna x3 jest kombinacją liniową zmiennych x1 i x2.
Próba szacowania takiego modelu związana jest ze świadomym popełnianiem
błędu, gdyż w modelu tym występuje dokładna współliniowość (jedna ze zmiennych
objaśniających jest kombinacją liniową pozostałych).
Dla modelu postaci:
yi = b0 + b1 x1i + b2 x2i + b3 x3i + e1i
W środowisku R sprawdzanie współliniowości nie jest trudne. Wystarczy skorzystać z funkcji vif której argumentem jest model regresji dla danego
zbioru danych.
Przykład dotyczący naszego zbioru płatków zbożowych przedstawiamy
poniżej: > vif(lm(rating~sugars+fiber, data=dane))
sugars fiber
1.020345 1.020345.
Wartości współczynnika $VIF$ nie są zbyt wysokie toteż uznajemy, że w
modelu tym nie występuje zjawisko współliniowości.
Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem.
Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność)
Bardziej opisowe może być określenie- „model cech niezależnych”. Model prawdopodobieństwa można wyprowadzić korzystając z
twierdzenia Bayesa. W zależności od rodzaju dokładności modelu prawdopodobieństwa,
naiwne klasyfikatory bayesowskie można „uczyć” bardzo skutecznie w trybie uczenia z nadzorem.
Jeśli wiemy, że kulek czerwonych jest 2 razy mniej niż zielonych (bo czerwonych jest 20 a zielonych 40) to prawdopodobieństwo tego, że kolejna (nowa) kulka będzie koloru zielonego jest dwa razy większe niż tego, że kulka będzie czerwona.
Dlatego możemy napisać, że znane z góry prawdopodobieństwa:
Jeśli więc czerwonych jest 20 a zielonych 40, to razem wszystkich jest 60. Więc
Więc teraz gdy mamy do czynienia z nową kulką ( na rysunku – biała):
To spróbujmy ustalić jaka ona będzie. Dokonujemy po prostu klasyfikacji kulki do jednej z dwóch klas: zielonych bądź czerwonych.
Jeśli weźmiemy pod uwagę sąsiedztwo białej kulki takie jak zaznaczono, a więc do 4 najbliższych sąsiadów, to widzimy, że wśród nich są 3 kulka czerwone i 1 zielona.
Obliczamy liczbę kulek w sąsiedztwie należących do danej klasy : zielonych bądź czerwonych z wzorów:
W naszym przypadku, jest dziwnie, bo akurat w sąsiedztwie kulki X jest więcej kulek czerwonych niż zielonych, mimo, iż kulek zielonych jest ogólnie 2 razy więcej niż czerwonych. Dlatego zapiszemy, że
Dlatego ostatecznie powiemy, że
Prawdopodobieństwo że kulka X jest zielona = prawdopodobieństwo kulki
zielonej * prawdopodobieństwo, że kulka X jest zielona w swoim sąsiedztwie
=
Prawdopodobieństwo że kulka X jest czerwona = prawdopodobieństwo kulki czerwonej * prawdopodobieństwo, że kulka X jest czerwona w swoim sąsiedztwie =
Ostatecznie klasyfikujemy nową kulkę X do klasy kulek czerwonych, ponieważ ta klasa dostarcza nam większego prawdopodobieństwa posteriori.
Tylko dla cech jakościowych
Tylko dla dużych zbiorów danych
Aby obliczyć P(diabetes=1) należy zliczyć liczbę
obserwacji dla których spełniony jest warunek
„diabetes=1”. Jest ich dokładnie 9 z 20 wszystkich.
Podobnie, aby obliczyć P(diabetes=0) należy zliczyć
liczbę obserwacji dla których spełniony jest warunek
„diabetes=0”. Jest ich dokładnie 11 z 20 wszystkich.
Zakładając, że zmienne niezależne faktycznie są niezależne, wyliczenie P(X|diabetes=1) wymaga obliczenia prawdopodobieństwa warunkowego wszystkich wartości dla X:
Np. obliczenie P(BP=high|diabetes=1) wymaga znów obliczenia P(BP=high) i P(diabetes=1) co jest odpowiednio równe 4 i 9 zatem prawdopodobieństwo to wynosi 4/9:
Zatem:
Mając już prawdopodobieństwa P(X|diabetes=1) i P(diabetes=1) można wyznaczyć iloczyn tych prawdopodobieństw:
Teraz podobnie zrobimy w przypadku P(X|diabetes=0)
Możemy więc wyznaczyć P(X|diabetes=0):
Ostatecznie iloczyn prawdopodobieństw jest wyznaczany:
Jakoże P(X|diabeltes=1)P(diabetes=1) jest większe niż
P(X|diabetes=0)P(diabetes=0) nowa obserwacja będzie zaklasyfikowana do
klasy diabetes=1.
Prawdopodobieństwo ostateczne że jeśli obiekt ma opis taki jak X będzie z
klasy diabetes=1 jest równe:
Jakie będzie prawdopodobieństwo klasyfikacji do klasy „diabetes=1” gdy mamy następujące przypadki:
X:BP=Average ; weight=above average; FH= yes; age=50+
X:BP=low ; weight=average; FH= no; age=50+
X:BP=high ; weight=average; FH= yes; age=50+
– jeden z algorytmów regresji nieparametrycznej używanych w statystyce do prognozowania wartości pewnej zmiennej losowej. Może również być używany do klasyfikacji.
-
• Dany jest zbiór uczący zawierający obserwacje z których każda ma przypisany wektor zmiennych objaśniających oraz wartość zmiennej objaśnianej Y.
• Dana jest obserwacja C z przypisanym wektorem zmiennych objaśniających dla której chcemy prognozować wartość zmiennej objaśnianej Y.
Założenia
Wyznaczanie odległości obiektów: odległość euklidesowa
Obiekty są analizowane w ten sposób , że oblicza się odległości bądź podobieństwa między nimi. Istnieją różne miary podobieństwa czy odległości. Powinny być one wybierane konkretnie dla typu danych analizowanych: inne są bowiem miary typowo dla danych binarnych, inne dla danych nominalnych a inne dla danych numerycznych.
Nazwa Wzór
odległość euklidesowa
odległość kątowa
współczynnik korelacji
liniowej Pearsona
Miara Gowera
gdzie: x,y - to wektory wartości cech porównywanych obiektów w przestrzeni p-wymiarowej, gdzie odpowiednio wektory wartości to: oraz .
Oblicz odległość punktu A o współrzędnych (2,3) do punktu B o współrzędnych (7,8).
D (A,B) = pierwiastek ((7-2)2 + (8-3)2) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07
0
1
2
3
4
5
6
7
8
9
0 2 4 6 8
A
B
Mając dane punkty:
A(2,3), B(7,8) oraz C(5,1) oblicz odległości między punktami:
D (A,B) = pierwiastek ((7-2)2 + (8-3)2) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07
D (A,C) = pierwiastek ((5-2)2 + (3-1)2) = pierwiastek (9 + 4) = pierwiastek (13) = 3.60
D (B,C) = pierwiastek ((7-5)2 + (3-8)2) = pierwiastek (4 + 25) = pierwiastek (29) = 5.38
A
B
C
0
1
2
3
4
5
6
7
8
9
0 1 2 3 4 5 6 7 8
A
B
C
1. porównanie wartości zmiennych objaśniających dla obserwacji C z wartościami tych zmiennych dla każdej obserwacji w zbiorze uczącym.
2. wybór k (ustalona z góry liczba) najbliższych do C obserwacji ze zbioru uczącego.
3. Uśrednienie wartości zmiennej objaśnianej dla wybranych obserwacji, w wyniku czego uzyskujemy prognozę.
Przez "najbliższą obserwację" mamy na myśli, taką obserwację, której odległość do analizowanej przez nas obserwacji jest możliwie najmniejsza.
Najbliższy dla naszego obiektu „buźka” jest obiekt
Więc przypiszemy nowemu obiektowi klasę:
Mimo, że najbliższy dla naszego obiektu „buźka” jest obiekt
Metodą głosowania ustalimy, że skoro mamy wziąć pod uwagę 5 najbliższych
sąsiadów tego obiektu, a widać, że 1 z nich ma klasę:
Zaś 4 pozostałe klasę:
To przypiszemy nowemu obiektowi klasę:
Obiekt klasyfikowany podany
jako ostatni : a = 3, b = 6
Teraz obliczmy odległości poszczególnych obiektów od wskazanego. Dla uproszczenia obliczeń posłużymy sie wzorem:
Znajdujemy więc k najbliższych sąsiadów. Załóżmy, że szukamy 9 najbliższych sąsiadów. Wyróżnimy ich kolorem zielonym. Sprawdzamy, które z tych 9 najbliższych sąsiadów są z klasy „+” a które z klasy „-” ? By to zrobić musimy znaleźć k najbliższych sąsiadów (funkcja Excela o nazwie MIN.K)
Wyobraźmy sobie, że nie mamy 2 zmiennych opisujących każdy obiekt, ale tych zmiennych jest np. 5: {v1,v2,v3,v4,v5} i że obiekty opisane tymi zmiennymi to 3 punkty: A, B i C:
V1 V2 V3 V4 V5
A 0.7 0.8 0.4 0.5 0.2
B 0.6 0.8 0.5 0.4 0.2
C 0.8 0.9 0.7 0.8 0.9 Policzmy teraz odległość między punktami: D (A,B) = pierwiastek ((0.7-0.6)2 + (0.8-0.8)2 + (0.4-0.3)2 + (0.5-0.4)2 + (0.2-0.2)2) = pierwiastek (0.01 + 0.01 + 0.01) = pierwiastek (0.03) = 0.17 D (A,C) = pierwiastek ((0.7-0.8)2 + (0.8-0.9)2 + (0.4-0.7)2 + (0.5-0.8)2 + (0.2-0.9)2) = pierwiastek (0.01 + 0.01 + 0.09 + 0.09 + 0.49) = pierwiastek (0.69) = 0.83 D (B,C) = pierwiastek ((0.6-0.8)2 + (0.8-0.9)2 + (0.5-0.7)2 + (0.4-0.8)2 + (0.2-0.9)2) = pierwiastek (0.04 + 0.01 + 0.04+0.16 + 0.49) = pierwiastek (0.74) = 0.86 Szukamy najmniejszej odległości, bo jeśli te dwa punkty są najbliżej siebie, dla których mamy najmniejszą odległości ! A więc najmniejsza odległość jest między punktami A i B !
Schemat algorytmu:
Poszukaj obiektu najbliższego w stosunku do obiektu klasyfikowanego.
Określenie klasy decyzyjnej na podstawie obiektu najbliższego.
Cechy algorytmu:
Bardziej odporny na szumy - w poprzednim algorytmie obiekt najbliższy klasyfikowanemu może być zniekształcony - tak samo zostanie zaklasyfikowany nowy obiekt.
Konieczność ustalenia liczby najbliższych sąsiadów.
Wyznaczenie miary podobieństwa wśród obiektów (wiele miar podobieństwa).
Dobór parametru k - liczby sąsiadów:
Jeśli k jest małe, algorytm nie jest odporny na szumy – jakość klasyfikacji jest niska. Jeśli k jest duże, czas działania algorytmu rośnie - większa złożoność obliczeniowa. Należy wybrać k, które daje najwyższą wartość klasyfikacji.
Wykonaj algorytm k-NN dla zbioru:
Sklasyfikuj przypadek:
Znajdź inne miary: miejska, kwadratowa oraz Gowera i dla nich również wykonaj obliczenia – porównaj rezultaty.