Spis treści: 1. 2. 3. 3. Przygotowanie danych do analizy. Transformacja danych.1 Rapid Miner transformacja danych.2 Oracle Data Miner - Przygotowanie danych do analizy...5 Transformacja danych w ODM JAVA API.....6 4. Transformacja danych w ODM PL/SQL... 11 5. Zadania......13 1. Przygotowanie danych do analizy. Transformacja danych Eksploracja danych, która jest jednym z etapów odkrywania wiedzy z danych wymaga, by analizowane dane były dobrej jakości. By nie było brakujących danych, czy tzw. outliers. Konieczne jest więc przeprowadzenie procesu przygotowania danych do analizy, które ma na celu usunięcie nieprawidłowości i przekształcenie danych do postaci wymaganej przez techniki Data Mining. Według D.Pyle (D.Pyle, Preparation for Data Mining,Morgan Kaufman, San Francisco, CA, 1999) wstępna obróbka danych zajmuje aż 60% czasu i wysiłku związanego z eksploracją danych. W przypadku brakujących danych można: pominąć rekordy z brakującymi wartościami (niezalecane) zastąpić brakującą wartość pewną stałą, określoną przez analityka, zastąpić brakującą wartość wartością średnią (zmienne liczbowe) lub modalną (zmienne jakościowe) zastąpić brakującą wartość wartością wygenerowaną losowo z rozkładu zmiennej. Techniki Data Mining mogą być stosowane z powodzeniem gdy dane nie będą zawierały zmiennych niewspółmiernych i nadmiernie skorelowanych zmiennych niezależnych. Dane niewspółmierne skutkują budową modeli, w których wkład poszczególnych zmiennych może różnić się wielokrotnie. Stosowanie danych nadmiernie skorelowanych powoduje: wyolbrzymienie jakiejś części danych, budowę niestabilnych modeli i uzyskanie niepewnych wyników, z powodu wielokrotnej regresji w dziedzinie uzyskuje się niespójne wyniki Konieczne jest więc przed budową modeli przekształcenie zmiennych do odpowiedniej postaci, określane jako proces transfomacji danych. Transformacja danych obejmuje następujące przekształcenia: dyskretyzacja zmiennych, podział na przedziały o jednakowej długości szeregi rozdzielcze, o jednakowej głębokości - kwantyle rangowanie, normalizacja (standaryzowanie danych), obliczanie odwrotności logarytmowanie, pierwiastkowanie, przekształcenia logitowe, zmiana typu danych. -1-
Rapid Miner transformacja danych 2. Rapid Miner transformacja danych Rapid Miner umożliwia przygotowanie danych do analizy poprzez wykonanie próbkowania, selekcję atrybutów jak też przeprowadzenie transformacji danych. Selekcja danych W celu wybrania określonych atrybutów można wykorzystać operator Select Attributes, który daje możliwość ustalenia podzbioru atrybutów. Transformację danych można wykonać wykorzystując jeden z operatorów dostępnych w grupie Data Transformation. -2-
Rapid Miner transformacja danych Konwersja Możliwa jest konwersja wskazanych atrybutów. Dyskretyzacja Rapid Miner zapewnia możliwość przeprowadzenia dyskretyzacji danych liczbowych przy zastosowaniu różnych strategii: na podstawie rozmiaru, częstości czy entropii. -3-
Rapid Miner transformacja danych Czyszczenie danych Rapid Miner umożliwia zidentyfikowanie tzw. Outliers a także pozwala na uzupełnienie brakujących danych. Brakujące wartości atrybutów. W przypadku danych niekompletnych można próbować wypełnić puste miejsca na podstawie znanych wartości danego atrybutu w innych przykładach, np. przypisując w puste miejsce średnią wartość tego atrybutu dla wszystkich przykładów należących do tej samej klasy, dla których wartość tego atrybutu jest znana. Uzupełnianie brakujących danych jest możliwe przy zastosowaniu operatora Replace MissingValues. Wynikowy zestaw danych, uzupełniony o estymowane brakujące wartości, otrzymamy korzystając min. z operatora Write CSV. Dane te następnie można wykorzystać w kolejnym procesie przetwarzania danych. -4-
3. Oracle Data Miner - przygotowanie danych do analizy Tabele danych mogą zawierać atrybuty o wartości NULL. Algorytmy eksploracji danych często traktują wartości NULL jako wartości brakujące (missing values) lub zakładają, że dane są danymi rzadkimi (sparse data). Zazwyczaj do obsługi wartości brakujących wystarczą ustawienia domyślne. Z danymi rzadkimi mamy do czynienia wówczas, gdy niewielka część atrybutów (do 20 %, a w przypadku analizy koszykowej nawet do 3 %) ma wartości niezerowe bądź nie puste. Algorytmy, dla których brakujące wartości oznaczają dane rzadkie to SVM czy APriori. Brakujące dane, dane nietypowe (outliers) i błędne dane uniemożliwiają przeprowadzenie analizy danych lub fałszują wyniki analiz. Algorytmy eksploracji danych często wymagają stosowania danych określonego typu, o wartościach z określonego przedziału. Zanim przystąpi się do budowy modeli eksploracyjnych (drzewa decyzyjne,, sieci neuronowe itd. ) należy przeprowadzić czyszczenie danych, uzupełnianie brakujących wartości, a następnie transformację danych. Dyskretyzacja Proces dyskretyzacji grupuje wartości w przedziały redukując różnowartościowość atrybutów (zmiennych). Im mniejsza liczba przedziałów tym szybciej jest budowany model. Proces dyskretyzacji ma ogromny wpływ na dokładność modelu. Ręczna dyskretyzacja dokonywana przez eksperta, oparta o informacje dotyczące danych i zagadnienia będącego przedmiotem analizy może zwiększyć dokładność modelu. Metody dyskretyzacji w ODM: atrybuty numeryczne: Podział na kwantyle (quantile binning): dla przedziału wartości atrybutu od min do max i określonej liczby kwantyli N, przedział jest dzielony na M części (M<=N), tak, że każda część zawiera taką samą liczbę wartości atrybutów. Podział na szeregi rozdzielcze o równej szerokości (Equal Width Binning). Przedziały zawierają różną liczbę wartości atrybutów. atrybuty kategoryczne: Rangowanie Pierwsze N elementów (Top N binning): dla danego N określanych jest N najczęściej występujących wartości. Atrybuty są dzielone na N+1 przedziałów tak, że przedział 1 zawiera atrybuty z pierwszą wartością częstości, przedział N zawiera atrybuty z N-tą wartością częstości, a przedział N+1, zawiera atrybuty z wartością częstości nie odpowiadającą żadnej z N. Normalizacja Normalizacja sprowadza się do transformacji wartości ciągłych w przedział od 1 do 1 lub od 0 do 1. Transformacja ma następującą postać: xnew = ((xold-shift)/scale). W ODM możliwe jest wykorzystanie różnych metod normalizacji: Dla atrybutów nie rzadkich: Min-Max: xnew = (x - MIN(x))/(MAX(x) - MIN(x))*(new max - new min) + new min Z-Score: xnew = (x - MEAN(x))/SQRT(VARIANCE(x)) Dla atrybutów rzadkich: Skalowanie liniowe: xnew = (x/max(abs(min(x)), ABS(MAX(x)))). -5-
Dla danych przeznaczonych do analizy można obliczyć statystyki określające wartości minimalne, maksymalne, średnie poszczególnych atrybutów oraz wariancję i przygotować histogramy. Oracle10g Data Mining (ODM) Oracle10g Data Mining umożliwia integrację mechanizmów eksploracji analizy danych (data mining) wbudowanych w bazę danych Oracle10g z aplikacjami tworzonymi przez programistów. ODM udostępnia dwie grupy funkcji do budowy aplikacji zawierających analizy eksploracyjne: ODM PL/SQLI, ODM Java API. 4. Transformacja danych w ODM Java API Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych Z menu głównego wybierz Data Transform ->Discretize. Wybierz tabelę z danymi uprzednio zaimportowanymi (CHURNERS po imporcie z pliku churners.csv), upewnij się, że zaznaczona jest opcja Single record per case. Kliknij przycisk Dalej. -6-
Podaj nazwę perspektywy CHURNER S_TRANSFORM. wynikowej oraz opis słowny perspektywy Upewnij się, że atrybut CUST_ID został zaznaczony jako unikalny (nie będzie brany pod uwagę w procesie eksploracji). Zwróć uwagę, że niektóre atrybuty typu NUMBER zostały zidentyfikowane jako atrybuty kategoryczne dotyczy to atrybutów o niewielkiej liczbie różnych wartości. Kliknij przycisk Dalej. -7-
Zaznacz atrybut CUST_MOS. Zwróć uwagę na rozpiętość wartości: minimalnej, średniej i maksymalnej. Sporządź histogram dla tej zmiennej. 4. Przeprowadź analizę uzyskanych wyników. Wygeneruj histogram dla zmiennej INCOME. Następnie przeprowadź transformacje zmiennej INCOME podział na 4 kwantyle. Kliknij przycisk Quantile Binning. Wybierz opcję Specify maximum number of bins i wpisz wartość 4. -8-
wartości Obejrzyj listę atrybutów kategorycznych, zwróć uwagę na ilość poszczególnych atrybutów. Zaznacz atrybut EDUC. Wygeneruj histogram dla tej zmiennej. Kliknij przycisk Top N. W pole Specify maximum number of bins wpisz wartość 3. Kliknij przycisk OK. W perspektywie wynikowej pozostaną 3 najczęściej pojawiających się nazwy, a wszystkie pozostałe zostaną umieszczone w zbiorczej kategorii Others. Rozwiń drzewo obiektów po lewej stronie ekranu i przejdź do Data Sources D MU S E R Views. Zaznacz perspektywę po transformacji. Zwróć uwagę na wartości w atrybutów INCOME i EDUC -9-
Kliknij na zakładkę View Lineage. Przeanalizuj kod perspektywy CHURNS_TRANSFORM realizującej poszczególne kroki dyskretyzacji. wynikowej Przeprowadź normalizację dla zmiennej MIN_3MO_AGO Z menu głównego wybierz Data Transform Normalize. - 10 -
5. Transformacja danych w ODM PL/SQL W ODM PL/SQL narzędzia do eksploracji danych umieszczono w trzech pakietach: 1. DBMS_DATA_MINING_TRANSFORM - procedury pomocnicze przygotowujące dane Pozwalają one na wstępne przetwarzanie danych za pomocą przycinania, dyskretyzacji, normalizacji, oraz uzupełniania wartości pustych. Oryginalne dane nigdy nie są zmodyfikowane, wszystkie zmiany są widoczne wyłącznie poprzez mechanizm perspektyw. Tworzona jest tabela służąca do transformacji (CREATE), następnie tabela ta jest wypełniana danymi stanowiącymi definicję transformacji (INSE RT), wreszcie tworzona jest perspektywa przedstawiająca dane po transformacji (XFORM). 2. DBMS_DATA_MINING - właściwa eksploracja danych W skład pakietu wchodzą metody umożliwiające: zarządzanie modelami (CREATE_MODEL, RENAME_MODEL, DROP_MODEL), wykorzystywanie modelu do nowych danych (APPLY, RANK_APPLY), odczytywanie informacji o modelu (GET_MODEL_DETAILS, GET_MODEL_SETTINGS, GET_MODEL_SIGNATURE), ocenianie jakości modelu (COMPUTE_CONFUSION_MATRIX, COMPUTE_LIFT, COMPUTE_ROC), eksportowanie i importowanie modelu (EXPORT_MODEL, IMPORT_MODEL). W przypadku wykorzystania interfejsu PL/SQL parametry wejściowe dla algorytmów umieszcza się w tabeli o określonej strukturze, nazwy parametrów są przekazywane jako zmienne pakietowe. 3. DBMS_PREDICTIVE_ANALYTICS użytkowników pakiet przeznaczony dla początkujących Umożliwia wykorzystanie klasyfikacji bez jakiejkolwiek znajomości technik eksploracji danych. Zawiera metody: EXPLAIN - służącą do oceny ważności atrybutów względem wybranego atrybutu docelowego, PREDICT - służącą do przewidywania wartości atrybutu na podstawie pozostałych atrybutów, przy założeniu, że w tabeli źródłowej istnieją wiersze z podaną wartością atrybutu docelowego, które zostaną potraktowane jako zbiór trenujący Oracle a umozliwia: Automatyczne przygotowanie danych Usunięcie przypadków nietypowych Normalizację Kodowanie atrybutów kategorycznych do numerycznych Wsparcie przez pakiet dbms_data_mining_transform Oracle Data Miner Pakiety PL/SQL działają w sposób synchroniczny. Jeśli wymagane jest synchroniczne budowanie lub testowanie modelu, należy wykorzystać pakiet DBMS_SCHEDULER. - 11 -
TRANSFORMACJA DEFINICJI TABELI TRANSFORMACJA DANYCH 1. tworzenie tabeli transformacji (CREATE) 2. wypełnianie tabeli danymi stanowiącymi definicję transformacji (INSERT), 3. tworzenie perspektywy przedstawiającej dane po transformacji (XFORM). C R E ATE_BIN_NUM, CREATE_BIN_CAT numerycznych, kategorycznych tworzenie tabel definicji atrybutów CREATE_NORM_LIN tworzenie tabeli definicji normalizacji. CREATE_CLIP tworzenie wycinka tablicy definicji. CREATE_MIS S_NUM, CREATE_MISS_CAT do tworzenia tabel definicji uzupełniania wartości brakujących atrybutów numerycznych i kategorycznych. Przykład: Tworzenie definicji tabeli transformacji dla atrybutów kategorycznych dbms_data_mining_transform.create_bin_cat ( bin_table_name => 'nb_sample_cat_boundary'); Wypełnianie tabeli danymi stanowiącymi definicję transformacji dbms_data_mining_transform.insert_bin_cat_freq ( bin_table_name => 'nb_sample_cat_boundary', -- tabela wynikowa data_table_name => 'MINING_DATA_BUILD', -- tabela żródłowa bin_num => 5, default_num => 0); Tworzenie perspektywy przedstawiającej dane po transformacji dbms_data_mining_transform.xform_bin_cat ( bin_table_name => 'nb_sample_cat_boundary', -- tabela wynikowa data_table_name => 'MINING_DATA_BUILD', -- tabela żródłowa xform_view_name => 'nb_sample_build_cat'); -- perspektywa wynikowa Zródła: http://wazniak.mimuw.edu.pl/index.php?title=preparation.plsql http://download.oracle.com/docs/cd/b19306_01/appdev.102/b14258/d_dmtran.htm - 12 -
6. Zadania 1. W środowisku Rapid Miner a wykonaj import pliku churn.txt. Zwróć uwagę na prawidłowy typ danych podczas importu. Ustal dla atrybutu id rolę id, a dla att22 rolę label. Przeprowadź transformację danych: dyskretyzacja atrybutów: account_length (szeregi rozdzielcze o równej długości)- discretize by binding, total_day_calls(kwantyle) discretize by frequency normalizacja atrybutu area_code - normalize eliminacja odstających wartości detect outliers Dane churn.txt 2. W środowisku ORACLE DATA MINER zaimportuj dane z pliku dmbase.csv do tabeli DMBASE. Podczas importu zmień typ atrybutów salary i logsalary, na numeryczny.. Sprawdź jakość danych, czy nie ma danych brakujących, błędnych. Utwórz perspektywę V_DMBASE zawierającą atrybuty: id, name, team, division, league, no_runs, no_hits, no_outs, no_errors, no_home, position, salary. Dane z perspektywy poddaj transformacji. Przeprowadź dyskretyzację atrybutu kategorycznego POSITION i TEAM, Wykonaj dyskretyzację atrybutu numerycznego NO_ERROR ( podzial na 3 przedziały o równej głębokości kwantyle) Wykonaj normalizację atrybutu numerycznego NO_HOME ( metoda: Z-score) Wykonaj eliminację 3% wartości atrybutu numerycznego NO_OUTS, wypełnij wyeliminowane dane wartością brzegową Wykonaj eliminację wartości atrybutu numerycznego SALARY, o wartości powyżej 1889, przypisz null Dane dmbase.csv - 13 -