Apriori
Czym jest algorytm Apriori?
Apriori to klasyczny algorytm analizy asocjacyjnej, który służy do identyfikacji zbiorów częstych i generowania reguł asocjacyjnych na ich podstawie. Wykorzystuje on zasadę „jeśli podzbiór jest częsty, to wszystkie jego podzbiory również muszą być częste”, co pozwala na efektywne ograniczenie liczby analizowanych kombinacji.
Kluczowe koncepcje:
-
Zbiory częste:
- Zbiory elementów, które występują w danych z częstością większą niż określony próg wsparcia (\(min\_support\)).
-
Kandydaci:
- Kombinacje elementów, które są potencjalnymi zbiorami częstymi. Są generowane w każdej iteracji algorytmu.
-
Wsparcie (support):
- Odsetek transakcji, w których występuje dany zbiór elementów: \[ support(X) = \frac{\text{liczba transakcji zawierających } X}{\text{całkowita liczba transakcji}} \]
-
Ufność (confidence):
- Prawdopodobieństwo, że wystąpienie jednego zbioru pociąga za sobą wystąpienie drugiego: \[ confidence(X \rightarrow Y) = \frac{support(X \cup Y)}{support(X)} \]
-
Podniesienie (lift):
- Miara zależności między \(X\) i \(Y\), pokazująca, jak bardzo wystąpienie \(X\) zwiększa prawdopodobieństwo wystąpienia \(Y\): \[ lift(X \rightarrow Y) = \frac{confidence(X \rightarrow Y)}{support(Y)} \]
Jak działa algorytm Apriori?
-
Inicjalizacja:
- Zidentyfikuj wszystkie zbiory jednoelementowe (\(k = 1\)) spełniające minimalny próg wsparcia.
-
Generowanie kandydatów:
- Dla każdej iteracji (\(k > 1\)), twórz zbiory kandydatów (\(C_k\)) poprzez łączenie zbiorów częstych (\(L_{k-1}\)) z poprzedniej iteracji.
-
Obliczanie wsparcia:
- Dla każdego kandydata w \(C_k\), sprawdź jego wsparcie, licząc liczbę transakcji, które go zawierają.
-
Przycinanie:
- Usuń kandydatów, których wsparcie jest mniejsze niż \(min\_support\).
-
Powtórzenie:
- Iteruj, aż żadne nowe zbiory częste nie zostaną znalezione.
-
Generowanie reguł asocjacyjnych:
- Na podstawie zbiorów częstych wygeneruj reguły asocjacyjne i oceń je za pomocą miar takich jak ufność i podniesienie.
Przykład działania:
Załóżmy, że mamy następujący zbiór transakcji:
| Transakcja | Produkty |
|---|---|
| T1 | {A, B, C} |
| T2 | {A, C} |
| T3 | {A, B} |
| T4 | {B, C} |
| T5 | {A, B, C} |
Kroki:
-
Krok 1: Zbiory jednoelementowe (\(k = 1\)):
- Oblicz wsparcie dla każdego elementu:
- \(support(A) = \frac{4}{5} = 0.8\)
- \(support(B) = \frac{4}{5} = 0.8\)
- \(support(C) = \frac{4}{5} = 0.8\)
- Wszystkie elementy są częste (\(min\_support = 0.6\)).
- Oblicz wsparcie dla każdego elementu:
-
Krok 2: Zbiory dwuelementowe (\(k = 2\)):
- Kandydaci: \(\{A, B\}, \{A, C\}, \{B, C\}\).
- Oblicz wsparcie:
- \(support(A, B) = \frac{3}{5} = 0.6\)
- \(support(A, C) = \frac{3}{5} = 0.6\)
- \(support(B, C) = \frac{3}{5} = 0.6\)
- Wszystkie zbiory dwuelementowe są częste.
-
Krok 3: Zbiory trójelementowe (\(k = 3\)):
- Kandydat: \(\{A, B, C\}\).
- Oblicz wsparcie:
- \(support(A, B, C) = \frac{2}{5} = 0.4\).
- Zbiór \(\{A, B, C\}\) nie jest częsty (\(support < 0.6\)).
-
Generowanie reguł asocjacyjnych:
- Dla zbioru \(\{A, B\}\):
- \(confidence(A \rightarrow B) = \frac{support(A, B)}{support(A)} = \frac{0.6}{0.8} = 0.75\).
- Dla zbioru \(\{A, B\}\):
Zalety algorytmu Apriori:
- Prostota:
- Algorytm jest łatwy do zrozumienia i zaimplementowania.
- Redukcja kombinacji:
- Dzięki zasadzie Apriori liczba rozważanych kombinacji jest znacznie zmniejszona.
- Wszechstronność:
- Można go stosować do różnych typów danych (np. dane transakcyjne, dane binarne).
Wady algorytmu Apriori:
- Koszt obliczeniowy:
- Przy dużych zbiorach danych i niskim \(min\_support\) algorytm może być wolny.
- Problemy ze skalowalnością:
- Generowanie dużej liczby kandydatów w przypadku zbiorów o wielu elementach.
- Wrażliwość na parametry:
- Wyniki zależą od odpowiedniego wyboru \(min\_support\) i \(min\_confidence\).
Zastosowania:
- Analiza koszyka zakupowego:
- Znajdowanie produktów często kupowanych razem.
- Systemy rekomendacyjne:
- Rekomendowanie produktów na podstawie wzorców zakupowych.
- Medycyna:
- Identyfikacja współwystępujących objawów lub leków.
- Marketing:
- Tworzenie kampanii na podstawie wzorców zachowań klientów.
Algorytm Apriori to jedno z podstawowych narzędzi w analizie asocjacyjnej, szczególnie przydatne w eksploracji dużych zbiorów transakcyjnych.