EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM V ANALIZA UŻYTKOWANIA SIECI ANALIZA LOGÓW + MINING NAVIGATIONAL PATTERNS + A-PRIORI

Podobne dokumenty
EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM V INDEKS ODWROTNY + WEB ADVERTISING + MINING NAVIGATIONAL PATTERNS + APRIORI

EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM III ANALIZA UśYTKOWANIA SIECI

Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych Proces odkrywania reguł asocjacyjnych. Data Mining Wykład 2

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

1. Odkrywanie asocjacji

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING. EKSPLORACJA DANYCH Ćwiczenia. Adrian Horzyk. Akademia Górniczo-Hutnicza

Eksploracja danych a serwisy internetowe Przemysław KAZIENKO

Wykorzystywanie plików cookies

Metody eksploracji danych. Reguły asocjacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Inżynieria biomedyczna

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

POLITYKA PRYWATNOŚCI SERWIS:

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Instrukcja Ekalendarz

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Cookie Policy. 1. Informacje ogólne.

Polityka prywatności dla strony ELCEN Sp. z o.o. z siedzibą w Gdyni

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Zasady dotyczące plików cookies i innych podobnych technologii. 1. Jaki jest zakres tych Zasad?

Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Danych Osobowych oświadcza, że za wyjątkiem sytuacji uregulowanych w prawie polskim dane dotyczące IP oraz cookies nie będą przekazywane osobom

Exchange Konfiguracja protokołu SSL/TLS w serwerze pocztowym Exchange wersja 1.0

Ćwiczenie: JavaScript Cookies (3x45 minut)

procertum CLIDE Client 2.1 wersja 1.0.2

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

6. Bezpieczeństwo przy współpracy z bazami danych

Sieci Komputerowe i Bazy Danych

Polityka cookies w serwisie internetowym

Polityka prywatności w serwisie internetowym IPN

II. PRZETWARZANIE DANYCH OSOBOWYCH:

Sprawozdanie nr 4. Ewa Wojtanowska

Karol Gałka. Numer albumu: Inżynieria mechatroniczna

Polityka prywatności serwisu

Instrukcja użytkownika Platforma Walutowa

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Polityka prywatności dla

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Spacery losowe generowanie realizacji procesu losowego

Wybrane działy Informatyki Stosowanej

POLITYKA PRYWATNOŚCI I WYKORZYSTYWANIA PLIKÓW COOKIES W SERWISACH INTERNETOWYCH GoPay Sp. z o.o.

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Hurtownie danych. Analiza zachowań użytkownika w Internecie. Ewa Kowalczuk, Piotr Śniegowski. Informatyka Wydział Informatyki Politechnika Poznańska

Podręcznik Integracji

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Sprawozdanie Laboratorium 4

1. Prywatność w skrócie

Instrukcja użytkownika Platformy Walutowej

Poniżej znajdą Państwo dalsze informacje na temat rodzajów używanych przez nas plików cookies. Rodzaj zbieranych danych. przechowywany plik cookie?

Eksploracja danych - wykład VIII

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Praca w programie dodawanie pisma.

Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013

Tomasz Greszata - Koszalin

KONFIGURACJA SERWERA USŁUG INTERNETOWYCH

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

Certyfikat kwalifikowany

Laboratorium nr 4 - Badanie protokołów WWW

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

INTERNET - NOWOCZESNY MARKETING

S P I S T R E Ś C I. Instrukcja obsługi

Instalacja i konfiguracja serwera IIS z FTP

POLITYKA PRYWATNOŚCI

POLITYKA PRYWATNOŚCI. I. Zasady polityki prywatności SKLEPU INTERNETOWEGO

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

Odkrywanie asocjacji

OPTYMALIZACJA SERWISÓW INTERNETOWYCH >>>WIĘCEJ<<<

World Wide Web? rkijanka

Instrukcja konfiguracji funkcji skanowania

Obowiązek informacyjny RODO

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

1. Opis postępowania dla uczestników aukcji z umów ramowych- szkody górnicze Opis postępowania dla uczestników aukcji z umów ramowych- szkody

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Opcje Fiery1.3 pomoc (klient)

Sesje i logowanie. 1. Wprowadzenie

Polityka prywatności i wykorzystywania plików cookies w serwisie internetowych Stena Recycling Sp. z o.o.

Laboratorium 1 Wprowadzenie do PHP

Opis postępowania dla uczestników aukcji. Aukcja samodzielna- złom

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

Zarządzanie licencjami dla opcji Fiery na komputerze klienta

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

POLITYKA PRYWATNOŚCI

Sprzedawaj jeszcze więcej dzięki usłudze Ads!

Transkrypt:

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 -