Nasi Klienci












Data mining w praktyce - Wprowadzenie w tematykę
Mikołaj Janicki
Dominik Ślęzak
Czym jest KDD?
KDD to skrót pochodzący od terminu "Knowledge Discovery in Databases" - dziedziny informatyki zajmującej się rozwijaniem algorytmicznych narzędzi służących do odkrywania wiedzy z danych. Motywację dla rozpatrywania tego typu narzędzi stanowi ciągły wzrost technicznych możliwości gromadzenia i analizy danych, w których ukryte są potencjalnie cenne informacje dopełniające wiedzę ludzką. W wielu sytuacjach, stosowanie procesu KDD jest wręcz koniecznością, wynikającą chociażby z dramatycznie szybkiego przyrostu danych.
Zastosowania KDD zdobywają sobie uznanie szczególnie w stosunkowo nowych dziedzinach, gdzie tak zwana wiedza ekspercka jest jeszcze w dużej mierze niepełna i nieugruntowana. Do dziedzin takich można przykładowo zaliczyć:
- Eksplorację danych o ruchu internetowym.
- E-marketing.
- Automatyczną akwizycję danych multimedialnych.
- Rozpoznawanie obrazu, pisma, mowy, itd.
- Wspomaganie diagnostyki medycznej.
- Badania genetyczne.
- Analizę historii operacji bankowych.
- Projektowanie hurtowni danych.
- Optymalizacja działań związanych z systemami CRM.
Warto przy tym zauważyć, że natura powyższych zastosowań wymaga operacji na bardzo dużych danych, o różnorodnej nieraz strukturze. Uniemożliwia to zazwyczaj wykorzystanie tych konwencjonalnych metod analizy danych, które nie działają wystarczająco efektywnie w przypadku dużych baz danych o niejednolitym formacie.
Opis procesu KDD
Narzędzia KDD rozwijają się bardzo dynamicznie, choć - jak to często bywa w przypadku nowo powstałych dziedzin informatyki - nie wszyscy rozumieją pod tym hasłem dokładnie to samo. Poniżej przedstawiamy możliwie pełny opis przebiegu procesu odkrywania wiedzy z danych:
Zrozumienie dziedziny problemu
Złożoność natury danych, a także problemów stawianych przy okazji ich analizy, coraz częściej nie pozwala na natychmiastowe sformułowanie pytań, na które użytkownik chce uzyskać odpowiedź. Na przykład analizując dane o zachowaniu internautów w sieci należy ustalić, jakimi informacjami dysponujemy oraz czego chcielibyśmy się o nich dowiedzieć. Często ostateczny cel tego typu analizy krystalizuje się dopiero podczas pracy z danymi. Jego określenie dokonuje się zatem w trakcie interaktywnego procesu, w którym mamy stałą możliwość uwzględniania wiedzy oraz preferencji użytkownika.
Budowa roboczego zbioru danych
Koncentrując się choćby na przykładzie danych internetowych zauważmy, że mogą być one gromadzone na bieżąco w postaci opisów tak zwanych sesji odbytych przez poszczególnych internautów. Dziedzina problemu może przy tym wymagać włączenia do analizy informacji o samych internautach (które nie zawsze są w pełni dostępne), a także o odwiedzanych przez nich stronach. W przypadku działalności e-marketingowej, mogą jeszcze dojść dane o wynikach kampanii reklamowych, itd. Dobór źródeł danych zależy oczywiście od pytań, które użytkownik formułuje. Widać przy tym, że różnorodność zasobów informacji nie zawsze pozwala na natychmiastową specyfikację odpowiednich jej źródeł.
Oczyszczenie i przygotowanie danych
Na omawianym przykładzie widać, że wszelka dalsza analiza musi być poprzedzona selekcją tych danych, które wydają się w ustalonym rozumieniu adekwatne. Wybrane źródła muszą być zapisane w postaci w miarę zunifikowanego formatu, umożliwiającego pracę algorytmom przeszukującym dane pod kątem wykrywania interesujących zależności czy regularności.
Przekształcanie i redukcja danych
Nawet na etapie selekcji i przygotowania danych do dalszej analizy nie jesteśmy w stanie ostatecznie wyszczególnić tych składowych ich opisu, które okażą się najbardziej przydatne w rozwiązaniu postawionego uprzednio problemu. Warto też pamiętać, że - przykładowo - informacje o każdym internaucie można zapisywać za pomocą bardzo wielu różnych cech, z których nie wszystkie okażą się być przydatne dla użytkownika, jako zapis wiedzy stosowalnej w praktyce.
Eksploracja danych (data mining)
W ten sposób dochodzimy do danych zapisanych, w miarę możliwości, w formie tablicy, której wiersze odpowiadają obiektom (pacjentom, internautom, łańcuchom DNA, zapisom dźwiękowym), zaś kolumny - opisującym je cechom. Eksploracja danych to algorytmiczne wykrywanie zależności pomiędzy wartościami tych cech, które może być realizowane przy użyciu bardzo różnorodnych technik, opartych na statystyce, sztucznej inteligencji, czy też odwołujących się do metod uczenia maszynowego. Rozpatrzmy dwa przykłady:
- Załóżmy, że naszym zadaniem jest stworzenie klasyfikatora, który - otrzymawszy na wejściu informacje o dotychczasowym zachowaniu internauty - podaje każdorazowo na wyjściu banner reklamowy, który może go najbardziej zainteresować. Jest to problem zaprojektowania tak zwanej "czarnej skrzynki", której jedynym celem jest poprawne rozpoznawanie i klasyfikacja nowo badanych obiektów. Tak rozumiany klasyfikator można uzyskać stosując regresję liniową, sieci neuronowe, czy klastering...
- Jeśli celem naszym jest przy okazji zrozumiały opis profilów internautów interesujących się poszczególnymi "koszykami reklamowymi", skrzynka klasyfikacyjna nie może być "czarna", lecz przedstawiona jasno, w postaci drzewa decyzyjnego, bądź zbioru reguł asocjacyjnych. Trzeba przy tym pamiętać o weryfikacji otrzymanych wyników pod kątem "marketingowej poprawności" - Metody wspomniane w poprzednim punkcie lubią bowiem prowadzić do zależności typu:
Jeśli
czas trwania sesji jest dwa razy większy od estymowanego wieku internauty
to
nie kupuje on do piwa orzeszków
które mogą rewelacyjnie sprawdzać się na danych, ale są raczej słabo intuicyjne z punktu widzenia użytkownika. Konieczne jest tu zatem zastosowanie podejść bardziej wyrafinowanych, korzystających z głębszej informacji o naturze danych.
Interpretacja znalezionych zależności - koniec czy początek procesu?
W zasadzie jest to już etap, w którym główną rolę przejmuje sam klient, który po dodatkowych konsultacjach ze sztabem analityków decyduje o przydatności otrzymanych wyników do realizacji zakładanych na samym początku celów. Często okazuje się jednak, że nie jest to wcale koniec projektu. Ewentualne sugestie, czy krytyczne uwagi osób zlecających analizę mogą bowiem prowadzić do konieczności powtórzenia nawet całego opisanego procesu KDD, po uwzględnieniu odpowiednich modyfikacji. Warto przy tym podkreślić, iż zjawiska tego nie należy odbierać negatywnie. Złożoność współczesnych zadań analitycznych, a także różnorodność danych, których eksploracja wydaje się rokować nadzieje na ich realizację, przekracza po prostu możliwości ludzkiej percepcji.
Data Warehousing + OLAP = KDD?
Można zauważyć, że przynajmniej część opisanych etapów odkrywania wiedzy z danych przypomina w swoim sformułowaniu zadania kryjące się pod takimi terminami jak Data Warehousing, czy OLAP. Faktycznie, są to pojęcia odpowiadające technikom obróbki danych, niezbędnym do realizacji procesu KDD. Błędem jest jednak przekonanie, że narzędzia kryjące się pod tymi nazwami pozwalają na wydobycie z dostępnych zasobów wszystkich informacji mogących zainteresować użytkownika.
Data Warehousing
Jest to określenie na proces tworzenia tak zwanych hurtowni danych - zbiorów danych historycznych, projektowanych celem archiwizacji w ustandaryzowanej oraz odpowiednio oczyszczonej formie oryginalnych danych, gromadzonych w postaci wielu powiązanych ze sobą, rozproszonych geograficznie, baz.
Proces ten jest kosztowny i skomplikowany ze względu na różnice w formacie danych, gromadzonych często w autonomicznych systemach komputerowych, w ciągu wielu lat. Z drugiej strony, korzystanie z hurtowni znacznie upraszcza dalszą analizę. W szczególności, pierwsze etapy procesu KDD stają się znacznie łatwiejsze w momencie, gdy oczyszczenie i przygotowanie danych można oprzeć na istniejącej już hurtowni. Jednakże bardzo często okazuje się, że postawione zadanie wymaga jej modyfikacji, poprzez dołączenie nowych zasobów danych.
W istocie, jednym z zastosowań KDD jest wspieranie perspektywicznego projektowania hurtowni danych, polegające na wychwytywaniu tych elementów oryginalnych danych, które wystarczą za podstawę przeprowadzania w przyszłości wszelkich prac analitycznych, w obrębie danej instytucji.
OLAP (On-line Analytical Processing)
Hurtownia danych stanowi podstawę aktywnego i efektywnego korzystania z dostępnych zasobów celem wyciągania interesujących z analitycznego punktu widzenia informacji. Oczywiście wciąż możliwa jest dalsza optymalizacja postaci, w jakiej informacja ta będzie osiągalna z zewnątrz. Przez OLAP rozumie się technologię pozwalającą na stworzenie wygodnego i przejrzystego interfejsu informacyjnego pośredniczącego w pracy z hurtownią danych.
Przykładowo, załóżmy, że dla analityków danej firmy niezbędne jest szybkie testowanie prostych hipotez typu "co by było, gdyby", np.
Jak zachowa się sprzedaż benzyny jeżeli zwiększając jej cenę o 0.5 procent zmniejszymy
dwukrotnie liczbę punktów lojalnościowych potrzebnych do wygrania odkurzacza?
Załóżmy ponadto, że w istniejącej hurtowni znajdują się dane dotyczące sprzedaży benzyny oraz cen poszczególnych stacjach, a także historii korzystania klientów ze swoich kart lojalnościowych. Zauważmy, że wydobycie odpowiedzi na powyższe pytanie z takich danych nie jest rzeczą łatwą, chyba że stworzymy strukturę przechowującą statystyczne informacje o zależnościach pomiędzy interesującymi nas czynnikami w czasie.
Oczywiście odpowiednie zaprojektowanie takiej struktury - tak zwanego OLAP-serwera -jest bardzo trudne i pracochłonne. Co więcej, zdefiniowanie parametrów OLAP-serwera wymaga wiedzy, która nie zawsze jest wystarczająco pełna (trudno jest przecież uwzględnić wszystkie potrzeby analityków dużego przedsiębiorstwa i wymyślić od ręki ich reprezentację w formie cech niezbędnych do przechowywania).
Z punktu widzenia KDD, istniejący OLAP-serwer może znacznie przyspieszyć eksplorację danych. Informacje dotyczące bezpośrednio wartości istotnych dla użytkownika, pozwalają bowiem skoncentrować się na samym procesie wydobywania regularności, w języku opisanych już przez OLAP cech. Jednakże samo nałożenie na dane takiej nowej struktury nie jest równoznaczne z otrzymaniem nowej jakościowo wiedzy. Użytkownik wciąż nie będzie miał możliwości uzyskania odpowiedzi na pytania typu, na przykład:
Co, kiedy i dlaczego należy zrobić, aby zachować możliwie jak największą
sprzedaż benzyny w perspektywie zwiększenia jej ceny o 0.5 procent?
Eksploracja danych - istota procesu KDD
Eksploracja danych (data mining) rozumiana jest jako proces wykrywania w danych interesujących dla użytkownika "regularności". To właśnie one niosą w sobie informacje o tym, które cechy są tak naprawdę istotne i powinny służyć do budowania np. OLAP-serwera. Otrzymana w ich formie wiedza jest czymś istotnie nowym. Stanowi klucz do oceny jakości całego procesu KDD. Może też być źródłem sugestii dotyczących modyfikacji etapów poprzednich.
Problem leży w tym, że takich regularności jest w danych praktycznie "nieskończenie wiele", zaś dla użytkownika interesujące będą tylko niektóre z nich i to w różnyn stopniu. Nie można też idealnie zdefiniować, co kryje się pod określeniem "interesujące". Dobre regularności mogą być uważane za:
- Występujące również w nowych danych
- Spełniające narzucone warunki i preferencje użytkownika
- Wcześniej nieznane, acz intuicyjne dla ekspertów
- Zrozumiałe i przejrzyste
- Przekładalne na wiedzę praktyczną
