Paweł Cichosz
Date: 2001/2002
Wykład dotyczy metod odkrywania wiedzy polegających na grupowaniu danych. Wynikiem grupowanie jest wyróżnienie w danych grup podobnych przykładów i wygenerowanie opisów tych grup, pozwalających na klasyfikowanie do nich dowolnych nowych przykładów.
Grupowanie jest rodzajem uczenia się bez nadzoru, w którym dane trenujące zawierają opisy przykładów w postaci wartości atrybutów, ale bez określonych kategorii pojęcia docelowego. Nazwaliśmy je wcześniej tworzeniem pojęć -- w odróżnieniu od uczenia się pojęć -- gdyż w tym przypadku zadanie systemu uczącego się obejmuje samodzielne wyznaczenie najbardziej odpowiednich kategorii przez związanie ich z pewnymi grupami przykładów trenujących, a następnie wyznaczenie hipotezy pozwalającej do tych kategorii klasyfikować dowolne nowe przykłady. Aby podkreślić możliwość klasyfikacji nowych przykładów, tak jak klasyfikuje się przykłady za pomocą pojęć, będziemy mówić o grupowaniu pojęciowym.
Mówienie w takiej sytuacji o odkrywaniu wiedzy może się wydawać problematyczne. Dlatego dyskusję metod grupowania poprzedzimy uzasadnieniem, że grupowanie faktycznie reprezentuje pewną wiedzę. Istotne dla tego uzasadnienia jest to, że podział na grupy i odpowiadające im kategorie nie jest arbitralny, lecz oparty na podobieństwie przykładów. Podobieństwo, jak zobaczymy, umożliwia wnioskowanie, a tam, gdzie jest możliwe wnioskowanie, mamy ponad wszelką wątpliwość do czynienia z wiedzą.
Na razie poprzestaniemy na nieformalnym rozumieniu podobieństwa przykładów: jest jasne, że za podobne uznalibyśmy takie przykłady, dla których identyczne lub podobne są wartości niektórych atrybutów. Dokładniej, dla atrybutów nominalnych jest sens mówić wyłącznie o identyczności, ale dla atrybutów porządkowych i ciągłych można mówić o podobieństwie w sensie odległości między wartościami.
Pod adresem dowolnych metod grupowania kierować będziemy postulat, aby każdy przykład był bardziej podobny do wszystkich przykładów zaliczonych do tej samej co on kategorii niż do któregokolwiek przykładu zaliczonego do innej kategorii, gdyż w przeciwnym przypadku przynależność przykładu do kategorii nie będzie o nim mówić nic dostatecznie pewnego, aby można było mówić o wyciąganiu wniosków. Oznacza to, po pierwsze, że w ramach każdej kategorii przykłady powinny być do siebie maksymalnie podobne, oraz, po drugie, że przykłady różnych kategorii powinny być maksymalnie zróżnicowane.
W przypadku uczenia się pojęć znaleziona na podstawie przykładów trenujących hipoteza może być następnie stosowana do klasyfikowania dowolnych przykładów. Właśnie ten proces klasyfikowania -- ustalania (prawdopodobnych) kategorii przykładów -- jest wnioskowaniem wykorzystującym wiedzę uzyskaną w trakcie uczenia się. Za jej pomocą z przesłanek, jakimi są wartości atrybutów przykładu, wywodzi się jego kategorię jako konkluzję. Z kolei w przypadku grupowania proces uczenia się powoduje wyznaczenie pewnego podziału zbioru trenującego na kategorie. Jeśli dodatkowo przyjmiemy, że ten podział jest indukcyjnie uogólniany, to można stosować go do całej dziedziny, czyli klasyfikować za jego pomocą również nowe przykłady. Ponieważ podział na kategorie jest oparty na podobieństwie, z faktu przynależności przykładu do kategorii można wyciągnąć wniosek o jego podobieństwie do innych przykładów tej samej kategorii. W pewnych sytuacjach może to być użyteczna informacja.
Możemy sobie wyobrazić, po pierwsze, że przykłady to dla nas coś więcej niż tylko wektory wartości atrybutów. W pewnych dziedzinach przykłady mogą mieć ponadto pewną znaczącą tożsamość, nie reprezentowaną przez opisujące je atrybuty, które opisują ich pewne cechy, ale nie w pełni je identyfikują. Wówczas fakt, że pewne dwa przykłady są podobne i należą do jednej kategorii, a inne dwa przykłady są niepodobne i należą do różnych kategorii, może dostarczać ważnej informacji, gdyż mówi o pewnych konkretnych obiektach z własną tożsamością.
Jest też inna możliwość, występująca wtedy, kiedy dla niektórych przykładów wartości niektórych atrybutów nie są znane. Dla takiego przykładu może być wyznaczona najbardziej odpowiednia kategoria na podstawie znanych wartości atrybutów, a następnie z jego przynależności do tej kategorii można wywnioskować prawdopodobne wartości pozostałych atrybutów. Widać stąd, że możliwe jest wnioskowanie na podstawie przynależności przykładów do określonych kategorii utworzonych przez proces grupowania, o ile odzwierciedlają one podobieństwo przykładów, a w związku z tym tworzone przez ten proces pojęcia można traktować jako wiedzę.
Aby wnioskowanie na podstawie wyników grupowania było możliwe, konieczny jest nie tylko odpowiedni podział przykładów trenujących na kategorie -- grupy utworzone według ich podobieństwa. Niezbędny jest również pewien opis każdej grupy, dzięki któremu możliwe będzie klasyfikowanie nowych przykładów. Ta obserwacja prowadzi do wyróżnienia dwóch podzadań w rozważanym przez nas zadaniu grupowania pojęciowego:
Przypomnijmy sobie, że w przypadku grupowania za hipotezę uznajemy
funkcję
, która odwzorowuje przykłady z dziedziny na
związany z tą hipotezą zbiór kategorii
. Utworzenie takiej
hipotezy oznacza wyznaczenie zbioru kategorii przez podział danych
trenujących na grupy oraz wyznaczenie opisu poszczególnych kategorii,
dzięki któremu będzie można do tego zbioru kategorii klasyfikować
dowolne przykłady.
Inaczej niż dotąd dla innych metod odkrywania wiedzy, zaczniemy rozważania od założenia, że wszystkie uwzględnianie przy grupowaniu atrybuty są ciągłe. Wynika to z faktu, że pewne proste, klasyczne algorytmy grupowania przystosowane są do działania tylko z ciągłymi przestrzeniami atrybutów. Algorytmy te są oparte na liczbowych miarach odległości między przykładami, które w najbardziej naturalny sposób są określone dla atrybutów ciągłych.
W zależności od właściwości dziedziny i konkretnego zastosowania
właściwe mogą być różne miary odległości między przykładami, a ściślej
między wektorami wartości atrybutów ciągłych. Tu poprzestaniemy na
prostej metryce euklidesowej, zgodnie z którą dla dwóch przykładów
i
odległość określona jest następująco:
. |
(1) |
. |
(2) |
W przypadku, gdy każda kategoria-grupa składa się z przykładów opisywanych przez wektory liczb rzeczywistych będących wartościami atrybutów ciągłych, naturalna jest reprezentacja kategorii również przez wektory liczb rzeczywistych:
| (3) |
, |
(4) |
W świetle powyższych ustaleń dowolna hipoteza
może
być reprezentowana zbiór wektorów wartości atrybutów
dla
każdej kategorii
. Dowolny przykład
można wówczas
klasyfikować do najbliższej mu kategorii następująco:
| (5) |
Prosty algorytm grupowania używający przedstawionej wyżej
reprezentacji kategorii może polegać na losowym wybraniu ustalonej
liczby przykładów i utworzeniu dla każdego z nich jednoelementowej
grupy. Wówczas wektor wartości atrybutów każdego przykładu staje się
początkowym wektorem środkowym grupy. Następnie przetwarzając kolejno
wszystkie przykłady trenujące można dla każdego z nich znaleźć
najbliższą grupę i dołączyć go do niej. Po zakończeniu tego procesu
można wyznaczyć nowy wektor centralny każdej grupy przez obliczenie
odpowiednich średnich, a następnie -- ponowić go, czyli znów dla
każdego przykładu znaleźć najbliższą grupę, następnie ponownie
zmodyfikować wektory środkowe itd., aż do uzyskania stabilizacji
podziału na grupy, kiedy w kolejnych iteracjach żaden przykład nie
zmienia swojej przynależności. Ta koncepcja realizowana jest przez
algorytm
środków, opisany poniżej.
Przedstawiony algorytm po uzyskaniu zbieżności, czyli braku zmiany
przynależności przykładów do grup, zwraca wektory centralne
reprezentujące kategorie. Zgodnie z wcześniejszą dyskusją łącznie
reprezentują one hipotezę grupowania
.
Niedogodnością praktyczną algorytmu
środków jest konieczność
ustalenia z góry parametru
, liczby tworzonych kategorii, co może
być niekiedy kłopotliwe. Można wskazać co najmniej trzy sposoby
przezwyciężenia tej trudności:
Rozwiązanie to jest zupełnie zadowalające, jeśli zwiększony nakład obliczeń nie jest problemem, pozostaje tylko ustalić kryterium, według którego będzie wybierane najlepsze grupowanie. Będzie o tym mowa dalej.
Binarne grupowanie hierarchiczne wymaga w zamian określenia swego rodzaju kryterium stopu (podobnego do kryterium stopu w przypadku budowania drzewa decyzyjnego), dzięki któremu będzie można rozstrzygnąć, kiedy dzielenie grup na podgrupy ma być zatrzymane. To kryterium można jednak również sprowadzić do kryterium oceny jakości, porównującego jakość jednej ,,dużej'' grupy z dwiema mniejszymi, na które można ją podzielić.
Realizacja adaptycyjnej zmiany liczby kategorii wymaga wprowadzenia do algorytmu, po zakończeniu etapu przypisywania przykładów trenujących do poszczególnych grup, weryfikacji polegającej na sprawdzeniu, czy
Algorytm
średnich i jego zmodyfikowane wersje mogą być
przystosowane w pewnym zakresie również do grupowania przykładów z
atrybutami dyskretnymi, ale wymaga to innego określenia odległości
między przykładami oraz zastąpienia operacji uśredniania przy
wyznaczaniu wektorów środkowych operacją wybierania wartości
najczęściej występującej. Oprócz tej możliwości znane są jednak
bardziej wyrafiniwane algorytmy grupowania dla atrybutów dyskretnych,
spośród których na uwagę zasługuje zwłaszcza algorytm COBWEB.
Każdy rodzaj indukcyjnego uczenia się można traktować jako przeszukiwanie przestrzeni hipotez w celu znalezienia hipotezy spełniającej pewne kryteria. Algorytm COBWEB szczególnie dobrze odpowiada takiemu spojrzeniu na uczenie się, jego działanie można bowiem postrzegać jako przeszukiwanie przestrzeni możliwych grupowań dla zbioru trenującego. Aby ten proces przeszukiwania dokładnie opisać, należy podać:
Funkcja oceny jakości grupowania stosowana w algorytmie COBWEB stara się mierzyć przydatność grupowania: jej wartość zależy od tego, mówiąc nieformalnie, z jakim prawdopodobieństwem na podstawie znajomości przynależności przykładu do grupy można ,,odgadywać'' wartości jego atrybutów. Wykorzystywane są w tym celu związane z każdą grupą oszacowania prawdopodobieństw wartości atrybutów.
Przyjmijmy, że ocenie podlega pewna hipoteza reprezentująca grupowanie
, przy czym
jest zbiorem kategorii hipotezy
.
Załóżmy, że przykłady wybierane są z dziedziny
zgodnie z
określonym na niej rozkładem prawdopodobieństwa
. Ponadto jak
zwykle przyjmiemy, że na dziedzinie określone są atrybuty
dla
, przy czym zgodnie z
wcześniejszą zapowiedzią ograniczymy się do atrybutów dyskretnych.
Dla każdej kategorii
interesować nas będzie zbiór
prawdopodobieństw postaci
dla
i
, czyli prawdopodobieństwa tego, że atrybut
ma dla
wybranego zgodnie z rozkładem
przykładu
wartość
,
jeśli wiadomo, że przykład ten został w grupowaniu zaliczony do
kategorii
. Według jednej z możliwych interpretacji
prawdopodobieństwa tej postaci mogą reprezentować stopień podobieństwa
przykładów w ramach kategorii
. Nieformalne uzasadnienie takiej
interpretacji jest następujące. Jeśli dla wszystkich lub znacznej
części atrybutów prawdopodobieństwa
są duże dla jednej
lub kilku wartości
oraz małe dla pozostałych wartości, to pozwala
to, wiedząc, że przykład jest zaliczony do kategorii
, z dużą
dokładnością przewidywać wartości jego atrybutów. Inaczej mówiąc, im
większe wartości osiągają te prawdopodobieństwa, tym bardziej podobne
są przykłady zaliczone do tej samej kategorii. Z kolei podobieństwo
przykładów w ramach kategorii pozwala, na podstawie przynależności
przykładu do takiej kategorii, trafnie przewidywać jego wartości
atrybutów.
Powyższe prawdopodobieństwa używane są w funkcji oceny algorytmu COBWEB w następujący sposób:
![]() |
(6) |
, |
(7) |
![]() |
(8) |
![]() |
(9) |
![]() |
(10) |
W systemie COBWEB tworzone jest zawsze grupowanie hierarchiczne.
Oznacza to, że podział na grupy następuje na różnych poziomach
szczegółowości. Na poziomie najbardziej ogólnym, który nazwiemy
poziomem 0, można przyjąć, że wszystkie przykłady wchodzą w skład
jedynej kategorii, która dzieli się następnie na poziomie
na pewną
liczbę podkategorii. Każda z nich ma dalej na poziomie
swoje
podkategorie i w ten sposób coraz bardziej szczegółowy podział może
być kontynuowany; jego naturalny kres następuje, kiedy zostaną
uzyskane kategorie obejmujące tylko jeden przykład trenujący, gdyż
wówczas nie może być przeprowadzony dalszy podział. Dla każdej
kategorii jej podkategorie są oczywiście parami rozłączne, a każdy
przykład kategorii macierzystej należy do dokładnie jednej
podkategorii potomnej.
Naturalną reprezentacją hierarchicznego grupowania jest drzewo, w którym węzły odpowiadają kategoriom. W związku z tym w węzłach są przechowywane służące do reprezentowania kategorii oszacowania rozkładów prawdopodobieństw. Węzły potomne odpowiadają podkategoriom kategorii, której odpowiada ich węzeł macierzysty. W korzeniu drzewa znajduje się węzeł odpowiadający kategorii poziomu 0, która zawiera wszystkie przykłady trenujące. Liśćmi drzewa są zazwyczaj węzły kategorii jednoelementowych, które nie mają węzłów potomnych, o ile nie zdecydujemy się zatrzymać podziału na podkategorie wcześniej, na przykład po osiągnięciu kategorii kilkuelementowych. Dla wygody będziemy mówić, że węzły drzewa zawierają przykłady lub że dodajemy przykłady do węzłów, mając na myśli kategorie związane z tymi węzłami. Jak zobaczymy, nie wiąże się z tym fizyczne przechowywanie ani kopiowanie przykładów.
Hierarchiczne grupowanie reprezentowane za pomocą drzewa nie jest oceniane jako całość, globalnie -- funkcja oceny jakości jest zawsze stosowana tylko lokalnie, do oceny podziału kategorii na podkategorie, w celu wyboru podziału o najlepszych właściwościach. Taki sposób oceniania dotyczy więc nie całego drzewa, ale jego poszczególnych węzłów, z których każdy oceniany jest ze względu na swoje węzły potomne, wyznaczające podział jego kategorii na podkategorie. Można więc przyjąć, że z każdym węzłem drzewa grupowania jest związana pewna hipoteza, opisująca podział kategorii odpowiadającej temu węzłowi na podkategorie. Ocenie podlega jakość takich hipotez.
Aby było możliwe stosowanie funkcji oceny, w węzłach muszą być przechowywane liczniki umożliwiające oszacowanie używanych do jej obliczania prawdopodobieństw: liczbę przykładów zaliczonych do kategorii związanej z węzłem oraz, dla każdego atrybutu, liczbę wystąpień wszystkich jego wartości. Prawdopodobieństwa mogą być szacowane z wykorzystaniem takich liczników w najprostszy sposób, za pomocą częstości. Ponieważ, jak wkrótce zobaczymy, algorytm działa w trybie inkrementacyjnym i przetwarza zawsze jeden przykład jednorazowo, liczniki w trakcie budowania drzewa grupowania uwzględniają tylko dotychczas przetworzone przykłady i są modyfikowane w trakcie przetwarzania kolejnych przykładów. Dodanie przykładu do węzła drzewa, które jest jedną z podstawowych operacji algorytmu COBWEB, polega wyłącznie na dokonaniu odpowiedniej modyfikacji liczników.
Algorytm COBWEB przetwarzając kolejne przykłady trenujące może modyfikować drzewo grupowania stosując cztery następujące operatory:
Umieszczenie nowego przykładu w istniejącej kategorii jest najprostszym i najbardziej naturalnym sposobem modyfikacji grupowania. Stosując ten operator należy oczywiście wybrać taką kategorię, dla której po dodaniu do niej nowego przykładu uzyskany podział będzie możliwie najlepszy. W tym celu przykład jest tymczasowo dodawany do każdego węzła potomnego, po czym obliczana jest wartość funkcji oceny dla uzyskanego w ten sposób podziału kategorii macierzystej na podkategorie. Przykład pozostawiany jest ostatecznie w węźle, dla którego otrzymano największą wartość tej funkcji. Jest on nazywany najlepszym pojemnikiem dla przykładu.
Umieszczenie przykładu w najlepszym dla niego pojemniku nie zawsze musi prowadzić do najlepszego grupowania, jakie da się uzyskać. Najprostszy alternatywny operator polega na utworzeniu nowej kategorii wyłącznie dla tego przykładu. Dokładniej, tworzony jest nowy liść potomny zawierający tylko przetwarzany przykład. Dzięki temu operatorowi liczba kategorii na każdym poziomie drzewa może się zwiększać.
Grupowania uzyskiwane za pomocą stosowania wyłącznie dwóch pierwszych operatorów mogą być w wielu przypadkach zupełnie satysfakcjonujące: każdy kolejny przykład jest albo umieszczany w tej spośród istniejących już kategorii, do której najlepiej pasuje, albo we własnej nowej jednoelementowej kategorii, jeśli nie pasuje dość dobrze do żadnej z nich. Wyniki uzyskiwane w ten sposób są jednak w zbyt dużym stopniu uzależnione od kolejności, w jakiej są podawane przykłady, a zależności takiej chcielibyśmy uniknąć. Jej osłabieniu służą operatory połączenia i podziału kategorii, które mogą niekiedy umożliwić uzyskanie lepszego grupowania niż wynikające z użycia któregoś z dwóch poprzednich operatorów.
Połączenie kategorii polega na wybraniu dwóch węzłów drzewa i zastąpieniu ich jednym węzłem, reprezentującym połączoną kategorię, do której następnie dodaje się przetwarzany aktualnie przykład. Operator połączenia powoduje zastąpienie tych dwóch węzłów jednym nowym węzłem, dla którego przechowywane w nim liczniki są równe sumie odpowiednich liczników z dwóch łączonych węzłów. Węzły te nie są jednak likwidowane, lecz stają się potomkami węzła powstałego z ich połączenia.
Chociaż ewentualne połączenie można w zasadzie rozważać dla dowolnych par węzłów, byłoby to dość kosztowne. W algorytmie COBWEB stosuje się w związku z tym heurystykę, zgodnie z którą podczas przetwarzania przykładu możliwość połączenia jest brana pod uwagę tylko dla dwóch węzłów, będących najlepszymi pojemnikami dla tego przykładu.
Podział kategorii jest operacją w przybliżeniu odwrotną do połączenia. Przybliżenie polega tu na tym, że o ile połączenie jest zawsze stosowane tylko dla wybranych dwóch węzłów, o tyle podział może prowadzić do zastąpienia jednej kategorii ich większą liczbą. Dokładniej, w wyniku podziału kategoria jest zastępowana przez wszystkie swoje podkategorie albo, inaczej mówiąc, węzeł jest zastępowany przez wszystkie swoje węzły potomne. Nie są przy tym potrzebne żadne obliczenia, a jedynie prosta manipulacja na strukturze drzewa. Po dokonaniu tego podziału przykład ten może być umieszczony w najlepszym pojemniku spośród uzyskanych w wyniku podziału węzłów, chociaż w algorytmie, który przedstawimy, jest stosowane nieco bardziej ogólne rozwiązanie.
Podsumowaniem powyższej dyskusji jest konkretny zapis strategii, zgodnie z którą wybierane są przedstawione operatory. Efektem zastosowania każdego operatora jest umieszczenie przykładu w pewnej kategorii, istniejącej poprzednio, nowo utworzonej albo powstałej w wyniku połączenia lub podziału. Na pytanie, który z możliwych operatorów należy wybrać, odpowiedź jest dość naturalna: ten, który prowadzi do uzyskania najlepszego grupowania, czyli takiego, dla którego osiąga się największą wartość funkcji oceny.
Przy prezentacji operatorów zaznaczyliśmy, że ich działanie dotyczy zawsze pewnego ustalonego poziomu drzewa, na którym należy umieścić przetwarzany przykład w odpowiedniej kategorii. Sposób przemieszczania się w głąb drzewa jest przy tym zupełnie oczywisty. Na początku przykład zawsze musi być umieszczony w jedynej kategorii poziomu 0, której węzeł znajduje się w korzeniu drzewa. Potem następuje przejście na kolejne niższe poziomy; na każdym z nich w celu wyboru właściwego operatora jest rozpatrywany zbiór węzłów potomnych węzła, w którym przykład został umieszczony na poprzednim (wyższym) poziomie. Proces takiego schodzenia w głąb drzewa jest kontynuowany aż do umieszczenia przykładu w liściu lub utworzenia dla niego nowego liścia. W pierwszym przypadku jednak liść staje się węzłem o dwóch liściach potomnych, z których jeden jest kopią oryginalnego liścia (takiego, jaki był, zanim przykład został do niego dodany), a drugi zawiera ten przykład.
Najwygodniej jest sformułować naszkicowany tu sposób postępowania
rekurencyjnie, tak jak naszkicowano to poniżej. Procedura
cobweb otrzymuje dwa argumenty: przykład
i węzeł
.
Przedstawiony algorytm ma umieścić przykład
w węźle
i
następnie w razie potrzeby wybrać odpowiedni operator na poziomie jego
węzłów potomnych. Przed pierwszym wywołaniem procedury należy
utworzyć drzewo złożone z jednego liścia, zawierającego pierwszy
przykład. Następnie dla każdego kolejnego przykładu procedura powinna
być wywoływana z pierwszym argumentem będącym węzłem znajdującym się w
korzeniu drzewa.
Jeśli węzeł
, do którego ma być dodany przykład
, jest liściem
pozbawionym węzłów potomnych, to żaden z czterech standardowych
operatorów systemu COBWEB nie może być zastosowany. W tej sytuacji
liść zastępowany jest węzłem, którego dwoma potomkami stają się
oryginalny liść
i nowy jednoelementowy liść utworzony dla
przykładu
. Gdy węzeł
ma węzły potomne, nowy przykład
jest
do niego dodawany w zwykłym sensie, czyli zwiększane są odpowiednie
liczniki przechowywane w tym węźle. Następnie musi zostać dokonany
wybór właściwego operatora. W tym celu rozważany jest próbnie każdy z
możliwych operatorów, a o ostatecznym wyborze decyduje wartość funkcji
oceny.
Wygenerowane drzewo reprezentujące grupowanie może być wykorzystywane
do klasyfikowania przykładów w bardzo prosty sposób. Ponieważ
klasyfikowanie polega na znalezieniu kategorii, do której przykład
powinien być zaliczony, jednoznacznego kryterium podejmowania decyzji
może nam dostarczyć ta sama funkcja oceny, która jest stosowana
podczas konstruowania drzewa grupowania. Wyznaczenie kategorii dla
przykładu jest niczym innym jak wyznaczeniem dla niego najlepszego
pojemnika. Jeśli interesują nas kategorie pewnego poziomu
, to,
rozpoczynając od węzła znajdującego się w korzeniu drzewa (na poziomie
0), należy zstępować na kolejne niższe poziomy wzdłuż ścieżki
wyznaczonej przez najlepsze pojemniki dla klasyfikowanego przykładu,
aż do osiągnięcia pożądanego poziomu.
Zauważmy, że w opisany sposób mogą być również klasyfikowane przykłady, dla których nie wszystkie wartości atrybutów są znane. Wystarczy, dołączając na próbę taki przykład do różnych węzłów w poszukiwaniu najlepszego pojemnika, zwiększać liczniki, używane do szacowania prawdopodobieństw dla brakujących wartości atrybutów, o wielkości ułamkowe, określone na podstawie prawdopodobieństw dla tych wartości w kategorii nadrzędnej. Po znalezieniu w ten sposób właściwej kategorii dla przykładu z brakującymi wartościami atrybutów można wykorzystać związane z tą kategorią oszacowania prawdopodobieństw do wnioskowania o tych wartościach. Na podstawie znanych wartości atrybutów dowolnego przykładu można więc wyznaczyć rozkłady prawdopodobieństwa nieznanych wartości atrybutów dla tego przykładu.
Zgodnie z sugestią podaną wcześniej, algorytm
środków lub jego
zmodyfikowane wersje można zaadaptować również do atrybutów
dyskretnych, co oczywiście oznacza, że istnieje także możliwość
stosowania go w sytuacji, gdy część atrybutów jest ciągła, a część
dyskretna. Jednak również algorytm COBWEB można w prosty sposób
dostosować do używania atrybutów ciągłych, umożliwiając jego
stosowanie do ciągłych i mieszanych przestrzeni atrybutów. Pomysł
polega na tym, aby dla atrybutów ciągłych w węzłach szacować nie
prawdopodobieństwa wartości atrybutów, lecz parametry funkcji
gęstości, a przy obliczaniu funkcji oceny grupowania zamiast
sum prawdopodobieństw postaci:
![]() |
(11) |
![]() |
(12) |
![]() |
(13) |
, |
(14) |
Preferencje wobec jednego z dwóch omówionych podejść do grupowania
mogą zależeć od dziedziny zastosowania i oczekiwanych wyników. W wielu
przypadkach proste podejście oparte na odległości, reprezentowane
przez algorytm
środków lub jego zmodyfikowane wersje, może dać
zadowalające efekty przy niższym nakładzie obliczeń. Warto z niego
korzystać głównie wtedy, gdy wszystkie atrybuty są ciągłe, wystarcza
nam grupowanie płaskie (niehierarchiczne) oraz można z góry ustalić
pożądaną liczbę grup. Jeśli któryś z tych warunków nie jest spełniony,
może to być przesłanka do sięgnięcia po algorytm COBWEB. Zwłaszcza
występowanie atrybutów dyskretnych może być ważnym argumentem, gdyż
stosowany w tym algorytmie opis kategorii w postaci oszacowań
rozkładów prawdopodobieństw wartości atrybutu daje znacznie większe
możliwości wnioskowania na podstawie zaklasyfikowania przykładu do
kategorii.
Dla atrybutów ciągłych metryka euklidesowa lub jej proste modyfikacje to
zapewne najbardziej naturalne miary odległości między przykładami i
kategoriami grupowania. W przypadku atrybutów dyskretnych można, jak
sugerowane to było wyżej, dokonać jej odpowiedniej adaptacji: zamiast
różnicy wartości atrrybutów ciągłych należałoby uwzględniać liczbę
wartości pośrednich (zwiększoną o jeden) dla atrybutów porządkowych oraz
0 (jeśli jednakowe) i
(jeśli różne) dla atrybutów nominalnych.
Podobnie w wektorze środkowym kategorii zamiast średnich wartości dla
atrybutów dyskretnych powinny się znaleźć raczej wartości najczęściej
występujące. Jeśli jednak wszystkie lub większość atrybutów to atrybuty
dyskretne, tak proste podejście może dostarczać zbyt mało informacji na
temat grup i zbyt słabo zapewniać oczekiwane podobieństwo wewnątrz grup i
zróżnicowanie między nimi.
Algorytm COBWEB może sugerować inną, probabilistyczną miarę odległości
przykładu od kategorii, którą byłoby prawdopodobieństwo wartości atrybutów
opisujących przykład przy założeniu przynależności do tej kategorii.
Dla pewnego przykładu
możemy to prawdopodobieństwo zapisać jako:
| (15) |
, |
(16) |
Grupowanie na podstawie tak określonej odległości realizowane za pomocą
algorytmu
środków lub pokrewnego można nazwać grupowaniem bayesowskim.
Oczywiście reprezentacja kategorii musi zostać odpowiednio dostosowana:
każda grupa powinna być opisana nie przez wektor wartości średnich czy
środkowych, ale przez występujące w podanym wzorze na odległość
prawdopodobieństwa, a ściślej przez liczniki wartości atrybutów pozwalające
te prawdopodobieństwa szacować -- identycznie jak w algorytmie COBWEB.
Również podobnie jak w tym algorytmie, można takie podejście rozszerzyć
także na atrybuty ciągłe, używając funkcji gęstości zamiast
prawdopodobieństw i obliczając dla atrybutów ciągłych wartość średnią i
odchylenie standardowe.
Algorytm COBWEB ma swoją funkcję oceny grupowania, którą wykorzystuje
przy budowaniu drzewa kategorii i którą można także wykorzystać po
zakończeniu jego działania do oceny uzyskanych wyników -- np.
porównując grupowania uzyskane w kilku niezależnych uruchomieniach,
różniących się kolejnością przetwarzania przykładów. Jednak warto mieć
także pewną niezależną od algorytmu, ,,obiektywną'' funkcję oceny, za
pomocą której można by porównywać grupowania uzyskiwane za pomocą
różnych algorytmów, także takich jak algorytm
środków i jego
warianty, nie wyposażone w żadną wewnętrzną funkcję oceny. Jedno z
podejść do takiej zobiektywizowanej oceny grupowania mówi, aby oprzeć
ją na prawdopodobieństwie danych trenujących przy założeniu, że
grupowanie opisuje rozkład prawdopodobieństwa, z jakim te dane są
grupowane. W tym podejściu przyjmuje się, że każda grupa reprezentuje
pewien rozkład prawdopodobieństwa, a dane są generowane przez
,,mieszanie'' tych rozkładów. Wówczas prawdopodobiństwo dowolnego
przykładu
przy danym grupowaniu
byłoby wyznaczone jako:
. |
(17) |
| (18) |
Wiedząc, jak obliczyć prawdopodobieństwo dla pojedynczego przykładu,
prawdopodobieństwo dla całego zbioru trenującego
wyznaczymy jako
iloczyn:
. |
(19) |
W praktyce wymóg tworzenia wyłącznie jednoelementowych liści w drzewie grupowania algorytmu COBWEB jest trudny do utrzymania. Jeśli kategorie są zawsze dzielone na podkategorie aż do osiągnięcia kategorii jednoelementowych, to liczba liści w drzewie grupowania zawsze będzie równa liczbie przetworzonych przykładów trenujących. Z każdym węzłem zaś, niezależnie od liczby zaliczonych do niego przykładów, wiąże się przechowywanie liczników niezbędnych do wyznaczenia rozkładów prawdopodobieństwa dla wszystkich wartości atrybutów lub odpowiednich parametrów funkcji gęstości. Jeśli rozmiar zbioru trenującego jest liczony w setkach tysięcy, a liczba atrybutów i ich wartości także nie jest mała, może to oznaczać nieakceptowalnie duże zapotrzebowanie na pamięć. Wówczas trzeba odstąpić od wymogu, aby liście reprezentowały zawsze kategorie jednoelementowe i dopuścić, że kategoria, do której zaliczono większą liczbę przykładów, nie ma podkategorii. Jednym z kryteriów podejmowania decyzji, czy dotychczasowy liść po dołączeniu kolejnego przykładu może dalej pozostać liściem, może być podobieństwo przykładów znajdujących się w odpowiedniej kategorii. Jeśli dla każdego lub prawie każdego atrybutu dyskretnego jedna wartość wyraźnie dominuje nad innymi, a wariancja wartości większości atrybutów ciągłych jest mała, można przyjąć, że kategoria jest wewnętrznie dostatecznie jednorodna, aby jej podział nie był konieczny. Mierzyć taką niejednorodność można za pomocą entropii. Inne rozwiązanie to nałożenie ograniczenia na minimalną wartość funkcji oceny grupowania, jakiej osiągnięcie jest konieczne, aby usprawiedliwić podział kategorii na podkategorie. Jeśli dla podwęzłów pewnego węzła wartość funkcji oceny byłaby niższa, należałoby uczynić ten węzeł wieloelementowym liściem.
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 mow-w7.tex
The translation was initiated by Pawel Cichosz on 2004-02-12