Eksploracja danych
Transkrypt
Eksploracja danych
Eksploracja danych Projekt zaliczeniowy W schemacie MIKOLAJ znajdują się tabele CENSUS i CENSUS_TEST. Tabela CENSUS zawiera dane statystyczne potrzebne do trenowania i uczenia klasyfikatorów. Tabela CENSUS_TEST służy do testowania jakości zbudowanych modeli klasyfikacji. Przekopiuj zawartość obu tablic do własnego schematu. Szczegółowy opis struktury, znaczenie poszczególnych atrybutów i przykładowe wartości atrybutów (obie tabele mają identyczną strukturę) można znaleźć tutaj: http://www.cs.put.poznan.pl/mmorzy/ed/census-income.names. Atrybutem decyzyjnym jest atrybut INCOME (problem klasyfikacji binarnej). Poniżej umieściłem listę zadań szczegółowych. Możecie Państwo wykonać wybraną część zadań w zależności od tego, jaką chcecie uzyskać ocenę. Kryteria oceny są następujące: • • • • • Ocena Ocena Ocena Ocena Ocena dostateczna: dostateczna+: dobra: dobra+: bardzo dobra: zadania zadania zadania zadania zadania 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6 6, 6, 6, 6, 7, 7, 7, 7, 8 8, 9, 10 8, 9, 10, 11, 12 8, 9, 10, 11, 12, 13, 14 Sprawozdanie musi zawierać krótki opis wykonanych czynności i dokładne odpowiedzi na wszystkie pytania umieszczone pod każdym zadaniem (sekcja wypunktowana). Tam gdzie jest to wymagane, proszę także dołączyć kod programu. Termin nadsyłania prac upływa 19.06.2006 (poniedziałek) o północy (decyduje godzina przybycia listu do mojej skrzynki pocztowej). Osoby które prześlą sprawozdanie po tym terminie nie uzyskają zaliczenia przed 21.06.2006. Ostatecznym terminem przesłania projektu jest piątek, 22.09.2006. Żadne wpisy nie będą antydatowane, uzyskanie wpisu za projekt dostarczony po ostatecznym terminie jest możliwe tylko i wyłącznie w oparciu o aktualne przedłużenie sesji. Projekty proszę przesyłać na adres [email protected] UWAGA!!! W przypadku wykrycia plagiatu obie osoby otrzymują ocenę 2.0/3.0. Zwracam uwagę, że kwestia rzeczywistego autorstwa projektu nie ma dla mnie najmniejszego znaczenia – oddanie cudzego projektu jako własnego traktuję jak oszustwo, a udostępnienie swojego projektu jak współudział w oszustwie. Wymagania dotyczące uzyskania oceny dostatecznej są tak proste, że nie ma potrzeby kraść cudzych projektów. 1. Wstępne przygotowanie danych do eksploracji 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. Obsługa brakujących wartości 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. Normalizacja atrybutów numerycznych 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. Dyskretyzacja atrybutów numerycznych 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. Dyskretyzacja atrybutów kategorycznych Dokonaj dyskretyzacji atrybutu kategorycznego AMARITL (marital status) na dwie kategorie: osoby zamężne/żonate (3 wartości) i pozostałe (4 wartości) • Podaj kod perspektywy która umożliwia taką operację 6. Określanie ważności atrybutów 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. Analiza skupień 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 liczby 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? Powtórz ćwiczenie wykorzystując algorytm O-Cluster • Podaj uzyskaną liczbę skupień i rozkład liczby instancji w ramach poszczególnych skupień. • Znajdź skupienie odpowiadające grupie klientów opisanych przez Ciebie w wyniku działania algorytmu k-Means. Czy skupienie bardzo się różni od skupienia uzyskanego przez O-Cluster? Podaj najważniejsze różnice. 8. Odkrywanie cech Przeanalizuj zawartość tabeli CENSUS pod kątem występowania w (liniowych kombinacji wartości atrybutów). Wykorzystaj algorytm znalezienia dominujących cech. • Podaj liczbę znalezionych cech. • Wyświetl wybraną cechę, zinterpretuj ją i porównaj z skupieniami (przez algorytm O-Cluster lub k-Means), odpowiada jakiemuś skupieniu? niej cech NNMF do odkrytymi czy cecha 9. Naiwny klasyfikator Bayesa 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? 10. Drzewa decyzyjne 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? 11. Regresja Wykorzystaj algorytm SVM do zbudowania modelu służącego do przewidywania wartości atrybutu numerycznego AHRSPAY (godzinowa stawka wynagrodzenia). Przy budowie (i testowaniu) modelu wykorzystaj tylko rekordy w których AHRSPAY != 0. Przetestuj uzyskany model wykorzystując do tego celu tabelę CENSUS_TEST. • Podaj średni błąd kwadratowy i średni błąd bezwzględny modelu. • Przedstaw wizualizację uzyskanych wyników (GnuPlot, Excel, ...) 12. Identyfikacja osobliwości Wykorzystaj algorytm SVM do zbudowania modelu identyfikującego klientów będących osobliwościami. • Wyświetl 10 klientów którzy najbardziej odstają od „średniej” • Wyświetl średni wiek, najczęstsze wykształcenie, status cywilny i rasę najbardziej typowych klientów 13. Reguły asocjacyjne 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 14. Klasyfikacja on-line Wykorzystaj algorytm SVM do zbudowania modelu służącego do predykcji atrybutu decyzyjnego INCOME. Zapisz zbudowany model w bazie danych. Następnie przygotuj serwlet/dokument JSP (technologia dowolna) wykorzystujący zbudowany model jako narzędzie do predykcji atrybutu INCOME na podstawie danych przesłanych przez formularz HTML. W formularzu weź pod uwagę następujące atrybuty: AAGE, AHGA, AMARITL, AMJOCC, ARACE, ASEX, PENATVTY. Efektem działania serwletu/dokumentu JSP powinna być przewidywana wartość atrybutu INCOME wraz z wyliczonym prawdopodobieństwem. Do sprawozdania koniecznie dołącz kod zarówno tworzący model jak i kod aplikacji www (kod proszę dołączyć w osobnych plikach a nie jako listingi)