Przygotowanie danych do eksperymentów z zakresu eksploracji danych Data mining Przygotowanie danych do eksperymentów z zakresu eksploracji danych Ewa Banaszek Seminarium Dyplomowe 2 15 grudnia 2006
Czym jest Data Mining? potrzeby biznesowe Duża ilość dostępnych danych Metody analityczne próbujące wydobyć wiedzę ukrytą w istniejących danych w sposób umożliwiający zastosowanie jej w procesach biznesowych Przeświadczenie, że wiedza ukryta jest w danych Nieefektywność metod tradycyjnych
Obszary zastosowań eksploracji danych Metody deskryptywne Wyszukiwanie asocjacji Analiza koszykowa Profilowanie klienta Wykrywanie nadużyć Klasteryzacja Segmentacja klientów Wzorce sekwencyjne Sekwencje DNA Metody predyktywne Klasyfikacja Wykrywanie nadużyć Ocena klienta Regresja Przewidywanie kursów giełdowych Wzorce sekwencyjne Przewidywanie zdarzeń w czasie Badania z zakresu eksploracji danych dotyczą obszarów bardzo wrażliwych, często o strategicznym znaczeniu dla biznesu
Warunki przeprowadzenia eksperymentu Zbiór danych Odpowiednio liczny (200tys..? 2mln..?) Opisujący spójny fragment rzeczywistości Odpowiedni poziom agregacji Format danych Ujednolicony Pasujący do używanych algorytmów Ochrona danych Prawne wymagania ochrony danych osobowych Ochrona danych wrażliwych dla biznesu
Zakres eksperymentu Region => szkoda? Region => umowa? Typ klienta => szkoda? Typ klienta => umowa? Agent => szkoda?
Źródło danych Systemy transakcyjne Warstwa ETL Hurtownia danych Dane jednostkowe, niezagregowane Rozproszone po różnych tabelach / systemach Niespójna reprezentacja (różne jednostki, formatownie) Trudny eksport (złożone zapytania) Warstwa ETL Dane niezagregowane / niskoagregowane Ujednolicona reprezentacja W wielu relacjach ale jednym systemie Hurtownia danych Wysoki poziom agregacji danych Ujednolicona reprezentacja i struktura
Wybieranie danych [1]
Wybieranie danych [2] 25 : 1 1849631 74596 Złożoność obliczeniowa działanie na dużych zbiorach danych duża złożoność obliczeniowa algorytmów data miningowych mniejszy zbiór danych => ogromne oszczędności czasu wykonania SELECT p.suma_ubezp FROM owu o LEFT JOIN umowy u ON o.id_owu = u.id_owu LEFT JOIN przedmioty p ON u.id_umowy = p.id_umowy WHERE o.opis NOT LIKE ‘OC %’; 1849631 25 : 1 SELECT DISTINCT p.suma_ubezp FROM owu o LEFT JOIN umowy u ON o.id_owu = u.id_owu LEFT JOIN przedmioty p ON u.id_umowy = p.id_umowy WHERE o.opis NOT LIKE ‘OC %’; 74596
Czyszczenie danych Źródła zanieczyszczeń danych: Kryteria filtrowania Zewnętrzne wymagania co do wartości atrybutów (stała kwota OC) Różnice w semantyce i reprezentacji danych między systemami Błędy operatorów systemu Błędy przy migracjach Kryteria filtrowania Dane niewiarygodne (błędna data ‘1111-11-11’ => błędna kwota) Dane spoza zakresu realnie dopuszczalnych wartości (suma ubezpieczenia > budżetu PL) Dane niepoprawne formalnie (33,33333zł) Dane wykorzystujące pełen rozmiar kolumn w tabeli Dane będące przedmiotem wymagań zewnętrznych Dane niespójne
Planowane algorytmy GSP Apriori Wyszukiwanie związków częstych i reguł asocjacyjnych tzw. ‘analiza koszykowa’ profilowanie klientów Operuje na pojedynczych transakcjach jednolita postać atrybutów różna liczba atrybutów brak wyróżnionych wymiarów Parametry: minimalne wsparcie minimalne zaufanie Wszystkie reguły, bez względu na to czy są ciekawe GSP Wyszukiwanie uogólnionych wzorców sekwencyjnych Analiza zachowań w czasie Działa na sekwencjach złożonych z transakcji klientów różna ilość transakcji w sekwencji różna długość transakcji wyróżnione wymiary: klient i czas (pozostałe atrybuty jednolite) Parametry: minimalne wsparcie minimalne zaufanie minimalny i maksymalny odstęp między elementu sekwencji maksymalny czas trwania elementu sekwencji
Reprezentacja danych Niejednorodna struktura transakcji i sekwencji Wybór sposobu reprezentacji danych rzutuje na wydajność algorytmu Reprezentacja napisowa ‘atrybut:wartość’ Reprezentacja polimorficzna z wykorzystaniem własności programowania OO Mapowanie wartości do kodów typu podstawowego
Dyskretyzacja danych [1] NBC: Neighbourhood-Based Clustering Algorithm Zhou, Zhao, Guan i Huang – 2005 Algorytm klasteryzacji danych: Podział przestrzeni danych na komórki Parametr k określający oczekiwaną liczbę punktów w komórce Liczba komórek > n / k Jeden klaster: ta sama komórka lub sąsiednia warstwa przestrzeni danych Implementacja algorytmu: Rozszerzenie z 2 do N wymiarów Wymiary dowolnych typów Własny algorytm podziału przestrzeni danych X
Dyskretyzacja danych [2] Rozkład wystąpień sum ubezpieczenia (GnuPlot)
Zamiana reprezentacji Spójna => mapowanie jednolite dla całego badanego zbioru danych Odwracalna => konieczne zachowanie mapowania Możliwe tryby: Eksport z przemapowaniem całego zbioru danych Jednorazowo => spójnie Wymaga dodatkowego miejsca na składowanie danych Mapowanie poszczególnych eksportów danych Mniejsze partie => szybciej Trudno o spójność między poszczególnymi eksportami Każda zmiana modelu wymaga nowego eksportu
Dane osobowe Ustawa z dn. 29 sierpnia 1997 r. o ochronie danych osobowych (Dz. U. z 1997 r., Nr 133, poz. 883 z późn. zm.) Dane osobowe: dowolny zestaw informacji pozwalający na wskazanie konkretnej osoby Przetwarzanie m.in. w prawnie usprawiedliwionym celu w szczególności: marketing bezpośredni własnych produktów lub usług Ochrona danych w eksperymencie: Wybór danych pozbawionych cech osobowych: Tylko id klienta Tylko dane o umowach (bez klienta) Szyfrowanie danych Zamiana id klienta na inne Wyniki: zestawienie zbiorcze - nie zawierają danych poszczególnych klientów
Ochrona interesu biznesowego Dane: Dane klientów i agentów Pozwalające na ocenę sytuacji finansowej organizacji Charakterystyka klientów Przegląd trendów i strategii marketingowych Wgląd w słabe punkty działania organizacji Ochrona: Przetwarzanie zaszyfrowanych danych Unikanie eksportów danych poza środowisko klienta Praca na minimalnym zestawie danych Wyniki: równie wrażliwe jak dane
Badania cross-company ”Privacy-preserving Distributed Mining of Association Rules on Horizontally Partitioned Data” Murat Kantarcioglu, Chris Clifton IEEE 2003 Dane jednej organizacji tylko wycinkiem Specyficzna grupa klientów Specyficzna oferta Specyficzny region Badania ogólne b.trudne do przeprowadzenia Interes poszczególnych organizacji Ograniczenia wydajnościowe Semi-confident model Założenie: Dane są podzielone na N homogenicznych podzbiorów między którymi nie może następować wymiana danych Lemat: Jeśli reguła ogólna ma wsparcie > minConf, przynajmniej w jednym z podzbiorów musi mieć wsparcie > minConf Confident model Założenie 1: Dane są podzielone na N homogenicznych podzbiorów między którymi nie może następować wymiana danych Założenie 2: Nie można ujawniać wartości wsparć i wielkości poszczególnych podzbiorów Lemat: Jeśli reguła ogólna ma wsparcie > minConf, przynajmniej w jednym z podzbiorów musi mieć wsparcie > minConf
Eksperymenty bez przygotowania Oracle Data Mining Opcjonalny pakiet Oracle Database 10g Enterprise Edition Bezpośrednio na relacyjnej bazie danych Dostępne API: Java oraz PL/SQL -- Build a new AR model BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'AR_SH_sample', mining_function => DBMS_DATA_MINING.ASSOCIATION, data_table_name => 'sales_trans_cust_ar', case_id_column_name => 'cust_id', settings_table_name => 'ar_sh_sample_settings'); END; / -- DISPLAY TOP-10 FREQUENT ITEMSETS break on itemset_id skip 1; column item format a40 SELECT item, support, number_of_items FROM ( SELECT I.column_value AS item, F.support, F.number_of_items FROM TABLE( DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS(‘AR_SH_sample’,10))F, TABLE(F.items) I ORDER BY number_of_items, support,column_value);
Pytania..?