Regresja liniowa, klasyfikacja metodą k-NN
Agnieszka Nowak – Brzezińska
Analiza regresji
•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.
Linia regresji zapisana w postaci:
nazywana jest równaniem regresji lub oszacowanym równaniem regresji, gdzie:
– Szacowana wartość zmiennej objaśnianej – Punkt przecięcia linii regresji z osią y
– Nachylenie linii regresji – Współczynniki regresji
x b b
y
0
1
y
b0
b1 1 0, b b
Regresja liniowa
•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 = b0 + b1 x
gdzie: y - jest zmienną objaśnianą, zaś x - objaśniającą. W równaniu tym bardzo istotną rolę odgrywają współczynniki b0 i b1, gdzie b1 jest nachyleniem linii regresji, zaś b0 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.
http://zsi.tech.us.edu.pl/~nowak/smad/platki.txt
Cereals.data
• Name – nazwa płatków
• Manuf – wytwórca płatków
• Type – typ płatków ( na ciepło (hot), na zimno (cold))
• Calories – kalorie w porcji
• Protein 0 białko (w gramach)
• Fat – tłuszcz (w gramach)
• Sodium – sód
• Fiber – błonnik
• Carbo – węglowodany
• Sugars – cukry
• Potass – potas ( w miligramach)
• Vitamins – procent zalecanego dziennego spożycia witamin (0%, 25 %, 100%)
• Shelf – położenie półki (1=dolna, 2=środkowa, 3 = górna)
• Weight – waga porcji
• Cups – liczba łyżek na porcję
• Rating – wartość odżywcza, obliczona przez Customer Reports
Wartość odżywcza
Kalorie Białko tłuszcz Sód Błonnik Węglowodany Cukry Potas
Kalorie -0.689
Białko 0.471 0.019
Tłuszcz -0.409 0.499 0.208
Sód -0.401 0.301 -0.055 -0.005
Błonnik 0.577 -0.291 0.506 0.026
Węglowodany 0.050 0.255 -0.125 -0.315 0.357 -0.357
Cukry -0.762 0.564 -0.324 0.257 0.096 -0.137 -0.351
Potas 0.380 -0.067 0.549 0.193 -0.033 0.905 -0.354 0.22
Witaminy -0.241 0.265 0.007 -0.031 0.361 -0.036 0.257 0.122 0.021
Szukamy zmiennej o największej korelacji ze zmienną „wartość odżywcza” płatków.
Największą korelację znajdujemy dla zmiennej „cukry”
Wartość odżywcza
Kalorie Białko tłuszcz Sód Błonnik Węglowodany Cukry Potas
Kalorie -0.689
Białko 0.471 0.019
Tłuszcz -0.409 0.499 0.208
Sód -0.401 0.301 -0.055 -0.005
Błonnik 0.577 -0.291 0.506 0.026
Węglowodany 0.050 0.255 -0.125 -0.315 0.357 -0.357
Cukry -0.762 0.564 -0.324 0.257 0.096 -0.137 -0.351
Potas 0.380 -0.067 0.549 0.193 -0.033 0.905 -0.354 0.22
Witaminy -0.241 0.265 0.007 -0.031 0.361 -0.036 0.257 0.122 0.021
•Szukamy zmiennej o największej korelacji ze zmienną „wartość odżywcza” płatków.
•Największą korelację znajdujemy dla zmiennej „cukry”
•Jest to korelacja ujemna, wynosi -0.762. Oznacza, że w miarę wzrostu wartości cukrów w płatkach, wartość odżywcza takich płatków maleje.
• A więc najpierw zajmiemy się zależnościami między dwiema zmiennymi: objaśnianą (wartość odżywcza płatków, rating) oraz objaśniającą (cukry, sugars).
• Analiza regresji pozwoli nam oszacować
wartości odżywcze (rating) różnych typów
płatków śniadaniowych, mając dane
zawartości cukrów (sugars).
0 10 20 30 40 50 60 70 80 90 100
-2 0 2 4 6 8 10 12 14 16
rating
sugars
sugars
0 10 20 30 40 50 60 70 80 90 100
-2 0 2 4 6 8 10 12 14 16
rating
sugars
sugars
Liniowy (sugars)
To wykres rozrzutu wartości odżywczych względem zawartości cukrów dla 77 rodzajów płatków śniadaniowych, razem z linią regresji najmniejszych kwadratów. Jest to linia regresji otrzymana za pomocą metody najmniejszych kwadratów. Linia regresji jest zapisana w postaci równania , które nazywa się równaniem regresji lub oszacowanym równaniem regresji, przy czym:
x b b
y
0
1
Szacowana wartość zmiennej objaśnianej Punkt przecięcia linii regresji z osią y
Nachylenie linii regresji Współczynniki regresji
y
b0
b1 1 0, b b
Regresja liniowa w Rattle dla R’a
Wariant z 1 zmienną objaśniającą…
rating = -2.4 * sugars+ 59.3
więc
• Estymowane równanie regresji może być interpretowane jako „oszacowana wartość płatków jest równa 59,4 – 2,42 * masa cukru w gramach”
• Linia regresji i (oszacowane równanie regresji) są używane jako liniowe przybliżenie relacji pomiędzy zmiennymi x (wartością objaśniającą) a y (objaśnianą), tj. między zawartości cukru a wartością odżywczą.
sugars
rating 59.42.42* b0 59.4 b1 2.42
y
x b b
y
0
1
Jak to czytać ?
sugars rating
59 . 4 2 . 42 *
A więc:
b
0 59 . 4 b
1 2 . 42
„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:
Po co przewidywać ?
98 . 56 1
* 42 . 2 4
.
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:
Po co przewidywać ?
3 . 47 5
* 42 . 2 4
.
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.
• Wyraz wolny b0 jest miejscem na osi y gdzie linia regresji przecina tę oś, czyli jest to przewidywana wartość zmiennej objaśnianej, gdy zmienna objaśniająca jest równa 0. W wielu przypadkach zerowa wartość nie ma tu sensu. Przypuśćmy np. że chcielibyśmy przewidzieć wagę ucznia szkoły podstawowej (y) na podstawie jego wzrostu (x). Wartość zerowa wzrostu jest niejasna, a więcej interpretacji znaczenia wyrazu wolnego nie ma sensu w tym przypadku.
• Jednak dla naszego zbioru danych zerowa wartość cukrów w płatkach jak najbardziej ma sens, ponieważ istnieją płatki niezawierające cukrów. Zatem w naszym zbiorze danych wyraz wolny b0=59.4 reprezentuje przewidywaną wartość odżywczą płatków z zerową zawartością cukrów.
• Ale w naszym zbiorze nie mamy płatków o zerowej zawartości cukru które mają oszacowaną wartość odżywczą równą dokładnie 59.4.
Właściwe wartości odżywcze razem z błędami oszacowania
przedstawiono poniżej.
• Wszystkie przewidywane wartości są takie same.
Bo wszystkie wymienione płatki mają identyczną wartość zmiennej objaśniającej (x=0).
• Współczynnik kierunkowy prostej regresji oznacza oszacowaną zmianę wartości y dla jednostkowego wzrostu x.
• Wartość b1 = 2.42 interpretujemy jako: „Jeżeli
zawartość cukrów wzrośnie o 1 gram, to wartość
odżywcza zmniejszy się o 2.42 punktu”.
Płatki o zerowej wartości SUGARS
Proszę sprawdzić ile z tych płatków które faktycznie miały 0 wartość cukrów (sugars) miały wartość odżywczą (rating) równą 59.4?
Odp: żadne…
Co sugeruje, że nasz model regresji nie do końca dobrze
przewiduje w tym przypadku wartość odżywczą płatków.
• Załóżmy np. że jesteśmy zainteresowani szacowaniem wartości odżywczych nowych płatków (nie zawartych w początkowych danych), które zawierają x=1 gram cukru.
• Za pomocą oszacowanego równania regresji możemy znaleźć oszacowaną wartość płatków zawierających 1 gram cukru jako 59.4 – 2.42 * 1 = 56.98
• Zauważmy, że ta oszacowana wartość dla wartości odżywczej leży bezpośrednio na linii regresji, w punkcie (x=1, y = 56.98). W rzeczywistości dla każdej danej wartości x (sugars) oszacowana wartość y (rating) będzie znajdować się dokładnie na linii regresji.
• W naszych zbiorze są płatki Cheerios, w których zawartość cukru jest równa 1 gram. Jednak ich wartość odżywcza to 50.765 a nie 56.98 jak oszacowaliśmy powyżej dla nowych płatków zawierających 1 gram cukru.
• Na wykresie rozrzutu punkt płatków Cheerios jest umiejscowiony w (x=1, y = 50.765) wewnątrz owalu. Górna strzałka wskazuje na położenie na linii regresji dokładnie powyżej punktu dla płatków Cheerios. Jest to punkt który przewidziała linia regresji dla wartości odżywczych, jeżeli zawartość cukru wynosi 1 gram.
• Wartość szacowana była zbyt duża o 56.98 – 50.765 = 6.215 – co jest odległością w pionie punktu reprezentującego płatki Cheerios od linii regresji.
Ta pionowa odległość równa 6.215 w ogólności jest nazywana np.
błędem predykcji, błędem szacowania lub resztą.
(y y)
•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.
Co wówczas ?
•Odległość tą mierzoną 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.
)
( y
y
Wariant z 2 zmiennymi objaśniającymi
rating = -2.18 * sugars+ 2.86 * fiber + 51.6
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 b
i, jeśli wartość zmiennej x
irośnie o jednostkę i zakładając, że wszystkie pozostałe wartości zmiennych są stałe.
Rating = - 2.18 * sugars+ 2.86 * fiber+ 51.6 Aby zinterpretować współczynnik nachylenia prostej regresji:
b1 = -2.18 wartość odżywcza maleje o 2.18 punktu, jeśli zawartość cukru rośnie o jedną jednostkę. Zakładamy przy tym, że
zawartość błonnika (fiber) jest stała.
b2 = 2.86 wartość odżywcza rośnie o 2.86 punktu, jeśli zawartość błonnika rośnie o jedną jednostkę a zawartość cukru
(sugars) jest stała.
Wariant z wieloma zmiennymi objaśniającymi…
Rating = - 0.22*calories +2.9*protein+1.03*carbo-
0.84*sugars-2.00*fat- 0.05*vitamins+2.54*fiber-
0.05*sodium+ 56.19
• Załóżmy np., że jest dostępny nowy rodzaj płatków śniadaniowych, których porcja ma 80 kalorii, 2 gramy białka, nie ma tłuszczu i sodu, ma 3 gramy błonnika, 16 gramów węglowodanów, nie ma cukrów i pokrywa 0% dziennego zapotrzebowania na witaminy (podobnie jak Shredded Wheat).
• Wtedy przewidywana wartości odżywcza to 56.19 – 0.22 * 80 +2.9 *2 -2.00 *0-0.05*0+2.54*3 +1.03*16-0.84*0-0.05*0 = 68.49
Rating = - 0.22*calories +2.9*protein+1.03*carbo-0.84*sugars- 2.00*fat-0.05*vitamins+2.54*fiber-0.05*sodium+ 56.19
Czy wybrana metoda regresji jest przydatna ?
• Można znaleźć taką linię regresji MNK, która modeluje zależność pomiędzy dwoma dowolnymi ciągłymi zmiennymi. Jednak nie ma nigdy gwarancji, że taka regresja będzie przydatna.
• W jaki sposób można stwierdzić, czy oszacowane równanie regresji jest przydatne do przewidywania?
• Jedną z miar jest współczynnik determinacji R 2 ,
będący miarą dopasowania regresji. Określa on
stopień, w jakim linia regresji NK wyjaśnia
zmienność obserwowanych danych.
SST r
2 SSR
Współczynnik determinacji r2:
Współczynnik determinacji r 2
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ść r
2tym lepsze dopasowanie regresji do zbioru
danych.
Wariant z 1 zmienną objaśniającą…
rating = -2.4 * sugars+ 59.3
Wariant z 2 zmiennymi objaśniającymi
rating = -2.18 * sugars+ 2.86 * fiber + 51.6
Wariant z wieloma zmiennymi objaśniającymi…
Rating = - 0.22*calories +2.9*protein+1.03*carbo-
0.84*sugars-2.00*fat- 0.05*vitamins+2.54*fiber-
0.05*sodium+ 56.19
warianty
R2 Adjusted R2
1 zmienna objaśniająca 0.5771 0.5715
2 zmienne objaśniające 0.8092 0.804
8 zmiennych objaśniających
0.9964 0.996
Wygląda na to, że najrozsądniej jest wybrać wariant II który wymagał będzie zawsze podania wartości dwóch zmiennych objaśniających by określić wartość odżywczą
płatków.
Zadanie 1 do wykonania:
• Dla swojego zbioru danych:
1. Wczytaj zbiór w Rattle
2. Zrób analizę korelacji, znajdź zmienne najbardziej skorelowane
3. Znajdź zmienną liczbową którą będziesz chciał przewidywać
4. Wybierz 2-3 warianty (zmiennych
objaśniających) i utwórz dla nich model regresji
5. Wybierz model optymalny
Algorytm k-NN
– 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.
-
Algorytm k najbliższych sąsiadów (lub algorytm k-nn z ang. k nearest neighbours)
• 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
Do której klasy przypisać nowy obiekt
?
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.
Przebieg algorytmu:
Do której klasy przypisać nowy obiekt
?
Najbliższy dla naszego obiektu „buźka” jest obiekt Więc przypiszemy nowemu obiektowi klasę:
1-NN
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ę:
5-NN
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:
Obliczamy odległość każdego punktu do tego nowo
klasyfikowanego
Funkcja MIN.K Excela
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)
Zliczamy + i – jeśli są sąsiadami naszego nowego
obiektu „26”
Ostatecznie klasyfikujemy obiekt nowy do tej klasy,
która jest bardziej liczna
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:
A co gdy mamy wiele zmiennych ?
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 !
Klasyfikacja nowego przypadku
Szukamy najbliższych sąsiadów
naszego nowego przypadku…
Obliczamy więc odległości
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.
K-NN
Zadanie 2 do wykonania
Wykonaj algorytm k-NN dla zbioru:
Sklasyfikuj przypadek: