Analiza i prognozowanie poziomu zachorowań na grypę Roksana Kowalska, Anna Noga, Maciej Kawecki, Paweł Szczypiór Instytut Matematyki i Informatyki Politechnika Wrocławska WZUR 2010 25 września 2010 1 / 33
Plan prezentacji 1 Opis problemu - postawienie pytań. 2 Dane pogodowe. 3 Sieci neuronowe i drzewka - teoria. 4 Sieci neuronowe i drzewka - w R. 2 / 33
Zapadalność 3 / 33
Cel Prognozowanie poziomu zapadalności na grypę 1 użycie dodatkowych danych o pogodzie 2 scalenie i czyszczenie danych 3 wykorzystanie sieci neuronowych i drzew regresyjnych 4 porównanie modeli 4 / 33
Średnia liczba mieszkańców Liczba mieszkancow(wojewodztwo) = liczba zachorowan zapadalnosc 2000-2006 2007-1010 województwo 0-14 15+ razem razem Dolnośląskie D 514 2 572 3 078 3 148 Kujawsko-Pomorskie C 412 1 785 2 196 2 454 Łódzkie E 447 2 297 2 744 2 708 Lubelskie L 449 1 918 2 363 2 564 Lubuskie F 190 854 1 039 1 185 Małopolskie K 649 2 729 3 377 4 023 Mazowieckie W 909 4 455 5 347 5 939 Opolskie O 192 940 1 132 1 094 Podkarpackie R 459 1 815 2 267 2 609 Podlaskie B 245 1 033 1 284 1 373 Pomorskie G 431 1 860 2 286 2 757 Ślaskie S 785 4 092 4 862 4 898 Świętokrzyskie T 244 1 119 1 359 1 384 Warmińsko-Mazurskie N 301 1 242 1 542 1 811 Wielkopolskie P 666 2 874 3 544 4 187 Zachodniopomorskie Z 325 1 461 1 788 1 976 Razem 7 226 33 054 40 215 44 117 5 / 33
Dane pogodowe http://polish.wunderground.com/history/station/12566/2000/1/1/monthlyhistory.html 6 / 33
Dane pogodowe http://polish.wunderground.com/history/station/12566/2000/1/1/monthlyhistory.html?format=1 7 / 33
Dane pogodowe Dane zostały oczyszczone z błędnych obserwacji na podstawie poniższych kryteriów: w miesiącach innych niż maj-wrzesień występowała temperatura powyżej (>=) 30 stopni Celcjusza wszędzie gdzie temperatura była wyższa niż 40 stopni Celcjusza gdy temperatura była poniżej -32 (<=) Przypadki, gdy temperatura była większa bądź równa 36 stopni Celcjusza były osobno sprawdzane i brane były tylko te, dla których wartości były prawdziwe. 8 / 33
Lista zmiennych województwo wiek miesiąc pora roku kwartał zapadalność 1 tydz temu zapadalność 2 tyg. temu zapadalność 3 tyg. temu zapadalność 1 rok temu min temp ze średniej dziennej max temp ze średniej dziennej min temp z minimalnej dziennej max temp z maksymalnej dziennej max różnica temp w ciągu dnia max różnica w temp średniej z dnia na dzień max z max dziennych predkości wiatru średnia ze średnich predkości wiatru max z max wilgotności dziennych średnia ze średnich wilgotności dziennych Zmienna zależna: zapadalność (liczba na 100 000 mieszkańców). Zakres przy wyznaczeniu agregatów pogodowych: (1-7 dni wstecz). 9 / 33
Drzewa binarne Konstrukcja binarnych drzew klasyfikacyjnych polega na sekwencyjnym dzieleniu podzbiorów przestrzeni próby X na dwa rozłączne i dopełniające się podzbiory, rozpoczynając od całego zbioru X. Zalety drzew klasyfikacyjnych: Bezproblemowy sposób wykorzystania do klasyfikacji zarówno cech ilościowych, jak i jakościowych. Prosta forma końcowa drzewa klasyfikacyjnego umożliwiająca w szybki i efektywny sposób klasyfikację nowych obiektów. Odporność na obserwacje odstające i sytuacje, w których niektóre zmienne są nieobserwowane. 10 / 33
Drzewa binarne biblioteka: rpart funkcje: rpart, rpart.control rpart(formula, data, weights, method, control,...) control - szczegóły kontrolujące działanie algorytmu rpart.control(minsplit=20, minbucket=round(minsplit/3), cp=0.001,...) minsplit - minimalna liczność obserwacji dla danego węzła minbucket - minimalna liczność obserwacji dla każdego z liści węzła cp - parametr złożoności (w ANOVA oznacza to, że R 2 rośnie o cp w każdym kroku) 11 / 33
Drzewa binarne 12 / 33
Drzewa binarne 13 / 33
Drzewa binarne 14 / 33
Drzewa binarne 15 / 33
Wprowadzenie do tematyki sztucznych sieci neuronowych. Idea. Budowa i działanie komórki nerwowej. Model matematyczny neuronu. Sztuczna sieć neuronowa. Uczenie sieci. Zastosowania. 16 / 33
Idea. Koncepcja sztucznej sieci neuronowej jest wynikiem poszukiwania przed naukowców efektywnych systemów samouczących się. Zainspirowani konstrukcją ludzkiego mózgu, wprowadzili oni pojęcie sztucznej sieci neuronowej - zespołu połączonych ze sobą jednostek przetwarzających dane, zdolnego do adaptacji umożliwiającej modelowanie szerokiej klasy skomplikowanych procesów. 17 / 33
Budowa i działanie komórki nerwowej. Impulsy pochodzące z innych komórek nerwowych docierają z synaps do neuronu poprzez dendryty. Następnie, na podstawie natężenia tych sygnałów, podejmowana jest decyzja o wysłaniu przez neuron impulsu wyjściowego poprzez akson. Każda komórka nerwowa posiada jeden akson, chociaż zwykle rozgałęzia się on, rozprzestrzeniając impuls do innych komórek. Akson zwykle połączony jest z dendrytem innej komórki nerwowej, ale nie jest to regułą. 18 / 33
Model matematyczny neuronu. Model matematyczny neuronu obejmuje: Wektor mocy sygnałów x. Wektor wag (efektywności synaps) w. Sumator Σ. Próg φ. Funkcja aktywacji f. Sumator oblicza średnią ważoną wektora x z wagami w (czyli iloczyn skalarny wektorów x oraz w) pomniejszoną o wartość progową φ. Moc sygnału wyjściowego obliczamy, nakładając na wynik funkcję aktywacji: y = f ( i x i w i φ) 19 / 33
Model matematyczny neuronu. Rozpatruje się różne funkcje aktywacji: Funkcja progowa unipolarna. Funkcja progowa bipolarna. Funkcja sigmoidalna unipolarna. Funkcja sigmoidalna bipolarna. 20 / 33
Sztuczna sieć neuronowa. Sztuczna sieć neuronowa jest zbiorem połączonych ze sobą sztucznych neuronów. Zwykle stosuje się wielowarstwowe sieci typu feed-forward, w których grupy neuronów tworzą uporządkowane warstwy, a sygnał przechodzi przez neurony każdej warstwy jednokrotnie, oraz sieci rekurencyjne, w których sygnał możee powracać do neuronów warstw wcześniejszych, tworząc cykle. 21 / 33
Uczenie sieci. Niech x - wejściowy wektor danych. y - wyjściowy wektor danych. y d - wyjściowy wektor otrzymany za pomocą sieci neuronowej. Uczenie (nadzorowane) sieci neuronowej polega na takiej kontrolowanej modyfikacji wektora wag połączeń w sieci, która spowoduje minimalizację błędu wynikającego z różnicy między wektorami y oraz y d. W praktyce efektywne uczenie sieci wymaga wielu wektorów wejściowych oraz wielokrotnej ich prezentacji sieci. 22 / 33
Uczenie sieci. W naszej pracy porównywaliśmy modele używając następujących funkcji błędu: Druga norma z wagami. Φ(y, y d ) = N w k (y k yk d)2 k=1 Wartości wag są oparte na rozkładzie zapadalności w poszczególnych miesiącach. Maksimum z funkcji straty. Suma funkcji straty. Średnia funkcji straty. Druga norma. Φ(y, y d ) = max (w k 1.5 + 0.5 y k yk d ) k 23 / 33
Uczenie sieci. Uczenie nienadzorowane sieci neuronowej nie wykorzystuje informacji o wektorze wyjściowym y d. Modyfikacja wagi w ij między i-tym oraz j-tym jest wynikiem obserwacji natężeń sygnałów przepływających przez te neurony: Modyfikacja wag. w ij = 1 N N k=1 x (k) i x (k) j,gdzie N - liczba wektorów prezentowanych na wejściu, x (k) i - sygnał wpływający do i-tego neuronu w wyniku prezentacji k-tego wektora wejsciowego. Duże wagi otrzymują zatem połączenia między tymi neuronami, które w wyniku prezentacji danego wektora wejściowego otrzymują sygnały o podobnych natężeniach. 24 / 33
Uczenie sieci. Bardzo popularnymi metodami uczenia sieci są tzw. metody gradientowe. Ich stosowanie polega na modyfikacji wektora wag zgodnie z kierunkiem wyznaczanym przez gradient funkcji błędu. Odpowiada to wędrówce po powierzchni wykresu funkcji błędu zgodnie z kierunkiem największego spadku. Ważnym problemem w używaniu metod gradientowych jest ustalenie długości kroku. Trzeba również uważać na minima lokalne, których osiągnięcie powoduje zatrzymanie pracy algorytmu. 25 / 33
Zastosowania sieci Śieci neuronowe mogą być stosowane z dużym prawdopodobieństwem odniesienia sukcesu wszędzie tam, gdzie pojawiają się problemy związane z tworzeniem modeli matematycznych pozwalających odwzorowywać złożone zależności pomiędzy pewnymi sygnałami wejściowymi a wybranymi sygnałami wyjściowymi R. Tadeusiewicz (2000) Planowanie remontów maszyn w zakładach przemysłowych Sterowanie procesami produkcyjnymi Tworzenie prognoz pogody Systemy rezerwacji biletów lotniczych Przewidywanie trzęsień ziemi Rozpoznawanie znaków drogowych (Driver Assistant System) Prognozy giełdowe Wykrywanie podejrzanych transakcji - wykrywanie przestępstw giełdowych Diagnostyka układów elektronicznych Rozpoznawanie i identyfikacja obrazów radarowych Analiza badań medycznych 26 / 33
Neuralnet biblioteka: neuralnet funkcje: neuralnet, prediction neuralnet(formula, data,...) hidden- wektor określający ilość warstw ukrytych i neuronów w warstwach, np. (3,2,1) oznacza 3 warstwy: pierwszą z trzema neuronami, drugą z dwoma neuronami i trzecią z jednym neuronem. Default=1. algorithm - algorytm uczenia sieci: backprop, sag, slr, rprop-, rprop+ (default) act.fct- funkcja aktywacji: logistic (1/(1+exp(-x))), tanh linear.output (default: true) 27 / 33
Neuralnet 28 / 33
Neuralnet 29 / 33
Nnet biblioteka: nnet funkcje: nnet nnet(formula, data,...) nnet(x, y,...) x - dane y - target size- liczba neuronów w warstwie subset- wektor indeksów określający, które przypadki mają być użyte jako uczące maxit- maksymalna liczba iteracji (default 100) linout (default: logistic output units) MaxNWts- największa dopuszczalna liczba wag 30 / 33
Nnet 31 / 33
Dziękujemy za uwagę :) 32 / 33
Błędy predykcji na zbiorze testowym błędy dopasowania dla zbioru uczącego 1 2 3 4 błąd testowy uczący testowy uczący testowy uczący testowy uczący 1 10534 16830 10526 16833 10545 17307 10437 17373 2 209 218 209 218 211 221 205 224 3 11,56 11,22 11,56 11,24 11,62 11,16 11,61 11,31 4 42725 96786 42734 96910 42929 96254 42918 97551 5 6299 9756 6293 9765 6440 10122 6268 10043 33 / 33