Analiza koszykowa. Algorytm a priori – Statystyczna analiza zachowań konsumenckich oparta na regule asocjacji.

meto1

 

Analiza koszykowa

WPROWADZENIE

W tym miejscu znajdziecie opis technik pozwalających na wykrycie asocjacji, tj. powiązań albo skojarzeń między specyficznymi wartościami zmiennych kategorialnych, w dużych zbiorach danych. Takie zadanie cechuje zróżnicowane projekty data mining, ale też projekty text mining, będące podkategorią tych pierwszych. Te techniki są stosowane w szerokim wachlarzu działalności biznesowej i badawczej ze względu na swoją wysoką skuteczność. Oferują rozległe możliwości, można zbadać upodobania klientów, wspomóc dział HR, albo, np. zająć się badaniami historii rozwoju języka. Badacze mogą zaobserwować struktury i zależności pochowane w gigantycznych zbiorach danych. Można np. wywnioskować, że „petenci wybierający produkt A, chętnie też sięgają po produkt B lub C” lub: „podwładnym do gustu przypadła reorganizacja X, inaczej niż Y, a podoba im się koncepcja Z”. Algorytm a priori pozwala na sprawne przetwarzanie wielkiej ilości zasobów, tak aby zlokalizować tego typu powiązania, z wykorzystaniem do ich wyszukiwania, zdefiniowanych wstępnie wartości progowych.

Szczególne wymagania analizy.

Tabele wielodzielcze, a tym bardziej tabele wielokrotnych odpowiedzi mogą zostać wykorzystane do analizowania danych typu, o którym jest tutaj mowa. Jednak w wypadku, gdy ilość różnych kategorii jest znaczna, co więcej jest nieznana przed rozpoczęciem analizy, a także gdy stopień podziału nie jest początkowo wiadomy dla istotnych zasad asocjacji, tabelaryzowanie z użyciem Statystyk podstawowych jawi się jako uciążliwe, a wręcz w praktyce nie do zrobienia. Powróćmy do przykładu z księgarnią. Nie sposób zliczyć tytułów wszystkich książek, jest to ilość właściwie nieskończona. Co za tym idzie, tworząc tabelę, gdzie każdy tytuł odpowiadałby osobnemu wymiarowi, a nabycie książki równałoby się przypisaniu wartości (tak/nie) w każdym wymiarze, to finalna tabela wielodzielcza okazałby się gigantyczna, a w niej znalazłyby się w większości puste komórki. Alternatywą mogłoby być stworzenie tabel każdej potencjalnej dychotomii, dla każdego z produktów w asortymencie, co pokazałoby nam asocjacje par produktów. Aczkolwiek w takim wypadku, liczba powstałych tabel byłaby stanowczo zbyt wielka, a informacje z nich płynące mało skondensowane. Co jeszcze gorsze, wszelkie ewentualne potrójne asocjacje nie będą dla nas widoczne. Algorytm a priori, używany w analizie koszykowej, nie dość że wyłapie automatycznie związki („tabele wielodzielcze”), które są istotne, (tabele wielodzielcze wypełnione treścią, a nie pustymi komórkami), ale również zdefiniuje stopień podziału dla tabel zawierających znaczące reguły asocjacji.

Konkludując: analizę koszykową stosujemy aby odkryć reguły takie jak: jeśli X to raczej także Y, gdzie X i Y to pojedyncze wartości (kategorie), pozycje, słowa itp., lub być może związki wartości, słów itp. (np. jeżeli (zarost=wąsik i rozrywka=komputer) to (mag=level potężny i częstotliwość sexu=znikoma)). Program znajduje zastosowanie w analizie prostych zmiennych kategorialnych, zmiennych dychotomicznych, jak i zmiennych wielokrotnych odpowiedzi. Algorytm określi zasady asocjacji, bez konieczności wcześniejszego wpisania liczby kategorii obecnych w danych ani maksymalnego poziomu faktoryzacji, czy też złożoności ważnych asocjacji. Algorytm stworzy tabele wielodzielcze nie zmuszając nas do wstępnego określenia liczby jej wymiarów i liczby kategorii dla każdego wymiaru. Z tego powodu algorytm ten jest adekwatny dla data i text miningu w bardzo dużych bazach danych.

