Analiza i prognozowanie poziomu zachorowań na grypę
Transkrypt
Analiza i prognozowanie poziomu zachorowań na grypę
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 województwo Dolnośląskie Kujawsko-Pomorskie Łódzkie Lubelskie Lubuskie Małopolskie Mazowieckie Opolskie Podkarpackie Podlaskie Pomorskie Ślaskie Świętokrzyskie Warmińsko-Mazurskie Wielkopolskie Zachodniopomorskie Razem D C E L F K W O R B G S T N P Z 0-14 514 412 447 449 190 649 909 192 459 245 431 785 244 301 666 325 7 226 2000-2006 15+ 2 572 1 785 2 297 1 918 854 2 729 4 455 940 1 815 1 033 1 860 4 092 1 119 1 242 2 874 1 461 33 054 razem 3 078 2 196 2 744 2 363 1 039 3 377 5 347 1 132 2 267 1 284 2 286 4 862 1 359 1 542 3 544 1 788 40 215 2007-1010 razem 3 148 2 454 2 708 2 564 1 185 4 023 5 939 1 094 2 609 1 373 2 757 4 898 1 384 1 811 4 187 1 976 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 min temp ze średniej dziennej max temp ze średniej dziennej min temp z minimalnej dziennej max temp z maksymalnej dziennej województwo wiek miesiąc pora roku kwartał zapadalność zapadalność zapadalność zapadalność max różnica temp w ciągu dnia max różnica w temp średniej z dnia na dzień 1 2 3 1 tydz temu tyg. temu tyg. temu rok temu 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( X xi wi − φ) 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. v u N uX d Φ(y , y ) = t wk (yk − ykd )2 k=1 Wartości wag są oparte na rozkładzie zapadalności w poszczególnych miesiącach. Maksimum z funkcji straty. Φ(y , y d ) = max(wk k q 1.5 + 0.5|yk − ykd |) Suma funkcji straty. Średnia funkcji straty. Druga norma. 23 / 33 Uczenie sieci. Uczenie nienadzorowane sieci neuronowej nie wykorzystuje informacji o wektorze wyjściowym y d . Modyfikacja wagi wij między i-tym oraz j-tym jest wynikiem obserwacji natężeń sygnałów przepływających przez te neurony: Modyfikacja wag. wij = N 1 X (k) (k) xi xj N k=1 ,gdzie N - liczba wektorów prezentowanych na wejściu, (k) xi - 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 Prognozy giełdowe Sterowanie procesami produkcyjnymi Wykrywanie podejrzanych transakcji - wykrywanie przestępstw giełdowych Tworzenie prognoz pogody Systemy rezerwacji biletów lotniczych Diagnostyka układów elektronicznych Przewidywanie trzęsień ziemi Rozpoznawanie i identyfikacja obrazów radarowych Rozpoznawanie znaków drogowych (Driver Assistant System) 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 błąd 1 2 3 4 5 testowy 10534 209 11,56 42725 6299 2 uczący 16830 218 11,22 96786 9756 testowy 10526 209 11,56 42734 6293 3 uczący 16833 218 11,24 96910 9765 testowy 10545 211 11,62 42929 6440 4 uczący 17307 221 11,16 96254 10122 testowy 10437 205 11,61 42918 6268 uczący 17373 224 11,31 97551 10043 33 / 33