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
mały Duże ryzyko majątek Średni, duży oszczędności Małe, średnie duże majątek Małe ryzyko 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)
Szukamy wiedzy o płatkach Levels name mfr type calories protein fat sodium fiber carbo sugars potass vitamins shelf weight cups rating Storage 77 integer 7 integer 2 integer integer integer integer integer double double integer integer integer integer double double 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 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!!!
rating Korelacja Pearsona w excelu 100 80 60 40 20 sugars 0-5 0 5 10 15 20 sugars
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.
rating 100 90 80 70 60 50 40 sugars 30 20 10 0-2 0 2 4 6 8 10 12 14 16 sugars
rating 100 90 80 70 60 50 40 sugars Liniowy (sugars) 30 20 10 0-2 0 2 4 6 8 10 12 14 16 sugars
y b0 b1 x rating 59.4 2.42* sugars A więc: b 0 59. 4 b 42 1 2. 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: y 59.4 2.42*1 56.98
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: y 59.4 2.42*5 47.3
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: ( y y) 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.
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: y x 0 1 - Losowy błąd
1. Obliczamy wartości x i,y i,x i y i,x i 2
1. Obliczamy wartości: x i =534 y i =3285.26 x i y i =19186.76 x i2 =5190 2. Podstawiamy do wzorów: b 19186.76 534*3285.26 / 77 2 5190 534 / 77 3596.79 1486.67 1 2.42 b0 y b1 x 42.6657 2.42*6.935 59.4
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ść b 1 =- 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: y b 0 b x 1 1 b 2 x 2... b m x m 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.
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 > 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: 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
Aby zinterpretować współczynnik nachylenia prostej regresji: Rating = - 2.1837 * sugars+ 2.8679 * fiber+ 51.6097 b 1 = -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. b 2 = 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. 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 i rośnie o jednostkę i zakładając, że wszystkie pozostałe wartości zmiennych są stałe.
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ą x 1 =0 gramów cukru i x 2 = 3 gramy błonnika, a ich wartość odżywcza jest równa 72.80 podczas gdy wartość oszacowana, podana za pomocą równania regresji: > predict(model, data.frame(sugars=0,fiber=3),level=0.95, interval="confidence") fit lwr upr 1 60.21342 57.5805 62.84635 Zatem dla tych konkretnych płatków reszta jest równa 60.21-72.80 = 12.59. 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. 2 x y y y y ( y y)
x y y y y 2 ( y y) Całkowita suma kwadratów SST n i 1 ( y y) 2 Regresyjna suma kwadratów SSR n i 1 ( y y) 2 Suma kwadratów błędów oszacowania: SSE n i 1 ( y y) 2 Wówczas współczynnik determinacji r 2 : 2 r SSR SST
Współczynnik determinacji r 2 Współczynnik determinacji r 2 : 2 r SSR SST 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 r 2? 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 r 2 =1. Jaka jest wartość minimalna współczynnika determinacji r 2? Jest ona osiągana wtedy, gdy regresja nie wyjaśnia zmienności, wtedy SSR = 0, a więc r 2 =0. Im większa wartość r 2 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.
Niezwykle istotna jest miara nazwana już wcześniej współczynnikiem determinacji R 2 określana za pomocą wzoru: n ^ n 2 SSR ^ 2ˆ 2ˆ SSR ( y ˆ y) i 1 R SST SST ( y ˆ y) 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ą). i 1
Jeśli takie reszty obliczymy dla każdej obserwacji to możliwe będzie wyznaczenie wartości współczynnika determinacji R 2. 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 R 2 = 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.
Najprostszym sposobem na wybór optymalnej liczby zmiennych objaśniających jest współczynnik R 2 adj zwany skorygowanym. Wiedząc, że R 2 = 1 SSE/SST wartość R 2 adj obliczymy jako: 2 R adj 1 SSE n p SST n 1 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ść R 2 adj będzie po prostu nieco mniejsza niż wartość R 2. W środowisku R współczynnik determinacji R 2 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
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: > 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 Jak widzimy współczynnik R 2 wynosi 0.809 zaś R 2 adj 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: y y j j(i) jest wartością przewidywaną dla j-tej obserwacji obliczoną w modelu z usuniętą obserwacją i-tą 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)
Do wykrycia obserwacji wpływowych możemy także użyć funkcji. > influence.measures(lm(b~a)) której efekty będzie następujący > 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 > 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.
Obserwacje odstające będziemy wykrywać przy użyciu znanego już pakietu car i funkcji outlier.test w ramach tego pakietu. library(car) > outlier.test(model) max rstudent = 2.850639, degrees of freedom = 73, unadjusted p = 0.005668692, Bonferroni p = 0.4364893 Observation: Golden_Crisp Wykryliśmy jedną obserwację odstającą (płatki o nazwie Golden_Crisp).
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 *
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 x i 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 VIF i (1 R 2 1 i ) dla modelu x i = f(x 1,., x i-1, x i+1,, x p ) gdzie zmienna x i 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.
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.
Dla modelu postaci: y i = b 0 + b 1 x 1i + b 2 x 2i + b 3 x 3i + e 1i Gdzie x 3i = 10 * x 1i - 2 * x 2i. Wtedy powiemy, że zmienna x 3 jest kombinacją liniową zmiennych x 1 i x 2. 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).
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. - Założenia 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.
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 gdzie: x,y - to wektory wartości cech porównywanych obiektów w przestrzeni p- wymiarowej, gdzie odpowiednio wektory wartości to: oraz. odległość euklidesowa odległość kątowa współczynnik korelacji liniowej Pearsona Miara Gowera
Oblicz odległość punktu A o współrzędnych (2,3) do punktu B o współrzędnych (7,8). 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 A B D (A,B) = pierwiastek ((7-2) 2 + (8-3) 2 ) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07
9 8 B 7 6 5 4 3 A A B C 2 1 C 0 0 1 2 3 4 5 6 7 8 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
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!