FP-Growth (Frequent Pattern Growth)

Czym jest FP-Growth?

FP-Growth (Frequent Pattern Growth) to wydajny algorytm analizy asocjacyjnej, który służy do znajdowania zbiorów częstych bez konieczności generowania wszystkich możliwych kombinacji elementów, jak to ma miejsce w algorytmie Apriori. Wykorzystuje on strukturę drzewa (FP-tree), co pozwala na znaczną redukcję złożoności obliczeniowej i efektywne przetwarzanie dużych zbiorów danych.

Kluczowe koncepcje:

  1. FP-tree (Frequent Pattern Tree):

    • Struktura drzewa używana do przechowywania skompresowanych informacji o transakcjach w zbiorze danych.
    • Drzewo reprezentuje tylko te elementy i ich kombinacje, które spełniają minimalny próg wsparcia (\(min\_support\)).
  2. Zbiory częste:

    • Podzbiory elementów, które występują w danych z częstością większą niż próg \(min\_support\).
  3. 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}} \]

Jak działa FP-Growth?

  1. Budowa FP-tree:

    • Przeanalizuj zbiór danych i oblicz wsparcie dla każdego elementu.
    • Usuń elementy, które nie spełniają minimalnego progu wsparcia (\(min\_support\)).
    • Posortuj elementy w transakcjach według częstości występowania w kolejności malejącej.
    • Utwórz FP-tree, dodając kolejne elementy transakcji do drzewa i aktualizując liczniki dla każdego węzła.
  2. Wykrywanie wzorców:

    • Przechodząc przez FP-tree, identyfikuj zbiory częste przy użyciu techniki rekurencyjnego podziału.
    • Dla każdego elementu utwórz „warunkowe drzewo FP” (conditional FP-tree), które reprezentuje wszystkie kombinacje zawierające dany element.
  3. Generowanie zbiorów częstych:

    • Na podstawie warunkowych drzew FP generuj wszystkie zbiory częste.

Przykład działania:

Załóżmy następujący zbiór transakcji:

Transakcja Produkty
T1 {A, B, C}
T2 {A, C}
T3 {A, B, D}
T4 {B, C, D}
T5 {A, B, C, D}

Kroki:

  1. Oblicz wsparcie dla każdego elementu:

    • \(A: 4\), \(B: 4\), \(C: 4\), \(D: 3\).
  2. Utwórz FP-tree:

    • Zbuduj drzewo, sortując elementy w każdej transakcji według częstości występowania:
      • T1: \(A \rightarrow B \rightarrow C\)
      • T2: \(A \rightarrow C\)
      • T3: \(A \rightarrow B \rightarrow D\)
      • T4: \(B \rightarrow C \rightarrow D\)
      • T5: \(A \rightarrow B \rightarrow C \rightarrow D\)
  3. Rekurencyjne przeszukiwanie FP-tree:

    • Twórz warunkowe drzewa FP dla każdego elementu i generuj wzorce częste.

Zalety FP-Growth:

Wady FP-Growth:

Zastosowania:

  1. Analiza koszyka zakupowego:
    • Identyfikacja produktów często kupowanych razem.
  2. Rekomendacje:
    • Tworzenie systemów rekomendacyjnych na podstawie wzorców współwystępowania.
  3. Bioinformatyka:
    • Analiza współwystępujących genów lub białek.
  4. Marketing:
    • Optymalizacja kampanii reklamowych na podstawie zachowań klientów.

FP-Growth to zaawansowany algorytm analizy asocjacyjnej, który znacznie przewyższa tradycyjny Apriori pod względem wydajności, szczególnie w przypadku dużych zbiorów danych. Jego zastosowanie pozwala na szybkie i skuteczne odkrywanie wzorców współwystępowania.