Chybějící atributy a postupy pro jejich náhradu
Jedná se o součást čištění dat Čistota dat je velmi důležitá, neboť kvalita dat zásadně ovlivňuje kvalitu výsledků, které DM vyprodukuje, neboť platí Garbage in, garbage out! Jaké kroky se používají při čištění dat? Řešení problému chybějících údajů Identifikace mimořádných hodnot (outliers) a vyhlazení zašuměných dat Oprava nekonzistentních údajů v datech Řešení redundancí vzniklých při integraci dat 2
(diagnoza chřipka?) 1 zvýšená? ne ano 3? ne ne ne Z jakých důvodů mohou data chybět? 5 zvýšená? ano ne 8? ano? ano Bylo zbytečné je zjišťovat, neboť rozhodnutí lze udělat i bez nich nebo v daném případě nemají smysl (např. spotřeba u bezmotorového dopravního prostředku) : data jsou pak označovány jako údaje, o které nestojíme ( do not care ) Jedná se o ztracené údaje, tedy ty hodnoty, které 3 se nepodařilo zjistit z neznámých důvodů, byly omylem vymazány, šlo o evidentní překlep,.
Způsoby řešení problému chybějících atributů Sekvenční metody jsou součástí předzpracování dat. Jejich cílem je ze souboru s nekompletními daty vytvořit nový soubor, který je úplný: příslušné případy mohou být vynechány nebo naopak v nich chybějící data doplněna. Paralelní metody řeší problém chybějících hodnot až v průběhu nasazení algoritmu strojového učení (např. při hledání příslušných rozhodovacích pravidel) 4
5 SEKVENČNÍ METODY
1. Vynechání neúplných příkladů Nejjednodušší řešení. Ovšem tím se připravíme o významnou část cenných dat: z původní množiny případů může zbýt malý díl (zde jen polovina!) (diagnoza chřipka?) 6
2a. Náhrada nejobvyklejší hodnotou Pro všechny atributy se zjistí relativní frekvence jednotlivých hodnot a pro náhradu se zvolí hodnota s nejvyšší frekvencí, viz příklad: : zvýšená (3/8), normální (2/8), vysoká (1/8) _: ano (4/8), ne (2/8) : ano (4/8), ne (3/8) 1 zvýšená? ne ano 3? ne ne ne 5 zvýšená? ano ne 8? ano? ano 1 zvýšená ano ne ano 3 zvýšená ne ne ne 7 Výsledek náhrady Přístup použitý např. v algoritmu CN2 5 zvýšená anp ano ne 8 zvýšená ano ano ano
2b. Náhrada nejobvyklejší hodnotou vzhledem ke klasifikaci případu Při nahrazování hodnoty pro případ, který je klasifikován do třídy c1, se vybírá nejfrekventovanější odpověď zjištěná jenom mezi případy dané třídy c1. Např. pro pacienty 3 a 5 zařazené do třídy diagnóza chřipka ne musíme zjistit frekvence výskytu hodnot mezi pacienty {3,5,6,7}: : zvýšená (1/4), normální (2/4), vysoká (0/4) _: ano (1/4), ne (2/4) Tato náhrada není použita pro pacienty 1 a 8, pro něž musíme naopak zjišťovat relativní frekvenci výskytů v množině pacientů {1,2,4,8}, tedy: _: ano (3/4), ne (0/4) : ano (2/4), ne (1/4) 1 zvýšená? Ne ano 2 vysoká ano Ano ano 3? ne Ne ne 5 zvýšená? ano ne 8? ano? ano 1 zvýšená ano ne ano 2 vysoká Ano ano ano 3 normální ne ne ne 8 Výsledek náhrady Použito např. v ASSISTANT (Kononenko et. al., 1984) 5 zvýšená ne ano ne 8 zvýšená ano ano ano
3. Náhrada všemi možnými hodnotami daného atributu 1 zvýšená? ne ano 3? ne ne ne Každý případ (pacient) je popsán více alternativními vektory údajů. Výsledná data mohou být nekonzistentní (např. řádky 1 a 3 ) - vhodné jen pro metody stroj. učení, které s tím dovedou pracovat (např. užívající rough sets theory). Opět jsou 2 přístupy: 5 zvýšená? ano ne 8? ano? ano každá možná hodnota chybějícího atributu je použita 1 zvýšená ano ne ano 1 zvýšená ne ne ano 3 zvýšená ne ne ne 3 vysoká ne ne ne 3 normální ne ne ne každá možná hodnota chybějícího atributu v dané klasifikační třídě je použita: Např. u pacienta 1 tedy není použita náhrada hodnotou ne, která pro třídu diagnóza chřipka ano, tj. pro pacienty { 1,2,4,8 } není nikdy v datech použita. Dále u pacienta 3 tedy není použita náhrada hodnotou vysoká, která pro třídu diagnóza chřipka ne, tj. pro pacienty {3,5,6,7} není nikdy v datech použita. 9 1 zvýšená ano ne ano 3 zvýšená ne ne ne 3 normální ne ne ne
4. Náhrada průměrem (u spoj.dat) nebo nejčastější hodnotou Průměrná hodnota pro teplotu je 37,4 o C pro celý soubor. 37,9 o C pro data klasifikovaná diagnóza chřipka ano, 36,4 o C pro diagnóza chřipka ne. 1 37,5? ne ano 2 39,1 ano ano ano 3? ne ne ne 4 37,2 ano ano ano 5 37,6? ano ne 6 36,2 ano ne ne 7 36,7 ne ano Ne 8? ano? ano 1 37,5 ano ne ano Opět jsou 2 přístupy: 2 39,1 ano ano ano 3 37,4 ne ne ne 4 37,2 ano ano ano Náhrada je provedena pomocí průměru na celém souboru 5 37,6 ano ano ne 1 37,5 ano ne ano 10 Pro náhradu se používají hodnoty průměru v příslušné klasifikační třídě. 2 39,1 ano ano ano 3 36,4 ne ne ne 4 37,2 ano ano ano 5 37,6 ano ano ne
5. Náhrada hodnotou nejbližšího souseda Vzdále 2 vzorků x a y popsaných n atributy, jejichž některé hodnoty mohou chybět: n distance(x, y)= distance(x i, y i ), kde i = i 1 1 37,5? ne ano 2 39,1 ano ano ano 3? ne ne ne 4 37,2 ano ano ano 5 37,6? ano ne 6 36,1 ano ne ne 7 36,7 ne ano ne 8? ano? ano { 0 pokud x i = y i distance(x i, y i ) 1 pokud hodnoty x i a y i jsou výčtového typu nebo jedna z nich chybí x i - y i /r i jinak (tedy jde o reálné hodnoty s rozsahem r i, odpovídajícímu rozdílu mezi max a min hodnotou) a) Postup náhrady hodnoty atributu bolest pro vzorek 1 přes všechna data: Postup náhrady hodnoty atributu bolest pro vzorek 1 d(1,2) d(1,3) d(1,4) d(1,5) d(1,6) d(1,7) d(1,8) 1. Vypočti vzdálei vzorku 1 od ostatních. 2. Vyber nejbližší (je jím???) 3. Jeho hodnotu (???) použij jako náhradu pro vzorek 1. 1 37,5 ano ne ano 11 b) Obdobně lze postupovat také jen uvnitř jediné třídy! 2 39,1 ano ano ano 3 36,4 ne ne ne 4 37,2 ano ano ano
12 PARALELNÍ METODY