Laboratorium 11 -- Reguły asocjacyjne
Reguły asocjacyjne przypominają reguły decyzyjne omawiane na poprzednim wykładzie. Tym razem jednak decyzja (prawa strona implikacji) nie jest z góry określona, tzn. nie wiemy, na którym atrybucie ma się opierać. Jest to przykład nauki bez nauczyciela: algorytm nie ma określonej z góry prawidłowej odpowiedzi, zamiast tego ma opisać wewnętrzne zależności między atrybutami.
Analiza koszykowa
Dane
Mamy dane następujące informacje o transakcjach w jednym z hipermarketów:
Numer paragonu | Kupione produkty |
1000 | Jabłka, Seler, Pieluchy |
2000 | Piwo, Seler, Jajka |
3000 | Jabłka, Jajka, Seler, Piwo |
4000 | Piwo, Jajka |
Zadaniem algorytmu odkrywającego reguły asocjacyjne będzie odpowiedź napytanie: Jakie są zależności pomiędzy kupowanymi produktami?
Pytanie Patrząc na zbiór uczący w tabeli powyżej wypisz reguły które będą określać jakie produkty są kupowane najczęściej razem.
Support i Confidence
Z powyższego zbioru uczącego możemy łatwo wywnioskować następujące reguły:
if Piwo then Jajka
if Jajka then Piwo
if Jabłka then Seler
if Seler then Jabłka
Pozostałe reguły intuicyjnie odrzuciliśmy ponieważ ich częstotliwość w zbiorze uczącym jest niewielka, i w związku z tym mamy małą pewność co do ich prawdziwości.
W celu automatycznego określenia tych parametrów stosuje się dwa wskaźniki: support (wsparcie) i confidence (wiarygodność)
Support
Wskaźnik ten określa częstotliwość (prawdopodobieństwo) danej reguły w stosunku do wszystkich transakcji.
Innymi słowy jest to stosunek ilości transakcji zawierających dane elementy wchodzące w skład reguły do wszystkich transakcji.
Dla przykładu z tabeli powyżej, support reguły
If Piwo then Jajka
jest równy , ponieważ 3 transakcje zawierają Piwo i Jajka, natomiast ilość wszystkich transakcji jest równa 4.
Pytanie Jaki jest support dla reguły poniżej?
if Jabłka then Seler
Confidence
Wskaźnik ten określa siłę implikacji w regule. Innymi słowy jest on definiowany jako stosunek ilości transakcji zawierających wszystkie elementy wchodzące w skład reguły do transakcji zawierających elementy z części warunkowej reguły.
Dla przykładu z tabeli powyżej, confidence reguły
If Piwo then Jajka
jest równy , ponieważ 3 transakcje zawierają Piwo i Jajka, natomiast ilość transakcji zawierających elementy z części warunkowej tej reguły (czyli w tym wypadku Piwo) jest także równa 3.
Pytanie Jaki jest confidence dla reguł poniżej?
if Seler then Jabłka
if Jabłka then Seler
Frequent Itemsets
Patrząc na przykłady powyżej odnalezienie dobrych reguł asocjacyjnych sprowadza się tak naprawdę do wykonania dwóch kroków
wyszukania zbiorów elementów które mają support większy lub równy jakiemuś zadanemu supportowi progowemu - są tak zwanymi zbiorami częstymi (frequent itemsets)
wybrania spośród nich tych konfiguracji, których confidence przekracza jakiś zadany confidence progowy.
W przypadku reguł asocjacyjnych, zbiory które zawierają k elementów nazywane są k-zbiorami (k-temsets).
Pytanie Zakładając, ze bazujemy na danych z tabeli z początku strony, wyznacz wszystkie 1-zbiory i policz dla nich support. Przyjmując, że support progowy jest równy 50%, wyznacz 1-zbiór częsty.
Apriori
Na zasadzie opisanej powyżej działa najpopularniejszy algorytm wyszukujący reguły asocjacyjne - algorytm Apriori.
Wykonuje on następujace krok:
znajdź wszystkie 1-zbiory (1-itemsets)
znajdź pośród wygenerowanych
1-zbiorów,
częste 1-zbiory (
frequent 1-itemsets ) - czyli takie, których support jest
bazując na
wygeneruj
2-zbiory (
2-itemsets)
znajdź pośród wygenerowanych
2-zbiorów,
częste 2-zbiory
Powtarzaj proces, do momentu aż ostatni wygenerowany zbiór
Poniżej znajduje się bardziej formalny opis algorytmu:
Weka
Na podstawie wiedzy zdobytej na poprzednich laboratoriach przygotuj plik
arff dla weki, opisujący dane z tabeli z początku strony. Jak powinien wyglądać plik? Spróbuj pomóc sobie patrząc na plik
shopping.arff ze zbioru danych:
data.tar.gz
Po wczytaniu pliku do weki, przejdź do zakładki Associate i uruchom algorytm z domyślnymi parametrami. Jakie wyniki otrzymałeś(aś)? Dlaczego?
Wczytaj plik shopping.arff i przeprowadź na nim wyszukiwanie reguł asocjacyjnych. Pobaw się parametrami algorytmu
Orange
-
-
Zainstaluj Add-on o nazwie Associate
-