Paweł Cichosz
Date: Semestr zimowy 1997/98
Termin data mining ostatnio pojawia się coraz częściej nie tylko w publikacjach naukowych, lecz także w marketingowych materiałach różnych firm oferujących oprogramowanie i usługi w dziedzinie analizy danych. W praktyce dokładne znaczenie wiązane z tym terminem bywa różne, ponieważ wyraźnie opłaca się go używać, nawet jeśli jest to tylko w niewielkim stopniu uzasadnione. Funkcjonuje również inny termin, knowledge discovery in databases. Niektórzy rozróżniają znaczenie tych dwóch terminów, a zwłaszcza ich zakresy znaczeniowe: jeden z nich jest szerszy, chociaż trudno bez dokładnych studiów powiedzieć który. My przyjmiemy tutaj, że w obu przypadkach mowa jest o odkrywaniu zależności występujących w dużych zbiorach danych, zazwyczaj przechowywanych w bazach danych (obecnie najczęściej relacyjnych).
W przypadku relacyjnych baz danych można przyjąć, że zależności poszukuje się w tabeli zawierającej wiele rekordów, z których każdy stanowi zestaw wartości pewnej liczby atrybutów o różnych typach. Zależności można uznać za interesujące, jeśli dotyczą atrybutów ważnych dla posiadacza danych. Są one natomiast użyteczne, jeśli charakteryzują się:
Odkrywanie wiedzy w bazach danych pozostaje w bardzo bliskim związku z uczeniem się maszyn. Ogólnie można przyjąć, że metody data mining są oparte przede wszystkim na statystycznych metodach analizy danych oraz na metodach uczenia się na podstawie przykładów. Te ostatnie zresztą, jak kilkakrotnie widzieliśmy, same odwołują się czasem do narzędzi ze statystyki.
Statystyczne metody analizy danych są w większości znane od wielu lat i stosowane z powodzeniem do rozwiązywania wielu praktycznych problemów w różnych obszarach zastosowań, lecz używane w tradycyjny sposób napotykają na pewne ograniczenia. W uproszczeniu, pozwalają one na wykrywanie korelacji między różnymi zjawiskami (np. wartościami różnych atrybutów w bazie danych), wykrywanie występujących trendów, dopasowywanie równania do zbioru punktów pomiarowych, wykrywanie skupień itd., ale nie generują wyjaśnień tych zależności i ich opisów w abstrakcyjnej, symbolicznej postaci, użytecznej do wyciągania wniosków. Aby odkrywane za pomocą analizy statystycznej zależności były w pełni użyteczne, konieczny jest najczęściej daleko idący udział doświadczonego użytkownika przy ich stosowaniu i interpretacji. Można natomiast powiedzieć, że większość metod uczenia się ma na celu odkrycie (nauczenie się) zależności w sposób maksymalnie zautomatyzowany i utworzenie ich opisu, który jest łatwy do interpretacji i pozwala na wnioskowanie.
O omawianych przez nas dotychczas algorytmach indukcyjnego uczenia się na podstawie przykładów (np. ID3, AQ, CN2, COBWEB itd.) można powiedzieć nie popełniając żadnego nadużycia, że są metodami odkrywania zależności w bazach danych. Jednak stosując którykolwiek z tych algorytmów do odkrywania wiedzy w bazach danych zakładamy natychmiast, że zbiór trenujący jest bardzo duży: liczba rekordów liczona jest na ogół w tysiącach albo milionach. O ile algorytmy te nie mogą uczyć się użytecznej wiedzy przy zbyt małej ilości danych, duża ilość danych stwarza inne problemy.
Koszt obliczeniowy wszystkich metod zależy oczywiście od ilości danych, na których operują, i w niektórych przypadkach może okazać się trudny do akceptacji. Wówczas można wziąć pod uwagę przeprowadzenie redukcji rozmiaru dostępnego zbioru danych. Należy to oczywiście uczynić w sposób, który z dużym prawdopodobieństwem pozostawi w zredukowanych danych interesujące i użyteczne zależności występujące w oryginalnym zbiorze danych. Redukcja taka może mieć postać
Inny problem wiąże się z tym, że w przypadku bardzo dużej ilości przykładów może być niemożliwe znalezienie hipotezy, która przy dostatecznie dużej dokładności byłaby na tyle prosta, aby jej interpretacja przez człowieka prowadziła do interesujących wniosków. Lepszym pomysłem może być poszukiwanie hipotez o ograniczonym zakresie -- zachodzących dla wyznaczonych w systematyczny sposób fragmentów bazy danych.
Z całą pewnością algorytmy stosowane do odkrywania wiedzy w bazach danych muszą sobie radzić z ich zaszumieniem i niekompletością. W pierwszym przypadku oznacza to stosowanie różnych technik zapobiegających nadmiernemu dopasowaniu do przypadkowych (nieistotnych) danych, a w drugim np. wypełnianie w odpowiedni sposób nieznanych wartości atrybutów.
Przy uwzględnieniu wszystkich tych praktycznie istotnych problemów do odkrywania zależności w bazach danych mogą być i są rzeczywiście stosowane metody uczenia się już przez nas poznane. W ramach tego wykładu krótko omówimy dwie inne metody dokonywania odkryć:
Tablice kontyngencji są znaną ze statystyki metodą prezentacji
zależności występujących pomiędzy wartościami dwóch (w podstawowym
przypadku) zmiennych losowych, którymi przy dokonywaniu odkryć są
atrybuty. W przypadku dwóch atrybutów
i
o niewielkiej
liczbie wartości dyskretnych tablica kontyngencji ma wiersze
odpowiadające wszystkim wartościom atrybutu
(ze zbioru
) i
kolumny odpowiadające wszystkim wartościom atrybutu
(ze
zbioru
). Element tablicy na przecięciu wiersza odpowiadającego
wartości
i kolumny odpowiadającej wartości
jest liczbą przykładów (rekordów w rozpatrywanej tabeli), dla których
ma wartość
i
ma wartość
.
W przypadku atrybutów ciągłych ich wartości są dyskretyzowane. W
najprostszym przypadku, gdy dla obu atrybutów dyskretyzacja dzieli
zakres wartości na dwa przedziały (małe i duże wartości), tablica
kontyngencji jest czteroelementową tablicą
. Dla atrybutów
dyskretnych o dużej liczbie wartości wstępnie przeprowadza się na ogół
agregację tych wartości (rodzaj konstruktywnej indukcji).
Znanym systemem odkrywania zależności w danych wykorzystującym tablice kontyngencji jest FortyNiner (49er) Żytkowa i Zembowicza, na którym luźno oparta jest poniższa dyskusja.
O występowaniu wzorców w tablicach kontyngencji mówi się, jeśli
obserwowany w niej rozkład wartości atrybutów wskazuje na występującą
między nimi zależność. Siła wzorca jest tym większa, im mniej rozkład
ten przypomina przypadkowy. Do weryfikowania istnienia zależności i
mierzenia ich siły mogą być wykorzystane różne testy statystyczne, w
najprostszym przypadku statystyka
.
Niech w tablicy kontyngencji dla atrybutów
i
symbol
oznacza liczbę na pozycji odpowiadającej wartości
atrybutu
i wartości
atrybutu
. Z kolei przez
oznaczymy oczekiwaną liczbę przykładów (rekordów) o
wartości
atrybutu
i wartości
atrybutu
przy
założeniu niezależności tych dwóch atrybutów. Można oszacować:
![]() |
||
![]() |
||
![]() |
Na podstawie istotnych statystycznie wzorców w tablicach kontyngencji można prowadzić wnioskowanie, a więc tablica taka jest formą reprezentaci użytecznej wiedzy. W szczególności, na podstawie znajomości wartości jednego atrybutu można oszacować rozkład prawdopodobieństwa wartości drugiego atrybutu. W niektórych przypadkach bardzo silnych wzorców tablice można przekształcać do postaci reguł.
Trudno na ogół oczekiwać, aby istotne zależności zachodziły dla całej, często bardzo dużej bazy danych. W związku z tym metody odkrywania zależności tego typu łączą analizę statystyczną tablic kontyngencji z pewnymi strategiami wybierania dekompozycji bazy danych na fragmenty, w których mogą występować istotne wzorce. Dekompozycja taka polegać może na:
Naszkicowany proces ma charakter przeszukiwania przestrzeni możliwych tablic kontyngencji dla danego początkowo zbioru rekordów i atrybutów w poszukiwaniu takich, dla których występują dostatecznie istotne wzorce. W przypadku systemu 49er jest to wyczerpujące przeszukiwanie w głąb, które w można opisać jak w tablicy 1. Jest to przybliżona i silnie uproszczona rekonstrukcja algorytmu zaproponowanego przez twórców systemu, którzy opisali go w sposób dość umiarkowanie precyzyjny. Przedstawiony tu algorytm zakłada, że wstępnie za pomocą jakiejś formy konstruktywnej indukcji dokonano dyskretyzacji lub agregacji wartości atrybutów tam, gdzie było to konieczne.
Argumentem procedury
jest zbiór przykładów
(rekordów)
oraz zbiór atrybutów
, które są uwzględniane. Jest
on podzbiorem całego zbioru atrybutów
, za pomocą których
opisywane są rekordy w danej początkowo tabeli. Trzecim argumentem
jest zbiór warunków (zakresów) dla wartości atrybutów ze zbioru
. Przyjmujemy, że z danej początkowo tabeli wybierane są
tylko rekordy spełniające wszystkie warunki z
i następnie
rzutowane na zbiór atrybutów
(tzn. pomijane są wartości
pozostałych atrybutów), co daje w wyniku zbiór
, dla którego
tworzona jest tablica kontyngencji. Przyjmujemy też, że dla atrybutu
i pewnej jego wartości
zbiór
jest wynikiem
zastosowania do
selekcji (z warunkiem
) i następnie
rzutowania na
. Przy znalezieniu na dowolnym poziomie
przeszukiwania zadowalającego wzorca jest on zapamiętywany wraz z
atrybutami, których dotyczy, oraz warunkami (zakresami) dla wartości
pozostałych atrybutów. Przy pierwszym wywołaniu procedury mamy
oczywiście
(cały zbiór rekordów w tabeli) i
(zbiór wszystkich atrybutów) oraz
.
W praktyce proces poszukiwania wzorców jest często wspomagany przez użytkownika, który może określić interesujące go atrybuty, dla których mają być znalezione wzorce, lub atrybuty, według których ma następować podział zbioru danych na podzbiory przy schodzeniu w głąb drzewa przeszukiwania.
W przypadku atrybutów o wartościach ciągłych można podjąć próbę opisania zależności między nimi za pomocą równania. Tego typu zależność, o ile uda się ją znaleźć, jest na ogół bardzo interesująca i przydatna. Równania o odpowiednio dużym zakresie stosowalności i dużej dokładności mają znakomitą wartość predykcyjną i są stosunkowo łatwe do interpretacji. Ten rodzaj odkryć określa się niekiedy jako odkrycia naukowe (scientific discovery), traktując równania jako poszukiwane prawa opisujące dane empiryczne.
Podobnie jak w przypadku wzorców w tablicach kontyngencji, często użyteczne równania zachodzą tylko dla fragmentów bazy danych. Omawiane dalej metody odkrywania równań stosowane są więc często w ramach ogólnego schematu kolejnych dekompozycji zbioru danych podobnego do przedstawionego wcześniej algorytmu poszukiwania wzorców. Uruchomienie jednej z tych metod poprzedzane jest testem statystycznym mającym określić, czy prawdopodobne jest istnienie zależności funkcyjnej.
Mówiąc o równaniach odchodzimy od naszej zwyczajowej notacji i
terminologii i nazywamy atrybuty zmiennymi oraz oznaczamy je przez
litery
,
, itd. Poniżej przedstawiamy kilka metod odkrywania
równań wykorzystywanych w różnych wersjach znanego systemu odkryć
naukowych BACON.
Najprostszy rodzaj praw, jakich odkrywanie moglibyśmy chcieć
zautomatyzować, to funkcyjna zależność dwóch numerycznych zmiennych.
Mając zbiór pochodzących z obserwacji (pomiarów) par wartości
, chcemy znaleźć funkcję
taką, że
opisuje
te dane maksymalnie dokładnie. Istniejące metody analityczne
rozwiązywania tego problemu (regresja) zakładają pewne szczególne
proste postaci funkcji
(np. funkcja liniowa). Poniżej omawiamy
kilka heurystyk, które mogą być wykorzystane do znajdowania tego typu
prostych zależności dla szerszego spektrum funkcji
.
Jedną z najprostszych heurystyk jest wykrywanie trendów i stałych. Jest to właściwie zestaw czterech następujących heurystycznych reguł:
Przedstawione heurystyki są niezwykle proste, chociaż pozwalają na
odkrycie w efektywny sposób nietrywialnych praw (np. trzeciego prawa
Kepplera). Ich ograniczeniem jest to, że nie pozwalają na odkrycie
związków wielomianowych stopnia
lub wyższych (np. tak prostego
związku jak
). Nie przewidują one również mechanizmów
działania przy zaszumionych danych.
Bardziej zaawansowaną heurystyką jest znajdowanie stałych pochodnych.
Technika ta umożliwia znajdowanie dowolnych wielomianowych zależności
pomiędzy parą zmiennych przeszukując w pewien sposób przestrzeń
funkcji wielomianowych. Przeszukiwanie to rozpoczyna się od rozważenia
możliwych składników o najwyższym stopniu, przez kolejno sprawdzanie
składników stałych, liniowych, kwadratowych itd. Obliczane są (metodą
różnicową) kolejno odpowiadające im pochodne (zerowego, pierwszego,
drugiego rzędu itd.) dopóki nie uzyska się w wyniku stałej wartości
pochodnej na dostępnym zbiorze danych. Rząd tej stałej pochodnej i jej
wartość dają informację odpowiednio o stopniu i współczynniku
najwyższego stopniem wyrazu wielomianu. Wówczas, wprowadzając nową
zmienną zależną, ponawia się cały proces w poszukiwaniu wyrazu o
niższym stopniu, itd. Ściślej mówiąc, zamiast pochodnej stopnia
oblicza się jej wartość podzieloną przez
. Dokładniej opisuje to
algorytm podany w tablicy 2. Jego pierwsze dwa
argumenty to odpowiednio zmienna zależna i niezależna. Trzeci argument
to zbiór danych (wartości zmiennych), w którym odbywa się
poszukiwanie. Przyjmujemy, że zbiór ten zawiera początkowo pewną
liczbę wartości
zmiennej niezależnej
i odpowiadających im
wartości
zmiennej zależnej
.
Prosta modyfikacja opisanej metody pozwala na znaczne rozszerzenie
klasy funkcji branych pod uwagę przez system. Oprócz analizowania
możliwych wielomianowych związków pomiędzy
i
, system może
poszukiwać takich związków między
i
,
i
itd., a
także np.
i
lub
i
.
Przedstawiona technika może zostać też zmodyfikowana w celu dopuszczenia zaszumionych danych przez rozluźnienie wymagania, aby pochodne były stałe (zastąpienie go wymaganiem, aby były prawie stałe), np. przez wprowadzenie wielkości maksymalnego błędu względnego i bezwzględnego danych jako parametrów systemu.
Rozważmy zależność
. Tablica 3
przedstawia przykładowe dane zgodne z tym prawem wraz z wartościami
pierwszej i drugiej pochodnej
(obliczonymi metodą różnicową).
Jak widać, (połowy) wartości drugiej pochodnej są stałe i równe
,
co pozwala systemowi wywnioskować, że funkcja wiążąca
i
zawiera składnik
ze współczynnikiem
. Wiedząc to, system może
powtórzyć powyższą procedurę zastępując
przez nową zmienną równą
, itd.
W poprzednich podejściach system dokonujący odkryć stara się
określić wyrażenia opisujące związki pomiędzy obserwowanymi
zmiennymi wyłącznie na podstawie dostępnych danych. Jeśli dane te
są obarczone nawet niewielkim błędem, może to doprowadzić do
poważnych problemów. Alternatywne podejście polega na dostarczeniu
systemowi przez użytkownika szablonów praw, które należy wziąć
pod uwagę. Przykładowo, system może otrzymać wskazówkę, aby
poszukiwać związków postaci
oraz
.
W oparciu o dostarczone mu szablony (standardowy zestaw szablonów
może być wbudowany do systemu) system rozpoczyna poszukiwanie
wartości parametrów tych szablonów, dla których uzyskuje się
związki najlepiej opisujące dane. Poszukiwanie to rozpoczyna się
od skonkretyzowania szablonów przez przypisanie ich parametrom
różnych kombinacji wartości
, 0 i
. W ten sposób
generuje się pewną liczbę stanów początkowych, z których każdy
odpowiada pewnej konkretyzacji szablonu. Proces przeszukiwania opisuje
szkicowy algorytm podany w tabeli 4.
Metoda ta jest stosunkowo odporna na błędy danych, ponieważ używa ich do testowania hipotez, a nie do ich generowania.
Dotychczas omawiane były metody znajdowanania praw opisujących związki zachodzące pomiędzy wartościami dwóch zmienych. Związki łączące większą liczbę zmiennych powodują szereg dodatkowych komplikacji i w związku z tym wymagają innych metod.
Przy odkrywaniu zależności wielu zmiennych możemy mieć do czynienia z dwoma zasadniczo róznymi sytuacjami. Albo system może prowadzić aktywne eksperymenty, co pozwala mu stosować technikę zmieniania jednej zmiennej niezależnej na raz (przy określonych stałych wartościach innych zmiennych), albo jest wyłącznie zdany na obserwowanie danych pochodzących z pomiarów, na których przebieg nie ma wpływu i techniki tej nie może zastosować. Omówimy przykładowe heurystyki pomocne przy odkrywaniu związków w obu tych sytuacjach.
W przypadku, gdy system ma eksperymentalną kontrolę nad zmiennymi, pomiędzy którymi poszukuje związków, można zastosować technikę poszukiwania regularności na różnych poziomach opisu. Na początku wszystkie zmienne niezależne oprócz jednej otrzymują stałe wartości i poszukuje się pewnego prawa dla tej sytuacji. Można w tym celu wykorzystać metody omawiane poprzednio dla zależności dwóch zmiennych. Odnalezione prawo, opisujące zależność zmiennej zależnej od wybranej zmiennej niezależnej, przy ustalonych wartościach pozostałych zmiennych niezależnych, można traktować jako ukonkretnienie pewnego szablonu wyrażenia przez podstawienie pewnych stałych za jego parametry. Stałe te zapamiętywane są wraz z ustalonymi wartościami zmiennych niezależnych, dla których zostały znalezione. Następnie system zmienia jedną z ustalonych wartości zmiennych niezależnych i ponawia tę procedurę, znajdując inne stałe parametry. Po zgromadzeniu w ten sposób dostatecznie dużej ilości danych, system przechodzi na wyższy poziom opisu, na którym traktuje te stałe jako nowe zmienne zależne i próbuje znaleźć opisujące je związki stosując rekurencyjnie tę samą metodę.
Jeśli, przykładowo, system poszukuje zależności pomiędzy zmienną
zależną
i zmiennymi niezależnymi
,
i
, jego pierwszy
krok może polegać na ustaleniu pewnych wartości dla
i
, dla
których znajdowane jest pewne prawo opisujące zależność
od
.
Załóżmy, że znalezione prawo jest postaci
dla pewnych
konkretnych wartości
i
. Wówczas system zmienia jedną z
ustalonych zmiennych, np.
, i ponownie znajduje zależność
od
, postaci
. Powtarzając to wielokrotnie, system
uzyskuje dla różnych
różne pary wartości
i
. Kiedy jest
ich dostatecznie dużo, można potraktować
i
jako nowe zmienne
zależne i poszukiwać ich zależności od
dla różnych
w ten sam
sposób -- to właśnie jest rekurencyjne przejście na wyższy poziom.
Powyższy opis jest streszczeniem tego, co na temat omawianej techniki piszą jej twórcy. Jednak bardziej precyzyjny i dający lepsze wybrażenie o możliwej implementacji opis można sformułować w postaci algorytmu rekurencyjnego, w którym wspomniane przejście na wyższy poziom opisu jest powrotem z rekurencyjnego wywołania. Algorytm taki, który jest prawdopodobnie nie całkiem wierną, ale za to jasno i w miarę zgrabnie sformułowaną interpretacją oryginalnej heurystyki systemu BACON, przedstawia tablica 5.
Argumenty przedstawionej procedury to zmienna zależna
, zbiór
zmiennych niezależnych
oraz zbiór danych
. Będziemy zakładać
dla wygody, że
zawiera wszystkie potrzebne dane w dostatecznej
ilości (w praktyce oczywiście mogą być one generowane za pomocą
eksperymentów podczas poszukiwania równania). Przez
oznaczamy
zbiór tych rekordów danych ze zbioru
, dla których zmienna
ma
ustaloną wartość
. Wykorzystywana jest procedura
, która oznacza dowolną metodę znajdowania
prostych równań (dla dwóch zmiennych).
Powyższe podejście nie może być zastosowane w przypadku, gdy system
nie ma eksperymentalnej kontroli nad wartościami zmiennych i musi
pozostać biernym obserwatorem dostarczanych mu danych. Okazuje się na
szczęście, że użyteczna może być w tym przypadku nieco zmodyfikowana
najprostsza z omawianych heurystyk dla znajdowania prostych praw (dla
dwóch zmiennych): technika wykrywania stałych i trendów. Modyfikacja
polega na tym, że obecnie zamiast wykrywać monotoniczne trendy (jeśli
wartość jednej zmiennej się zwiększa, to wartość drugiej też się
zwiększa albo zmniejsza się) staramy się wykrywać zachodzące pomiędzy
wartościami zmiennych korelacje. Jeśli okaże się, że wartości
i
są pozytywnie skorelowane, tworzona jest nowa zmienna
, zaś
jeśli
i
są skorelowane negatywnie, tworzona jest nowa zmienna
.
Korelacje o różnym stopniu mogą oczywiście występować pomiędzy wieloma
parami zmiennych, co powoduje potrzebę wyboru najbardziej
obiecujących. W przypadku systemu BACON branych jest pod uwagę
najsilniej skorelowanych par zmiennych, na podstawie których tworzy
się nowe zmienne, ponownie oblicza korelacje pomiędzy wszystkimi
parami zmiennych, itd. W miarę, jak tworzone są zmienne odpowiadające
coraz bardziej złożonym wyrażeniom, najlepsze korelacje zbliżają się
do
lub
, prowadząc ostatecznie do odkrycia liniowej zależności
i utworzenia prawa. System działa do momentu wykorzystania wszystkich
zmiennych w pewnym prawie lub przekroczenia przez wyrażenia
odpowiadające zmiennym pewnego progu złożoności.
Wprowadzenie do zagadnień data mining stanowi raport Holsheimera i Siebesa, chociaż większość z omawianych tam zagadnień koncentruje się wokół znanych nam już algorytmów indukcyjnego uczenia się na podstawie przykładów. System 49er opisują w swoim artykule Żytkow i Zembowicz. Przedstawione metody odkrywania równań zaczerpnięto z repertuaru metod zaimplementowanych w różnych wersjach systemu BACON i opisanych w artykule Langleya i innych.
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -no_navigation wyklad9.tex
The translation was initiated by Pawel Cichosz on 2004-03-01