Pobierz

Transkrypt

Pobierz
Piła, 22.02.2006
Ostaszewski Paweł
[55566]
projekt zaliczeniowy
Eksploracja Danych
1. Obejrzyj histogramy dla wszystkich atrybutów, na podstawie wartości średniej i zakresu wartości oceń, dla których atrybutów należy
zidentyfikować osobliwości. Przeprowadź usuwanie osobliwości.
• Które atrybuty wybrałaś(eś) do usuwania osobliwości?
• Jaką metodę oznaczania osobliwości wybrałaś(eś) dla każdego atrybutu? Dlaczego?
2. W bazie danych brakujące dane są oznaczone za pomocą znaku ‘?’. Znajdź atrybuty zawierające brakujące dane. Tam, gdzie to możliwe,
zamień brakujące dane na wartość „Not in universe”, w przeciwnym przypadku zamień brakujące dane na dominującą wartość atrybutu.
• Które atrybuty zawierają brakujące wartości?
• Jeśli nie można było zamienić brakującej wartości na „Not in universe”, to jaka była dominująca wartość dla danego atrybutu?
3. Wybierz atrybuty numeryczne, które powinny być Twoim zdaniem znormalizowane. Przeprowadź normalizację atrybutów numerycznych.
• Które atrybuty numeryczne wybrałaś(eś) do normalizacji?
• Jaką metodą znormalizowałaś(eś) każdy z atrybutów? Dlaczego?
4. Wybierz atrybuty numeryczne, które powinny Twoim zdaniem podlegać dyskretyzacji. Dla każdego atrybutu wybierz najwłaściwszą Twoim
zdaniem metodę dyskretyzacji i przedziały dyskretyzacji.
• Które atrybuty numeryczne wybrałaś(eś) do dyskretyzacji?
• Jaką metodę, liczbę przedziałów i granice przedziałów wybrałaś(eś) dla każdego atrybutu? Uzasadnij swój wybór.
5. Dokonaj dyskretyzacji atrybutu kategorycznego AMARITL (marital status) na dwie kategorie: osoby zamężne/żonate (3 wartości) i pozostałe (4
wartości)
1
• Podaj kod perspektywy która umożliwia taką operację
6. Określ ważność atrybutów względem atrybutu decyzyjnego INCOME. W analizie pomiń atrybut MARSUPWT (instance weight) określający
względną wagę instancji reprezentowanej przez dany wiersz.
• Podaj trzy najbardziej przydatne atrybuty do przewidywania wartości atrybutu decyzyjnego. Wytłumacz uzyskany wynik.
• Podaj trzy najmniej przydatne atrybuty do przewidywania wartości atrybutu decyzyjnego. Wytłumacz uzyskany wynik.
7. Wykorzystaj algorytm k-Means do znalezienia najbardziej charakterystycznych skupień cech. Dobierz eksperymentalnie wartość parametru k w
taki sposób, aby instancje rozkładały się w miarę równomiernie pośród znalezionych skupień.
• Podaj wybraną przez siebie wartość parametru k i rozkład instancji w ramach skupień.
• Wybierz jedno skupienie i starannie je przeanalizuj (obejrzyj histogramy rozkładów wartości poszczególnych atrybutów w skupieniu).
Opisz językiem naturalnym instancje przypisane do danego skupienia. Jaka, Twoim zdaniem, grupa/warstwa społeczna jest opisana za pomocą
wybranego skupienia?
8. Zbuduj naiwny klasyfikator Bayesa służący do przewidywania wartości atrybutu decyzyjnego INCOME na podstawie wartości pozostałych
atrybutów. Wybierz atrybuty, które powinny być włączone do modelu (pozostawienie wszystkich atrybutów skutkuje zbudowaniem modelu
niskiej jakości). Jako preferowaną wartość (positive) wybierz „50 000 +”. Zwróć uwagę, żeby przede wszystkim poprawnie przewidywać
preferowaną wartość kosztem ogólnej dokładności modelu (przy sztywnym przewidywaniu klasy „- 50 000” dokładność modelu wyniesie i tak
93%). Pamiętaj, żeby zbudowane modele testować z wykorzystaniem tabeli CENSUS_TEST!
• Które atrybuty weszły w skład modelu?
• Jak wygląda najlepsza znaleziona przez Ciebie macierz kosztów?
• Jakie parametry singleton_threshold i pairwise_threshold zostały wykorzystane przy budowie modelu?
• Jak wyglądała macierz pomyłek?
2
9. Zbuduj drzewo decyzyjne służące do przewidywania wartości atrybutu decyzyjnego INCOME. Jako preferowaną klasę wybierz „50 000+”.
Dobierz eksperymentalnie optymalne parametry klasyfikatora (głębokość drzewa, miarę jednorodności, rozmiary węzłów wewnętrznych i liści).
Pamiętaj, żeby zbudowane modele testować z wykorzystaniem tabeli CENSUS_TEST. Najważniejszym kryterium jest poprawność
przewidywania preferowanej klasy a nie ogólna poprawność klasyfikatora.
• Które atrybuty weszły w skład modelu?
• Jak wygląda najlepsza znaleziona przez Ciebie macierz kosztów?
• Jakie wartości parametrów zostały wykorzystane przy budowie modelu?
• Jak wyglądała macierz pomyłek?
10. Powiązania między krajem urodzenia ojca, matki i dziecka (atrybuty PEFNTVTY, PEMNTVTY, PENATVTY, odpowiednio) można
przedstawić w postaci reguł asocjacyjnych. Stwórz model reprezentujący powiązania między tymi danymi, przykładowa reguła:
MOTHER=Mexico ∧ FATHER=INDIA ⇒ SELF=CANADA.
• Podaj kod polecenia SQL tworzącego perspektywę potrzebną do znalezienia reguł asocjacyjnych o podanym formacie
• Podaj 5 odkrytych reguł o najwyższym wsparciu i ufności
• Napisz program w PL/SQL odkrywający i wyświetlający powyższe reguły
• Napisz program w języku Java odkrywający i wyświetlający powyższe reguły
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Histogramy dla każdego z atrybutów zostały wygenerowane dla próbki 55686 rekordów. Po analizie
wartości średnich, zakresu zmienności oraz współczynnika (variance) wytypowałem następujące atrybuty
numeryczne do eliminacji osobliwości:
wage per hour: 98% próbkowanych wartości należało to zakresu <0,940>, 2% do przedziału
<940,1880>, atrybut przyjmuje wartości z zakresu do <0,9400>, a więc pozostałe pojedyncze
rekordy zidentyfikowałem, jako osobliwości;
capital gains: 99% wartości jest z zakresu (0,10000), 1% <10000,20000>, pozostałe wartości z
zakresu <20000,99999> zidentyfikowałem jako osobliwości;
Tożsamy tok myślenia wykorzystałem do nominowania pozostałych dwóch atrybutów: capital losses oraz
dividends from stock. Metoda eliminacji osobliwości (Outlier Treatment), która została wybrana przeze mnie
to odchylenie standardowe (Std. Deviation). Dla wartości, które odbiegają od trzy odchylenia standardowe
od średniej zostaną przypisane wartości progowe. Metoda Std. Deviation została rekomendowana przez
środowisko Oracle Data Miner.
Po wyeliminowaniu osobliwości dla atrybutów numerycznych, należało zająć się brakującymi
danymi dla atrybutów kategorycznych. Atrybuty, w których pojawiała się wartość ‘?’ to:
state of previous residence (GRINST) – 708 rekordów
migration code-change in msa (MIGMTR1) – 99696 rekordów
migration code-change in reg (MIGMTR3) – 99696 rekordów
46
migration code-move within reg (MIGMTR4) – 99696 rekordów
migration prev res in sunbelt (MIGSUN) – 99696 rekordów
country of birth father (PEFNTVTY) – 6713 rekordów
country of birth mother (PEMNTVTY) – 6119 rekordów
country of birth self (PENATVTY) – 3393 rekordów
Wartości ‘?’ dla atrybutów: GRINST, MIGMTR1, MIGMTR3, MIGMTR4, MIGSUN zostały
zamienione na ‘Not In universe’, natomiast: PEFNTVTY, PEMNTVTY, PENATVTY na wartość ‘UnitedStates’ (wartość dominująca).
Kolejnym krokiem była normalizacja wybranych atrybutów numerycznych. Atrybutem, który
znormalizowałem jest wage per hour (AHRSPAY), ponieważ w moim odczuciu jest on istotny z punktu
późniejszych zadań (wyznaczanie atrybutu INCOME), zakres zmienności jest duży (0 – 9400 przy wartości
średniej 54,82), dodatkowo można by się pokusić o dyskretyzację tego atrybutu ponieważ w analizowanej
próbce aż 98% przypadków należało do jednej klasy. Wydaję mi się, iż w tym kroku dodatkowo można było
uwzględnić atrybuty: capital gains (CAPGAIN), capital losses (CAPLOS), dividends from stock (DIVVAL),
ze względu na ich bardzo szeroki zakres zmienności, ale po analizie histogramu doszedłem do wniosku, iż
lepszym rozwiązaniem będzie dyskretyzacja, znów ze względu na skupienia.
47
Kolejnym krokiem była dyskretyzacja wybranych atrybutów numerycznych. Po analizie
histogramów, charakteru danych oraz celu eksploracji zdecydowałem, że dyskretyzacja obejmie atrybuty:
age (AAGE), weeks worked in year (WKSWORK), capital gains (CAPGAIN), capital losses (CAPLOS),
dividends from stock (DIVVAL).
Dla atrybutu „wiek” ustalonych zostało 6 przedziałów - kierowałem się odczuciem, iż wybrane przeze
mnie granice odpowiadają nijako etapom życia człowieka. Dla pozostałych atrybutów parametry
dyskretyzacji były dobierane samodzielnie na podstawie analiz histogramów:
- „liczba przepracowanych tygodni w roku” – 3
- „zyski kapitałowe” – 4
- „straty kapitałowe” – 2
- „zyski z gry na giełdzie” – 9
48
49
50
51
52
53
Kod perspektywy dzięki, której atrybut kategoryczny AMARITL został dyskretyzowany na dwie
kategorie: 1 – osoby w związku małżeńskim, 0 – osoby samotne:
CREATE VIEW "SUM55566"."CENSUS_05_DISCRETIZE_AMARITL" AS
SELECT
"AAGE",
"ACLSWKR",
"ADTIND",
"ADTOCC",
"AHGA",
"AHRSPAY",
"AHSCOL",
( CASE WHEN "AMARITL" = 'Married-civilian spouse present' THEN 1
WHEN "AMARITL" = 'Married-spouse absent' THEN 1
WHEN "AMARITL" = 'Married-A F spouse present' THEN 1
WHEN "AMARITL" = 'Divorced' THEN 0
WHEN "AMARITL" = 'Widowed' THEN 0
WHEN "AMARITL" = 'Never married' THEN 0
WHEN "AMARITL" = 'Separated' THEN 0
END ) "AMARITL",
"AMJIND",
"AMJOCC",
"ARACE",
"AREORGN",
"ASEX",
"AUNMEM",
"AUNTYPE",
"AWKSTAT",
"CAPGAIN",
"CAPLOSS",
"DIVVAL",
"FEDTAX",
"GRINREG",
"GRINST",
"HHDFMX",
"HHDREL",
"INCOME",
"MARSUPWT",
"MIGMTR1",
"MIGMTR3",
"MIGMTR4",
"MIGSAME",
"MIGSUN",
"NOEMP",
"PARENT",
"PEFNTVTY",
"PEMNTVTY",
"PENATVTY",
"PRCITSHP",
"SEOTR",
"VETQVA",
"VETYN",
"WKSWORK",
"YEAR"
FROM "SUM55566"."CENSUS";
Kolejnym krokiem było określenie ważności atrybutów względem atrybutu decyzyjnego INCOME.
Zaprezentuje wyniki obserwacji dla danych źródłowych (A) oraz danych po eliminacji osobliwości,
uzupełnieniu brakujących wartości, dyskretyzowanych oraz znormalizowanych (B).
54
(A)
55
(B)
56
Atrybuty, które w największym stopniu wpływają na wartość atrybutu INCOME w obu przypadkach
to: education (AHGA) oraz major occupation code (AMJOCC). Znaleziona prawidłowość jest oczywista,
ponieważ uzyskiwany dochód jest w rzeczy samej uzależniony od wykształcenia i etatu, na którym dana
osoba jest zatrudniona. Następny sklasyfikowany atrybut to: (A) major industry code (AMJIND) i (B) weeks
worked in year (WKSWORK) w przypadku analizy danych po wstępnych modyfikacjach. I tutaj również nie
można polemizować nad prawdziwością takiego stwierdzenia, ponieważ te czynniki również w
przeważającej większości warunkują wysokość zarobków. Uzyskane wyniki są zgodne z moimi
oczekiwaniami.
Atrybuty, które w mają najmniejszy wpływ na wartość atrybutu INCOME to w przypadku (A): state
of previous residence (GRINST), capital losses (CAPLOS), wage per hour (AHRSPAY), capital gains
(CAPGAIN), weeks worked in year (WKSWORK), year (YEAR), natomiast (B): divdends from stocks
(DIVVAL), wage per hour (AHRSPAY), year (YEAR) oraz fill inc questionnaire for veteran's admin
(VETQVA). Interpretacja tym razem nie jest dla mnie tak czytelna i oczywista. Jeżeli chodzi o atrybuty:
year, state of previous residence oraz fill inc questionnaire for veteran's admin to faktycznie nie należy
doszukiwać się bliższego związku: natomiast atrybuty: weeks worked in year czy też wage per hour są
według mnie skorelowane z wartością zysku ponieważ stawka godzinowa i ilość przepracowanych tygodni w
roku nijako wyznaczają zysk. Być może na otrzymany rezultat złożył się rozkład próbkowanych danych
(zakres zmienności, ilość wartości unikalnych).
57
Kolejnym
krokiem
było
wykorzystanie
algorytmu
k-Means
do
znalezienia
najbardziej
charakterystycznych skupień cech.
58
Dla wartości parametru k = 6, instancje rozkładały się w miarę równomiernie pośród znalezionych
skupień. Do szczegółowej analizy wybrałem skupisko o ID = 6. Po zapoznaniu się z histogramami mogę
stwierdzić, iż zakwalifikowano przede wszystkim osoby, które:
były w wieku do 15 roku życia
nie dotyczą ich pojęcia: klasa pracownika (class of worker), kod branży (industry code), kod
zawodu (occupation code)
poziom wykształcenia opisany jest jako „Children”
otrzymywały najniższą stawkę godzinową
nigdy nie były w związku małżeńskim
były białej rasy, płeć bez znaczenia (55% stanowią kobiety)
w bardzo małym stopniu udział w ich zarobku stanowią dochody z tytułu lokat lub gry na giełdzie
nie dotyczy ich zagadnienie konieczności płacenia podatków
Pozostałe atrybuty jak i te, które właśnie opisałem wskazują ewidentnie na to, iż analizowane skupisko to
DZIECI.
Kolejnym zadaniem było zbudowanie naiwnego klasyfikatora Bayesa, dzięki któremu możliwe
będzie przewidywanie wartości atrybutu decyzyjnego INCOME na podstawie wartości pozostałych
atrybutów. Atrybuty, które weszły w skład modelu zostały dobrane doświadczalnie.
59
60
61
62
Wyniki otrzymane (Test Matrix) dla danych uczących przy generowaniu modelu:
63
Wyniki otrzymane (Test Matrix) dla danych testowych (bez uwzględnienia Cost Matrix)
64
65
Wyniki otrzymane (Test Matrix) dla danych testowych (z uwzględnieniem Cost Matrix)
66
Macierz kosztów zmodyfikowała rezultat predykcji, polepszając jakość dla preferowanej grupy, ale
niestety zaniżyła ogólną jakość klasyfikatora.
67
Kolejnym zadaniem było zbudowanie drzewa decyzyjnego, dzięki któremu możliwe będzie
przewidywanie wartości atrybutu decyzyjnego INCOME na podstawie wartości pozostałych atrybutów.
Atrybuty, które weszły w skład modelu zostały dobrane doświadczalnie.
68
69
70
Wyniki otrzymane (Test Matrix) dla danych uczących przy generowaniu modelu:
71
Wyniki otrzymane (Test Matrix) dla danych testowych (Cost Matrix ustawienie 1)
72
73
Wyniki otrzymane (Test Matrix) dla danych testowych (Cost Matrix ustawienie 2)
74
75
W przypadku drzewa decyzyjnego zaobserwowałem podobna prawidłowość jak dla naiwnego
klasyfikatora Bayesa, a mianowicie dokładność predykcji preferowanej grupy możemy dostrajać
modyfikacjami w macierzy kosztów.
76