PROCEDURY OBLICZENIOWE I TERMINOLOGIA

Zmienne jakościowe.
Zmienna jakościowa jest pojedynczą zmienną (kolumną) posiadającą kody lub słowa określające kategorie. Standardowym przykładem jest chociażby zmienna Płeć, posiadające dwie wartości: Kobieta i Mężczyzna.

Zmienne wielokrotnych odpowiedzi.

W skład tego typu zmiennej wchodzi zwykle wiele zmiennych (kolumn), jest więc ona de facto listą zmiennych. Jej zmienne składowe (każda z nich) zawierają kody lub wartości tekstowe określające pojedynczy „wymiar” albo transakcję. Nieźle to widać na przykładzie opisanych w pojedynczym rekordzie zakupów dokonywanych przez klienta. Taki rekord może posiadać jeden albo wiele sprzedanych produktów, a kolejność pozostaje dowolna. I jest to klasyczny format, służący do odnotowywania tego typu informacji.

Wielokrotne dychotomie.

W tego typu formacie, na każdy obiekt albo klasę przypada odmienna zmienna, której (dychotomiczne, dwustanowe) wartości pokazują czy określona kategoria może być zastosowana do danego przypadku, czy nic z tego. Przyjmijmy dla przykładu, że pewien dostawca rozpisał arkusz, gdzie w nagłówkach kolejnych kolumn wstawił nazwy swoich towarów. Wszystkie przypadki sprzedaży, tj. każdy wiersz, zostaje zarejestrowany poprzez wpisanie do każdej kolumny (w przeznaczonym do tego wierszu), wartości określających, czy sprzedano podczas transakcji dany produkt.

Reguły asocjacji: Jeżeli A to B.

Algorytm a priori określa, według danych, reguły asocjacji, wyglądające tak: Jeżeli A to B (ang. If Body then Head), gdzie A (poprzednik) i B (następnik) są kodami (wartościami tekstowymi) lub związkami kodów. Przykładowo: Jeżeli (auto=Lamborghini i płeć=facet i wiek<21) to (ryzyko=wysokie i składka ubezpieczeniowa=horrendalna). W tym wypadku A=(auto=Lamborghini i płeć=facet i wiek<21), B=(ryzyko=wysokie i składka ubezpieczeniowa=horrendalna).

Wstępny przegląd danych: poziom wsparcia.

Tuż po rozpoczęciu analizy program sprawdza każdą zmienną (z tych wybranych do analizy) aby wydobyć unikalne kody lub wartości tekstowe. W tym samym czasie oblicza względną częstotliwość występowania kodów. Prawdopodobieństwo, iż transakcja (przypadek) posiada dany kod ma nazwę wsparcia. W następnych „przeglądach” danych wsparcie owo również zostaje wyliczone, jako wspólne prawdopodobieństwo (względna częstość współwystępowania) dla par, trójek itd. Kodów, osobno dla części A i B każdej reguły asocjacji.

Drugi przegląd danych: zaufanie i korelacja.

Po inicjalnym przejściu przez dane odnotowany jest każdy kod o wsparciu o mniejszej wartości od zadanej. Polega to na tym, że program podsumowuje warunkowe prawdopodobieństwo dla każdej pary kodów posiadającej wsparcie silniejsze niż zadana, minimalna wartość. To warunkowe prawdopodobieństwo, że obserwacja (transakcja) posiadająca kod X, posiada również Y, nosi nazwę poziomu zaufania. Ogólnie, w kolejnych przelotach przez dane, zaufanie oznacza warunkową szansę danego B (następnika reguły asocjacji), z zastrzeżeniem, że dane A (poprzednik odpowiedniej reguły).

