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