EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM V ANALIZA UŻYTKOWANIA SIECI ANALIZA LOGÓW + MINING NAVIGATIONAL PATTERNS + A-PRIORI 1. Plan laboratorium V Formaty pliku log serwera Wstępne przetwarzanie logów Podstawy eksploracyjnej analizy Wykorzystanie łańcuchów Markowa do Mining Navigational Patterns Algorytm A-Priori odkrywanie zbiorów częstych i reguł asocjacyjnych 2. Analiza użytkowania sieci na podstawie plików log serwera Jak można odpowiedzieć na następujące pytania? Która strona jest najpopularniejszym punktem wejścia? W jakiej kolejności strony są odwiedzane? Które inne witryny skierowały użytkowników do naszej witryny? Ile stron odwiedzają użytkownicy podczas typowej wizyty? Jakie jest obciążenie serwera w danej godzinie, dniu tygodnia? Jak długo typowy gość przebywa na naszej stronie? Która strona jest najczęściej punktem wyjścia użytkowników? 3. Plik log serwera Dla każdego żądania przesłanego do serwera z przeglądarki, automatycznie generowana jest odpowiedź, a jej wynik jest zapisywany w plikach log; Odpowiedź to rekord zapisany w pojedynczej linii, który jest dołączony do pliku tekstowego ASCII znajdującego się na serwerze. 141.243.1.172 [29:23:53:25] "GET /Software.html HTTP/1.0" 200 1497 query2.lycos.cs.cmu.edu [29:23:53:36] "GET /Consumer.html HTTP/1.0" 200 1325 tanuki.twics.com [29:23:53:53] "GET /News.html HTTP/1.0" 200 1014 Każda linia zawiera następujące pola: Pole adresu IP hosta (jeśli jego nazwa jest w serwerze DNS, to zamiast IP jest nazwa hosta); Pole data/czas (tu [DD:HH:MM:SS], zwykle [DD/Mon/YYYY:HH:MM:SS offset] 09/Jun/1988:03:37:00-0500); Pole żądania HTTP (metoda http (najpopularniejsza GET; może być HEAD, PUT, POST), URL (identyfikator zasobu); nagłówek, protokół); Pole kodu odpowiedzi HTTP (2xx sukces, 4xx błąd; np. 200 - OK, 204 brak zawartości, 400 - nieprawidłowe zapytanie, 404 - nie znaleziono 500 błąd wewnętrzny serwera; patrz: Wikipedia Kod odpowiedzi http); Pole wielkości transferu rozmiar pliku (strony, pliku graficznego, itp.) w bajtach wysłanego przez serwer do przeglądarki klienta (tylko żądania GET, które zostały zakończone pomyślnie mają dodatnie wartości w polu wielkość transferu; w przeciwnym razie - lub 0); - 1 -
Różne formaty pliku log używane w zależności od konfiguracji sieci: Format CLF (common log format) Pole adresu IP hosta, pole nazwy użytkownika (przechowywanie informacji o tożsamości, jeśli serwer sprawdza tożsamość rzadko używane), pole authuser (za kogo użytkownik się podaje, aby uzyskać dostęp do katalogów zabezpieczonych hasłem), pole daty/czasu, pole żądania http, pole kodu odpowiedzi, pole wielkości transferu. Format ECLF (extended CLF) Dwa dodatkowe pola: pole adresu strony odsyłającej i pole przeglądarki klienta 149.1xx.120.116 - - smithj [28/OCT/2004:20:27:32-5000] GET /Default.htm http/1.1 200 1270 http:/www.dataminingconsultant.com/ Mozilla /4.0+ (compatible;+msie+6.0;+windows+nt+5.0) Nazwa użytkownika - - Authuser smithj; Adres strony odsyłającej - http:/www.dataminingconsultant.com Przeglądarka: Mozilla/4.0 Format Microsoft IIS 4. Wstępne przetwarzanie danych do analizy Dlaczego musimy przetworzyć plik log zanim przystąpimy do analizy? Wyczyszczenie danych i filtrowanie (usunięcie ze zbioru żądań wygenerowanych automatycznie) Wydobycie zmiennych (jeśli to konieczne) z pól złożonych Z pola data/czas wydobądź zmienną data i czas Z pola żądania http, wydobądź metodę żądania, URL i wersję protokołu; Utwórz timestamp (znacznik czasu) dla każdego wpisu (oblicz ile dni między wpisem a punktem odniesienia; pomnóż przez 86400; dodaj do tego czas w sekundach od północy do chwili, która jest reprezentowana przez czas we wpisie pliku log); Odfiltruj dodatkowe żądania wpbfl2-45.gate.net [29:23:54:15] "GET / HTTP/1.0" 200 4889 wpbfl2-45.gate.net [29:23:54:16] "GET /icons/circle_logo_small.gif HTTP/1.0" 200 2624 wpbfl2-45.gate.net [29:23:54:18] "GET /logos/small_gopher.gif HTTP/1.0" 200 935 wpbfl2-45.gate.net [29:23:54:19] "GET /logos/small_ftp.gif HTTP/1.0" 200 124 wpbfl2-45.gate.net [29:23:54:19] "GET /icons/book.gif HTTP/1.0" 200 156 wpbfl2-45.gate.net [29:23:54:19] "GET /logos/us-flag.gif HTTP/1.0" 200 2788 wpbfl2-45.gate.net [29:23:54:20] "GET /icons/ok2-0.gif HTTP/1.0" 200 231 Dla metody GET, analizujemy najczęściej pojawiające się w żądaniu rozszerzenia pliku; Określamy, które mogą być nieistotne do modelowania zachowania użytkownika; Zwykle można bezpiecznie pominąć pliki graficzne (.gif.,.jpg,.xbm) (chyba, że witryna traktuje grafikę jako zawartość i chcemy śledzić ściągnie plików lub analityk jest zainteresowany obserwacją zawartości łącz); - 2 -
Usuwamy z pliku log pliki, które nie są istotne dla naszego zadania; Zatrzymujemy pliki z następującymi rozszerzeniami:.asp,.doc,.exe,.gz,.htm,.html,.pdf,.ppt,.ps,.tar,.txt,.wp,.wpd,.xls,.xml,.zip oraz żądania z brakiem rozszerzenia pliku, które wskazują na stronę domyślną (to tylko przykład rozszerzenia plików, które zostają zachowane zależą od analityka); Usunięcie wpisów pochodzących od robotów Roboty, pełzacze, pająki, boty; Ich zachowanie różni się od zachowania ludzi (sprawdza każdy możliwy link); Zidentyfikowanie nazwy robota w polu przeglądarki (jeśli jest dostępne) boty często zamieszczają adres URL lub e-mail (http://www.google.com/bot.html; MSNbot (search.msn.com/msnbot.htm), Yahoo! Slurp (help.yahoo.com/help/us/search/slurp), Scirus (robot służący do celów naukowych; program Server Alive URL check); Identyfikacja pojedynczego użytkownika większość wejść na strony jest anonimowa Cookie (tekst, określony przez serwer, zawierający informacje, które serwer chce umieścić; uniknięcie ponownego logowania; personalizacja stron; zachowanie koszyka w sklepie internetowym); Pole adresu IP hosta (problem - serwery proxy); pole użytkownika (rzadko wypełniane); Pole przeglądarki (jeśli nawet IP jest takie samo, można uznać, że jeśli pole przeglądarki różni się dla różnych wpisów, żądania pochodzą od różnych użytkowników); Analiza pola adresu odsyłającego wraz z topologią strony (jeśli nie ma bezpośredniego połączenia, prawdopodobnie nowy użytkownik); Procedura identyfikacji: Uporządkuj plik log według adresu IP, a potem wg znacznika czasu; Dla każdego IP, zidentyfikuj przeglądarkę jako należącą do osobnego użytkownika; Zastosuj informację o ścieżce, znajdującą się w polu adresu odsyłającego i topologię witryny, aby określić, czy jest bardziej prawdopodobne, że zachowanie należy do dwóch lub większej liczby użytkowników; Połącz informację z poprzednich punktów z dostępnymi ciasteczkami oraz informacjami rejestracyjnymi; - 3 -
Identyfikacja sesji użytkownika określenie dla każdej wizyty, których stron zażądano i określenie czasu wyświetlania każdej z nich; H1 - Całkowity czas trwania sesji nie może przekraczać progu γ. Mając dany znacznik czasu t 0 początkowego żądania w sesji S, żądanie związane ze znacznikiem t jest dodawane do S, jeśli t-t 0 γ. H2 - Maksymalny dopuszczalny czas pomiędzy żądaniami należącymi do tej samej sesji nie może przekraczać progu δ (timeout); w badaniach określono go na 25,5 minuty; wielu analityków i autorów programów komercyjnych ustala tę wartość na 30 minut (1800 sekund); Mając dane znaczniki czasu t 1 dla żądania przypisanego do sesji S i t 2 dla nowego żądania, to drugie jest przypisywane o sesji S, jeśli t 2 t 1 δ. H-ref żądanie q jest dodawane do sesji S, jeśli adres odsyłający dla q był uprzednio wywołany w ramach S; w przeciwnym razie, q rozpoczyna nową sesję; q może należeć do wielu konstruowanych sesji; potrzebna jest reguła, która rozstrzygnie niejednoznaczność np. dodaj q do ostatnio otwartej sesji spełniającej powyższy warunek. Uzupełnienie ścieżek przycisk Wstecz strona ładowana z pamięci podręcznej, co powoduje dziury w zapisach plików log serwera; znajomość topologii witryny umożliwia ich uzupełnienie (wykorzystaj regułę, która wymaga najmniejszej liczby przejść wstecz) - 4 -
Adres IP Czas Metoda Ares odsyłający Agent 987.654.32.1 00:00:02 GET A.html HTTP/1.1 - Mozilla/4.0 987.654.32.1 00:00:05 GET B.html HTTP/1.1 A.html Mozilla/4.0 987.654.32.1 00:00:06 GET A.html HTTP/1.1 - Mozilla/5.0 987.654.32.1 00:00:10 GET E.html HTTP/1.1 B.html Mozilla/4.0 987.654.32.1 00:00:17 GET K.html HTTP/1.1 E.html Mozilla/4.0 987.654.32.1 00:00:20 GET C.html HTTP/1.1 A.html Mozilla/5.0 987.654.32.1 00:00:27 GET I.html HTTP/1.1 - Mozilla/4.0 987.654.32.1 00:00:36 GET G.html HTTP/1.1 C.html Mozilla/5.0 987.654.32.1 00:00:49 GET O.html HTTP/1.1 I.html Mozilla/4.0 987.654.32.1 00:00:57 GET M.html HTTP/1.1 G.html Mozilla/5.0 987.654.32.1 00:03:15 GET H.html HTTP/1.1 - Mozilla/5.0 987.654.32.1 00:03:20 GET N.html HTTP/1.1 H.html Mozilla/5.0 987.654.32.1 00:41:27 GET E.html HTTP/1.1 K.html Mozilla/4.0 987.654.32.1 00:41:44 GET L.html HTTP/1.1 E.html Mozilla/4.0 Analiza po samym IP Użytkownik 1 Analiza po IP + Agent Użytkownik 1: A B E K I O E L Użytkownik 2: A C G M H N Adres odsyłujący + topologia Dla użytkownika 1: brak połączenia między K oraz I Prawdopodobne, że jest to inny użytkownik Użytkownik 1: A B E K E L Użytkownik 2: A C G M H N Użytkownik 3: I O A B C D E F G H I J K L M N O P Identyfikacja sesji wg H2 (timeout=30 min.): Sesja 1 (Użytkownik 1: A B E K ) Sesja 2 (Użytkownik 2: A C G M H N) Sesja 3 (Użytkownik 3: I O) Sesja 4 (Użytkownik 1: E L) Uzupełnianie ścieżek: Dla użytkownika 2 nie ma bezpośredniego połączenia między M oraz H Mógł nacisnąć dwa razy Wstecz i ze strony C przejść do H Sesja 1 (Użytkownik 1: A B E K ) Sesja 2 (Użytkownik 2: A C G M G C H N) Sesja 3 (Użytkownik 3: I O) Sesja 4 (Użytkownik 1: E L) - 5 -
5. Eksploracyjna analiza użytkowania Proste techniki, które sporo mówią o zachowaniu użytkownika. Liczba żądań w sesji (długość wizyty wyrażona liczbą żądań w sesji; rozkład prawoskośny średnia wartość jest większa niż mediana, wartość modalna jest równa wartości minimalnej, wartość maksymalna jest bardzo duża; zafałszowane dane - wyszukiwarki i roboty często systematycznie przechodzą po całej witrynie); Pytania: Dlaczego osoby odwiedzające stronę tak szybko ją opuszczają? Czy witryna jest dostatecznie przyjazna użytkownikowi? W jaki sposób zmienić witrynę, by zachęcić odwiedzających do pozostania? Długość sesji (session duration) - problem: nie wiadomo, ile czasu użytkownik spędził na ostatniej stronie; często mediana jest bardziej wiarygodnym wynikiem typowej długości sesji niż średnia Wybierz sesje, które zawierają więcej niż jedno żądanie; Dla każdej sesji odejmij znacznik pierwszego żądania od znacznika dla ostatniego żądania; Dużo niepewności: niedoszacowanie, bo nie uwzględniamy czasu spędzonego na ostatniej stronie Zależność między długością sesji a liczbą żądań użytkownika Wykres punktowy - liczba żądań (oś x), długość sesji (oś y); wiele punktów dla danego x Analiza regresji (liniowej) Oszacowana długość sesji jest równa 112 sekund plus 59 sekundy razy liczba żądań Średni czas na stronę w ramach sesji - długość sesji/(liczba żądań 1) Zbyt mały średni czas może sugerować działanie robota konieczność cofnięcia do etapu wstępnego przetwarzania danych - 6 -
6. Sposób reprezentacji danych dla analizy użytkowania sieci (Web Usage Mining) Przygotowanie danych do analizy pozwala na wyodrębnienie: Zbioru n wyświetleń stron (pageviews) P = {p 1, p 2,, p n } Zbioru m sesji użytkownika/transakcji T = {t 1, t 2,, t m }, gdzie każde ti jest podzbiorem P t t t t ( p1, w( p1)),( p2, w( p2 )),...,( pl, w( p t t t l )) Wagi najczęściej są binarne lub zależne od czasu wizyty na danej stronie (powszechna jest normalizacja czasów, by uwzględnić specyfikę zachowania użytkowników). Dla wielu zadań (klastrowanie, odkrywanie reguł asocjacyjnych) kolejność żądań w ramach sesji nie ma znaczenia User-pageview matrix (nazywana też transaction matrix) Uwzględnienie analizy semantycznej content enhanced transaction matrix Pageview-feature matrix PFM (np. pageview-term matrix) - 7 -
7. Mining Navigation Patterns Wykorzystanie łańcuchów Markova (Markov Chains) Pomysł: sekwencje zapisu poruszania się po sieci (określonym serwisie) (navigational sequences) można przedstawić jako diagram przejść ze strony do strony Łańcuch Markova składa się ze zbioru stanów (stron lub wyświetleń stron w serwisie): S = {s 1, s 2,, s n } oraz ze zbioru prawdopodobieństw przejść między stanami: P = {p 1,1,, p 1n, p 21, p 2n,., p n,1,, p nn } W modelu łańcucha Markova prawdopodobieństwo przejścia ze strony s i do strony s j oblicza się jako iloraz liczby wystąpień s j po s i do liczby wystąpień s i. Ścieżka r ze stanu s i do stanu s j to sekwencja stanów z prawdopodobieństwami przejścia większymi niż 0. Prawdopodobieństwo osiągnięcia stanu s j ze stanu s i poprzez ścieżkę r to iloczyn prawdopodobieństw wzdłuż ścieżki: p, K ( r) p k k Prawdopodobieństwa osiągnięcia stanu s j ze stanu s i jest sumą po wszystkich ścieżkach, po których można dojść z s j do s i : p ( j \ i) p( r) r R 1-8 -
8. Algorytm A-Priori Model Market-Basket: zbiór produktów (items), np. sprzedawanych w supermarkecie zbiór koszyków (baskets), z których każdy jest małym zbiorem produktów, np. rzeczy, które klient kupuje danego dnia Analiza dotyczy powiązań między produktami w ramach koszyków. Ogólny cel: znajdź zbiory produktów, które pojawiają się w koszykach często mają wysokie wsparcie (powyżej progu (suport threshold) s) Wsparcie dla zbioru produktów I = liczba koszyków, które zawierają wszystkie produkty z I Przykłady wykorzystanie pomysłu: produkty-koszyki w standardowym rozumieniu piwo-pieluszki koszyki=zdania, produkty=dokumenty zawierające te zdania produkty, które zbyt często pojawiają się razem mogą reprezentować plagiaty (produkty nie muszą być w koszykach) koszyki=strony w sieci, produkty=słowa słowa, które pojawiają się razem często w dużej liczbie dokumentów mogą wskazywać na interesujące relacje term associations ( Brad, Angelina ) koszyki=słowa, produkty=dokumenty, strony znajdź powiązania między dokumentami na podstawie ich zawartości zbiory częste to grupy dokumentów, w których wiele słów pojawia się wspólnie koszyki=sesja użytkowanka, produkty=strony odwiedzone w czasie sesji np. 30% klientów, którzy odwiedzili /special-offer.htm złożyli zamówienie na /products/software Algorytm A-Priori: Pomysł: jeśli zbiór produktów pojawia się co najmniej s razy, to każdy z jego podzbiorów też pojawia się co najmniej s razy Jeśli produkt i nie pojawia się w s koszykach, to żadna para (w ogólności nadzbiór właściwy) zawierająca i nie może się pojawić w s koszykach Znajdź zbiory częste składające się z pojedynczych produktów (frequent items), które pojawiają się co najmniej w s koszykach Rozważ zbiory częste składające się z dwóch produktów, które pojedynczo pojawiały się wystarczająco często. Zbadaj, które spośród nich pojawiały się wystarczająco często (co najmniej s razy) W ogólności dla k-sets (zbiorów składających się z k produktów) C k = kandydat na zbiór częsty = zbiory, które mogą być zbiorami częstymi (support >= s) w świetle wiedzy, którą posiadamy dla zbiorów o liczności k-1 L k = zbiory częste o rozmiarze k C 1 = wszystkie pojedyncze produkty W ogólności, L k = zbiory z C k, dla których suport >= s C k+1 = zbiory składające się z k+1 produktów, których wszystkie podzbiory k-elementowe są w L k (są częste) - 9 -
Reguły asocjacyjne: Stwierdzenia jeżeli to dotyczące zawartości koszyków {i1, i2,, ik} j należy czytać następująco: jeśli koszyk zawiera wszystkie produkty i1, i2,, ik, to prawdopodobne jest (likely), że zawiera także produkt j Współczynnik pewności tej reguły to prawdopodobieństwo, że występuje j mając dane i1, i2,, ik (w liczniku liczba wystąpień razem wszystkich produktów z części warunkowej oraz części decyzyjnej; w mianowniku liczba wystąpień razem wszystkich produktów z części warunkowej) Odkrywanie reguł asocjacyjnych: Zadanie: znajdź wszystkie reguły asocjacyjne ze wsparciem co najmniej s (support >= s) oraz współczynnikiem pewności co najmniej c (confidence >= c) Reguła {i1, i2,, ik} j ma wysokie wsparcie, jeśli {i1, i2,, ik, j} będzie zbiorem częstym Reguła {i1, i2,, ik} j ma wysoki współczynnik pewności jeśli liczba wystąpień {i1, i2,, ik} nie jest znacząco większa od {i1, i2,, ik, j} Wykorzystanie: Wykorzystaj reguły, by dynamicznie przedstawiać ofertę dla konkretnego użytkownika Prefetch stron, które najprawdopodobniej odwiedzi użytkownik Site optimization (organizacja struktury serwisu) - 10 -
10. Ćwiczenia 1. Dana jest zapis przebiegu 16 sesji. Oblicz P(B\A), P(C\B) i P(C\A), P(D/A) Sesje: 6: A, B, C 12: B, C B 1: A, B 7: A, C 13: B, C A 2: A, B 8: A, C 14: B, C, D 3: A, B, C 9: A, B, D 15: B, C C D 4: A, B, C 10: A, B, D 16: B, D 5: A, B, C, D 11: A, B, D l. wystąpień A = l. wystąpień A = l. wystąpień B = P(B\A)= l. wystąpień AB = l. wystąpień AC = l. wystąpień BC = P(C\B)= P AB = P AC = P BC = P(C\A)= l. wystąpień B = l. wystąpień C = P(D\A)= l. wystąpień BD = l. wystąpień CD = P BD = P CD = 2. Dana jest baza transakcji: {bread milk butter beer} {bread butter water jam beer} {beer diapers bread butter jam} {butter milk juice} {diapers beer juice water} Przy założeniu minimalnego wsparcia 0.6 (minsupport=0.6), znajdź wszystkie zbiory częste. Dla minimalnego współczynnika pewności 0.7 (minconfidence=0.7), znajdź wszystkie reguły asocjacyjne postaci item1 {item2, item3}. Ile jest takich pewnych reguł asocjacyjnych (o współczynniku pewności 1.0)? C1 L1 Support Reguła 1 {bread} {butter} {beer} {milk} Confidence = {water} Reguła 2 {jam} {diapers} {juice} C2 L2 Support Confidence = Reguła 3 C3 L3 Support Confidence = Regułę postaci item1 {item2, item3} można utworzyć tylko z zbiorów częstych składających się z 3 produktów - 11 -
11. Omówienie zadań do samodzielnego wykonania 1. [2] Rozważ poniższą tabelę reprezentującą fragment pliku logu (dokonano już czyszczenia danych i identyfikacji użytkownika; - w polu referrer reprezentuje dostęp z zewnątrz i zakłada się, że za każdym razem jest to inne źródło; U1 oznacza, że identyfikacja po IP i pou przeglądarka nie pozwoliła na identyfikację różnych użytkowników): Time (hrs:mins) User Page Referrer 00:30 U1 A - 00:31 U1 C - 00:35 U1 B A 00:36 U1 F C 00:48 U1 D B 00:56 U1 B C 00:58 U1 I F 01:02 U1 J B 01:04 U1 A C 02:01 U1 B - 02:08 U1 J B 02:13 U1 E B 02:19 U1 D B 02:25 U1 C - 02:34 U1 B C 02:37 U1 F C 02:38 U1 J B Graf połączeń stron w serwisie wygląda następująco: A B C H J E D F I a) [1.5] Używając heurystyk rozpoznawania sesji podaj wyróżnione przez Ciebie sesje z zastosowaniem: h1 (próg 25min), h2 (próg 10min), oraz href. b) [0.5] Załóżmy, że sesja dla użytkownika U składa się z następujących żądań: Time User Page Referrer t1 U A - t2 U B A t3 U J B t4 U D B t5 U C B t6 U F C t7 U I F t8 U H F t9 U E B Uzupełnij braki w ścieżkach wynikające z cachowania stron. Jeśli jest wiele możliwych uzupełnień, wybierz to, dla którego liczba wywołań back jest najmniejsza. - 12 -
2. [3] Dana jest struktura poruszania się użytkowników po stronach w ramach konkretnego serwisu, przy czym A oznacza wizytę na stronie głównej, E oraz F reprezentują włożenie przedmiotu do koszyka zakupów, a G kupno przedmiotów, które znajdują się w koszyku. Dany jest także zapis sesji (plik session.txt, w którym każdy wiersz reprezentuje ciąg stron na których był użytkownik w czasie pojedynczej sesji). Używając modelu łańcucha Markova, oblicz prawdopodobieństwa przejść między stronami w sieci (zapisz je na krawędziach grafu sieci). [0.5] Następnie odpowiedz na pytania: i) jakie jest prawdopodobieństwo, że użytkownik rozpoczynający sesję ze strony głównej, włoży coś do koszyka zakupów? [0.5] ii) jakie jest prawdopodobieństwo, że użytkownik rozpoczynający sesję ze strony głównej, dokona zakupu? [0.5] iii) jakie jest prawdopodobieństwo, że użytkownik rozpoczynający sesję od strony D, dokona zakupu? [0.5] iv) zakładając, że D reprezentuje kampanię promocyjną (np. baner reklamujący na zewnętrznej stronie), odpowiedz na pytanie, czy kampania ta jest dobrze prowadzona (odnieś się do odpowiedzi na pytania ii) oraz iii)). [1] 3. [2] Dany jest zbiór danych dotyczący stanu pogody oraz zanotowanych dla niego wypadków. Każda linia odpowiada jednemu wydarzeniu: car_accident rain lightning wind clouds fire fire clouds rain lightning wind car_accident fire wind clouds rain wind lightning fire rain clouds clouds wind car_accident rain lightning clouds fire lightning fire car_accident Dwa osobne podzadania: Jakie są powody wypadków samochodowych (car_accident)? Jakich reguł asocjacyjnych potrzebujesz, by odpowiedzieć na to pytanie. Oblicz współczynnik pewności i wsparcie dla tych reguł. Jaki jest najbardziej prawdopodobny (najczęstszy) powód wypadków samochodowych? [0.5] Znajdź wszystkie reguły asocjacyjne z minimalnym wsparciem 0.6 i minimalnym współczynnikiem pewności 1.0 (reguły nie tylko związane z car_accident). Wykorzystaj algorytm A-Priori i pokaż poszczególne kroki jego działania. [1.5] - 13 -