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