Reguły asocjacyjne w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Reguły asocjacyjne mają na celu odkrycie związków współwystępowania pomiędzy atrybutami. Stosuje się je często do danych transakcyjnych. Dane takie zawierają przeważnie wiele atrybutów/produktów, lecz pojedyncza transakcja zawiera jedynie niewielki podzbiór. Przykład danych transakcyjnych (5 produktów i 5 transakcji): Celem jest znalezienie reguł typu A->B, gdzie A oraz B to pewne podzbiory zbioru wszystkich atrybutów (produktów). Przykładowo: JEŚLI Produkt_01 ORAZ Produkt_03 TO Produckt_05 Interesują nas reguły często występujące (duże wsparcie, ang. suppport) oraz pewne (duża ufność, ang. confidence). Najpopularniejsze algorytmy poszukiwania takich reguł (np. Apriori, FP-Growth) opierają się na poszukiwaniu częstych podzbiorów atrybutów (o wsparciu większym niż zadane minimum), a następnie z nich składane są reguły, które spełniają wymagania minimalnej ufności (oraz wsparcia). Algorytmy te zazwyczaj wymagają atrybutów binarnych (binominal w RM), stąd częsta koniecznośd przekształcenia atrybutów nominalnych o wielu wartościach w zbiór atrybutów binarnych. 1
2. Reguły asocjacyjne dla danych nominalnych Zaimportuj dane dotyczące zakupów warzyw (plik transakcje_warzywa.csv). Pamiętaj, by ID oznaczyd jako id, a pozostałe atrybuty (produkty) jako binominal. 2
W RM można generowad reguły asocjacyjne za pomocą operatora Create Association Rules. Jednak wymaga on na wejściu zbioru częstych podzbiorów produktów. W tym celu użyjemy implementacji algorytmu FP-Growth: Poszukujemy reguł o minimalnej ufności 0.8, oraz o minimalnym wsparciu 0.4: 3
Znalezione częste podzbiory: Znalezione reguły: Zwród uwagę, że wśród znalezionych reguł są (7 oraz 8): Papryka -> Brokuły oraz Brokuły -> Papryka. Jednak przykładowo, obok reguły (9) Szparagi -> Papryka nie ma reguły Papryka -> Szparagi. 4
W celu sprawdzenia, która transakcja pasuje do danej reguły, można wykorzystad operator Apply Association Rules. Z dokumentacji RM: This operator creates a new confidence attribute for each item occurring in at least one conclusion of an association rule. Then it checks for each example and for each rule, if the example fulfills the premise of the rule, which it does, if it covers all items in the premise. An example covers an item, if the attribute representing the item contains the positive value. If the check is positive, a confidence value for each item in the conclusion is derived. 5
3. Reguły asocjacyjne dla danych numerycznych W przypadku danych zawierających atrybuty numeryczne, należy poddad je dyskretyzacji (operator Discretize by Frequency), a powstałe atrybuty nominalne przekształcid na zbiór atrybutów binarnych (operator Nominal to Binominal). Operator Discretize by Frequency koduje każdą wartośd numeryczną jako nominalny atrybut oznaczający przedział (bin), do którego ta wartośd wpada. Szerokośd przedziałów w tym przykładzie jest ustalana tak, by każdy z nich był jednakowo liczny dla danego zbioru trenującego stąd przedziały te nie muszą byd jednakowej długości. 6
Przykładowo dla danych irysów (uwaga: to nie jest rozwiązanie zadania tworzenia klasyfikatora dla trzech klas irysów): Oryginalne dane (atrybuty numeryczne): 7
Przekształcenie do atrybutów nominalnych (4 atrybuty nominalne): Przekształcenie do atrybutów binarnych (5x4 = 20 atrybutów binarnych): 8
Wyniki częste podzbiory: 9
Wyniki reguły: Sprawdzenie: 10