Paweł Cichosz
Date: 2001/2002
Wykład jest poświęcony metodom znajdowania reguł asocjacyjnych, opisujących częste współwystępowanie w analizowanych danych pewnych elementów -- w najprostszym ujęciu pewnych wartości atrybutów.
Algorytmy indukcyjnego uczenia się omawiane dotąd stosowane są do odkrywania wiedzy o klasyfikacji: zależności wybranego atrybutu, traktowanego jako kategoria, od pozostałych atrybutów, pozwalającej na wyznaczanie nieznanej kategorii na podstawie znanych wartości atrybutów dla dowolnych przykładów -- rekordów w bazie danych. Nie zawsze jednak jest to ten rodzaj wiedzy, który może być najbardziej przydatny. Nie zawsze też udaje się taką zależność wyznaczyć z dostateczną dokładnością, a jednocześnie opisać w dostatecznie prosty sposób, aby mogła być faktycznie użyteczna. Innym rodzajem wiedzy, który w takich sytuacjach może być odkrywany, są asocjacje. Są to zależności polegające na (względnie) częstym współwystępowaniu pewnych elementów w analizowanych danych (pewne towary są często kupowane jednocześnie, klienci pewnych firm są często klientami pewnych innych firm). W pewnych zastosowaniach wiedza o asocjacjach może być bardziej użyteczna od wiedzy o klasyfikacji, a też odkrycie takiej wiedzy o praktycznie przydatnej jakości może być łatwiejsze -- chociaż niekoniecznie prostsze obliczeniowo.
Nie zmniejszając ogólności rozważań możemy założyć, że interesują nas
asocjacje polegające na częstym współwystępowaniu pewnych wartości
atrybutów w rekordach bazy danych, czy też -- dalej używając dla
wygody terminologii wywodzącej się z maszynowego uczenia się --
pewnych wartości atrybutów przykładów. Wygodnie będzie jednak nie
zajmować się wprost atrybutami, lecz tylko ich wartościami. Możemy w
szczególności dopuścić, że dla różnych przykładów mogą być częściowo
różne zestawy atrybutów lub że niektóre atrybuty dla pewnych
przykładów mogą przyjmować nie pojedyncze wartości, lecz wartości
będące zbiorami. Chodzi o to, aby wygodnie reprezentować dane
dotyczące np. towarów zakupionych przez klienta w ramach jednej
transakcji -- dla różnych klientów mogą być to różne liczby towarów.
Abstrahując od tego, jak fizycznie tego typu dane są organizowane w
relacyjnej bazie danych za pomocą powiązanych odpowiednimi związkami
tabel, przyjmiemy, że każdy przykład
jest opisywany za pomocą
pewnego zbioru wartości atrybutów
(nazywanego krótko zbiorem
wartości), nie interesując się tym, ile faktycznie jest tych atrybutów
i ile każdy z nich może mieć wartości. Wartości te będziemy traktować
jako nominalne, zakładając, że w razie potrzeby zostały uprzednio
poddane dyskretyzacji. Przez
oznaczymy zbiór wszystkich
wartości, jakie mogą wystąpić w opisach przykładów z rozważanej
dziedziny. Przyjmujemy więc opis przykładów nie za pomocą atrybutów i
wartości, jak dotąd, lecz za pomocą wyłącznie wartości, aby uwolnić
się od konieczności zakładania czegokolwiek na temat tego, ile jest
atrybutów i ile oraz jakich każdy z nich może mieć wartości.
Wiedzę dotyczącą asocjacji reprezentuje się za pomocą reguł
asocjacyjnych, które z kolei będziemy opisywać w najbardziej naturalny
sposób, zbliżony do opisu przykładów. Przyjmiemy, że każda taka reguła
jest strukturą złożoną z dwóch zbiorów wartości, z których pierwszy
nazwiemy zbiorem wartości warunkujących, a drugi -- zbiorem
wartości warunkowanych. Regułę ze zbiorem wartości
warunkujących
i zbiorem wartości warunkowanych
zapiszemy jako:
| (1) |
Oczywiście użyte wyżej określenia ,,często'' czy ,,wielu'' są
nieprecyzyjne, ale można je sprecyzować przyjmując stosowne liczbowe
kryteria. W celu sprecyzowanie interpretacji reguł asocjacyjnych
określa się dla nich wsparcie i wiarygodność. Aby
zapisać ich definicję przyjmijmy oznaczenie
dla podzbioru
dowolnego zbioru przykładów
zawierającego te i tylko te przykłady,
których opisy zawierają wszystkie wartości z
:
| (2) |
Wówczas wsparcie reguły
na zbiorze przykładów
jest określone następująco:
, |
(3) |
, |
(4) |
Wsparcie określa się także dla pojedynczych zbiorów wartości. Wsparcie
zbioru wartości
na zbiorze przykładów
jest definiowane w
następujący oczywisty sposób:
, |
(5) |
Typowe podejście do problemu generowania reguł asocjacyjnych na podstawie zbioru danych (przykładów) polega na rozbiciu go na dwa podproblemy:
Pierwszy problem polega na znalezieniu wszystkich zbiorów wartości, których wsparcie przekracza zadane minimum. Takie zbiory są nazywane częstymi zbiorami wartości. Efektywne znajdowanie częstych zbiorów wartości stanowi główną trudność przy generowaniu reguł asocjacyjnych.
Drugi problem, czyli tworzenie na podstawie znalezionych częstych
zbiorów reguł asocjacyjnych, jest w istocie bardzo prosty. Dla
dowolnych dwóch częstych zbiorów wartości
i
, mających wymagane
minimalne wsparcie, dla których
, może być utworzona
reguła asocjacyjna
| (6) |
| (7) | ||
, |
(8) |
Pozostaje określić sposób rozwiązania pierwszego, kluczowego
podproblemu, znajdowania częstych zbiorów wartości. Rozpatrywanie
wszystkich możliwych zbiorów wartości (wszystkich podzbiorów
) i wyznaczanie ich wsparcia jest oczywiście nie do
przyjęcia -- zwłaszcza że wyznaczenie wsparcia dla każdego zbioru
wartości może być operacją bardzo kosztowną ze względu na duży na ogół
rozmiar zbioru danych. Wynika stąd konieczność pewnej heurystycznej
strategii przeszukiwania przestrzeni zbiorów wartości w poszukiwaniu
tych, które występują w dostatecznie dużej liczbie przykładów.
Jedna z możliwych strategii opiera się na obserwacji, że każdy zbiór wartości, zawierający się w pewnym częstym zbiorze wartości, także jest częstym zbiorem. W związku z tym rozpoczynając od częstych zbiorów jednoelementowych generuje ona w systematyczny sposób ich nadzbiory, każdorazowo zawierające jedną dodatkową wartość, gdyż tylko nadzbiory częstych zbiorów mogą być częstymi zbiorami. Realizacją tej koncepcji jest algorytm Apriori, którego szkic przedstawiony jest poniżej.
Dla każdego
algorytm wyznacza zbiór
złożony z
częstych zbiorów zawierających dokładnie
wartości, które osiągają
minimalne wymagane wsparcie
. Zbiór
powstaje przez
wybranie spełniających ten warunek pojedynczych wartości ze zbioru
wszystkich wartości
. W kolejnych iteracjach dla
zbiór
jest wyznaczany na podstawie zbioru
w trzech krokach. W pierwszym z nich jest tworzony zbiór
tymczasowy
złożony ze zbiorów wartości powstałych przez
odpowiednie połączenie pewnych par zbiorów z
. Następnie w
celu ograniczenia zakresu przeszukiwania pewne zbiory są eliminowane,
co daje w wyniku zbiór
. Wreszcie z
do
są
wybierane zbiory wartości, których wsparcie wynosi co najmniej
. Można się spodziewać, że dla pewnego
uzyskamy
, czyli nie zostanie znaleziony żaden
-elementowy
zbiór wartości o dostatecznie dużym wsparciu. Jest to naturalne
kryterium stopu dla tego algorytmu.
Operacja
, która tworzy zbiór
na podstawie
zbioru
, generuje
-elementowe zbiory wartości łącząc
wszystkie takie pary
-elementowych częstych zbiorów, które mają
wspólnych elementów i różnią się tylko jedną wartością.
Połączony zbiór zawiera wówczas te
wspólne wartości oraz dwie
różne wartości z każdego z łączonych zbiorów. Zatem z połączenia
-elementowych zbiorów:
| (9) | ||
| (10) |
| (11) |
Operacja
przekształca zbiór
w zbiór
przez eliminację pewnej liczby zbiorów wartości najmniej
obiecujących z punktu widzenia celu przeszukiwania, jakim jest
znalezienie częstych zbiorów. Ma to na celu jak największe
ograniczenie liczby zbiorów wartości, dla których musi być wyznaczone
wsparcie, a tym samym utrzymanie kosztów obliczeniowych algorytmu w
rozsądnych granicach. W związku z tym elementami zbioru
stają
się takie i tylko takie zbiory wartości z
, dla których ich
wszystkie
-elementowe podzbiory należą do
. W ten
sposób jest stosowana podana wcześniej heurystyka, zgodnie z którą
częstym zbiorem może być tylko taki zbiór, którego każdy podzbiór jest
także częstym zbiorem.
Przedstawiony algorytm odkrywania reguł asocjacyjnych uchodzi za standardowy, ale są znane jego różne modyfikacje. Zmierzają one do poprawienia efektywności obliczeniowej lub uzyskania reguł asocjacyjnych nieco innego rodzaju.
Dla dużych zbiorów danych, a właśnie w takich zazwyczaj poszukuje się asocjacji, generowanie reguł asocjacyjnych jest bardzo kosztowne. Liczba rozpatrywanych potencjalnych częstych zbiorów silnie zależy od zadanego minimalnego wsparcia i zbyt mała wartość łatwo może ,,zadławić'' algorytm nadmiarem obliczeń. Rozsądną strategią jest raczej rozpoczynanie od dużego minimalnego wsparcia i -- jeśli liczba uzyskanych reguł asocjacyjnych okaże się zbyt mała -- ostrożne zmniejszanie go.
Określanie wsparcia zbiorów wartości wymaga zliczania wszystkich
przykładów, w których opisie występują określone wartości atrybutów, a
to z kolei wymaga intensywnego dostępu do przetwarzanego zbioru
danych, który może nie mieścić się w całości w pamięci operacyjnej i
być przechowywany w pamięci zewnętrznej, w bazie danych lub pliku.
Aby związany z tym koszt zminimalizować, może się niekiedy opłacać
wyznaczanie w jednym przebiego częstych zbiorów wartości o dwóch
kolejnych rozmiarach. Polegałoby to na tym, aby na podstawie zbioru
wyznaczyć od razu nie tylko zbiór
, ale od razu potem
na jego podstawie zbiór
, a dopiero później, w jednym
przebiegu przez zbiór danych, obliczyć wsparcie wszystkich elementów
tych zbiorów i uzyskać zbiory
i
przez
pozostawienie tylko tych, które osiągają minimalne zadane wsparcie. W
ten sposób w
znajdzie się więcej niż to konieczne zbiorów
wartości (gdyż nie będą wyznaczane na podstawie
, lecz na
podstawie
, ale oszczędność w dostępie do pamięci
zewnętrznej może to zrekompensować.
Jeden z pomysłów na poprawę efektywności polega na zrównolegleniu algorytmu i uruchamianiu go w środowisku wieloprocesorowym. Istnieje odpowiadnia równoległa wersja algorytmu Apriori.
Z innych rodzajów reguł asocjacyjnych, które można by generować za pomocą nieco zmodyfikowanych algorytmów, najbardziej interesujące są temporalne reguły acocjacyjne, w których uwzględnia się czas, z którego pochodzą przykłady (np. czas dokonania transakcji zakupu) i poszukuje nie tyle wartości współwystępujących, co następujących w krótkiej sekwencji czasowej. W tym przypadku analizie podlegają nie pojedyncze transakcje, lecz sekwencje transakcji.
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-w11.tex
The translation was initiated by Pawel Cichosz on 2004-02-12