Co więcej, liczone jest wsparcie dla każdej pary kodów i z tego również, poziom korelacji. Korelacja dla pary kodów {X, Y} wynika z poziomu wsparcia pary podzielonego przez pierwiastek kwadratowy z iloczynu wsparcia dla X i wsparcia dla Y. Po drugim przejściu przez dane program zachowuje w pamięci te pary kodów, które po pierwsze cechują się poziomem zaufania większym od zadanej, minimalnej wartości; po drugie, posiadają poziom wsparcia większy od zadanej, minimalnej wartości; po trzecie korelują mocniej od zadanej, minimalnej wartości.

Kolejne przejścia przez dane: Maksymalna liczba kodów w A i w B.

Wertując dane, w następnych krokach, program wylicza wsparcie, zaufanie i korelację par kodów (czyli asocjacji pomiędzy jednostkowymi kodami), trójek kodów etc. W we wszystkich następnych krokach program określa zasady asocjacji z gatunku: Jeżeli A to B, w których B i A są jednostkowymi kodami lub związkami kodów.

Da się uzyskać wyjątkowo skomplikowane zasady asocjacji (np.: Jeśli Y1 i Y2 … i Y23 to Z1 i Z2 … i Z23); a proces ustanie kiedy w kolejnym kroku nie zostaną odnalezione kolejne asocjacje realizujące reguły przekroczenia odpowiednich wartości wsparcia, zaufania i korelacji. Aby nie dopuścić do nadmiernej złożoności, użytkownik ma możliwość ustalenia maksymalnej liczby kodów w A (poprzedniku) i w B (następniku) reguły asocjacji.

TABELARYCZNE PRZEDSTAWIENIE ASOCJACJI

Reguły asocjacji wyglądają tak: Jeżeli A to B (ang. If Body then Head), gdzie A (poprzednik) i B (następnik) są kodami (wartościami tekstowymi) lub związkami kodów. Przykładowo: Jeżeli (auto=Lamborghini i płeć=facet i wiek<21) to (ryzyko=wysokie i składka ubezpieczeniowa=horrendalna). Najważniejsze statystyki, które się wylicza dla reguł asocjacji to: Wsparcie (względna częstość poprzednika oraz następnika), Zaufanie (warunkowe prawdopodobieństwo następnika, jeśli poprzednik) i Korelacja (wsparcie poprzednika i następnika podzielone przez pierwiastek kwadratowy z iloczynu wsparć poprzednika i następnika). Uzyskane nominały tych statystyk można wsadzić w arkusz:

INTERPRETACJE I PORÓWNANIE WYNIKÓW

Kiedy zestawimy rezultaty z poszukiwań reguł asocjacji z tymi uzyskanymi w zwyczajnych tabelach liczności i wielodzielczych, zobaczymy, że niekiedy kody o wysokich częstościach nie będą uwzględnione w regułach asocjacji. To może się jawić jako zaskakujące.

Żeby zobrazować taki przypadek, posłużymy się przykładem amerykańskich ubezpieczeń komunikacyjnych. Tabela częstości niewątpliwie pokazałby, że przeważająca część amerykańskiego społeczeństwa korzysta z wehikułów Forda, GM i Chryslera. Jednakowoż prawdopodobne jest, że żadna z tych marek nie zostanie jednoznacznie skojarzona z konkretnym typem ubezpieczenia, czyli w języku statystyki, nie posiądzie wysokiego zaufania ani korelacji w regule asocjacji. Natomiast, stosunkowo rzadkie samochody (np. Ferrari), mogą cechować się wyczuwalną asocjacją (np. z ubezpieczeniem o wysokim ryzyku). Z tego mogłaby wyniknąć reguła asocjacji Jeśli Auto=Ferrari to Składka=Bardzo duża. Przyglądając się zwykłej tabeli rozdzielczej, skojarzenie o wysokim stopniu prawdopodobieństwa, w tym stylu właśnie (Auto wg Składka), moglibyśmy stosunkowo prosto przeoczyć.