- 1 - EKSPLORACJA ZASOBÓW INTERNETU
Transkrypt
- 1 - EKSPLORACJA ZASOBÓW INTERNETU
EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM III – ANALIZA UśYTKOWANIA SIECI 1. Plan laboratorium III - Drzewo i tablica sufiksów - Query expanding - Wybór cech - Formaty pliku log serwera - Wstępne przetwarzanie - Eksploracyjna analiza (podstawy) - Omówienie zadań do samodzielnego wykonania (analiza pliku logu; 17pkt.) - Omówienie typu zadań na koło 10 stycznia - Sprawdzenie zadania wyszukiwarka TF/IDF 2. Drzewo i tablica sufiksów - umoŜliwia efektywną obsługę zapytań, które wymagają wyszukania w tekstach ciągów słów lub ciągów znaków ; - indeksowany tekst jest traktowany jako jeden długi ciąg znaków; - prefiks – określenie początkowych znaków ciągu (np. S dla U jeśli U=SU’); sufiks – określenie końcowych znaków ciągu (np. S dla U jeśli U=U’S) Suffix trie: Struktura drzewiasta do przechowywania ciągów znaków, której kaŜdy moŜliwy sufiks moŜna znaleźć na ścieŜce od korzenia do któregoś liścia. cacao$ suffix S(i) I cacao$ 0 acao$ 1 cao$ 2 ao$ 3 o$ 4 $ 5 Drzewo sufiksów (suffix tree) to bardziej zwięzła reprezentacja struktury ‘suffix trie’ (etykiety przesunięte do krawędzi, a kaŜdy węzeł z pojedynczym potomkiem jest eliminowany (poprzez połączenie węzła z potomkiem w pojedynczy węzeł). - rozmiar – maksymalnie 2n - łatwe do zaprogramowania - czas tworzenia O(n) -1- Podstawowe zastosowania: - znalezienie podciągu o długości m; - najdłuŜsza powtarzająca się sekwencja znaków; - najdłuŜszy wspólny podciąg kilku ciągów znaków (alibaba.taliban.) - najdłuŜszy palindrom (what do you think, do geese see God? -> whatdoyouthink dogeeseseegod.dogeeseseegodknihtuoytahw) Tablica sufiksów suffix S(i) i Suffix S(i) SA[j] cacao$ 0 $ 5 acao$ 1 a⋅cao$ 1 cao$ 2 a⋅o$ 3 ao$ 3 ca⋅cao$ 0 o$ 4 ca⋅o$ 2 $ 5 o$ 4 -> sort -> Tablica sufiksów to tablica indeksów posortowanych sufiksów Tablica sufiksów jest zawsze permutacją indeksów sufiksów Algorytm qsufsort 3. Query expanding Reformułowanie zapytania, by ulepszyć odpowiedź (jakość wyszukanych stron, dokumnetów) - znalezienie synonimów i ich szukanie; - znalezienie form morfologicznych wyrazu; - poprawienie błędów (literówek) i szukanie wyników dla prawidłowego słowa; 4. Wybór cech - znalezienie podzbioru atrybutów, które najlepiej opisują zbiór dokumentów pod względem zadania klasyfikacji; - spróbuj wszystkie podzbiory i wybierz ten, który maksymalizuje dokładność – niepraktyczne; - załoŜenie: atrybuty są niezaleŜne; Entropia: - S – zbior wektorów dokumentów z k klas C1, …, Ck (liczba dokumentów (wektorów) to |S| = |S1| + … + |Sk|, gdzie |Si| jest zbiorem dokumentów naleŜących do klasy Ci. Entropia jest średnią informacją (average information) potrzebną do przewidywania klasy dla dowolnego wektora w S. Jest zdefiniowana jako: k H s = −∑ P(C i ) log 2 P(C i ) , i =1 -2- gdzie prawdopodobieństwo klasy Ci jest obliczane jako P(Ci) = |Si|/|S|. ZałóŜmy, Ŝe term A ma m wartości – v1, v2, …, vm. Wtedy A dzieli zbiór S na m podzbiorów A1, …., Am, kaŜdy zawierający dokumenty, które mają wartość vi dla atrybutu A. Entropia podziału opartego na atrybucie A jest zdefiniowana jako: m | Ai | H ( Ai ) , i =1 | S | H ( S / A1,..., Am) = ∑ gdzie H(Ai) jest entropią rozkładów klas w zbiorze Ai. Zysk informacji mierzy jakość podziału odpowiedniego atrybutu jako róŜnicę entropii:. zysk ( A) = H ( S ) − H ( S / A1,..., Am) . 5. Analiza uŜytkowania sieci na podstawie plików log serwera 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? Plik log serwera: - dla kaŜdego Ŝądania z przeglądarki przesłanego do serwera, automatycznie generowana jest odpowiedź, a jej wynik jest zapisywany w plikach log; -odpowiedź to rekord zapisany w pojedynczej linii, który jest dokłą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: Wiki – 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); -3- Plik log moŜe mieć róŜne formaty, które zmieniają się 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 katologów zabezpieczonych hasłem), pole daty/czasu, pole Ŝądania http, pole kodu odpowiedzi, pole wielkości transferu; Format ECLF (extended CLF) - na końcu dwa dodatkowe pola - pole adresu strony odsyłającej - 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 odysłającej - http:/www.dataminingconsultant.com Przeglądarka: Mozilla/4.0… Format Microsoft IIS 6. 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ń automatycznie wygenerowanych) - 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 (znacznika 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 wpbfl2-45.gate.net 200 2624 wpbfl2-45.gate.net 935 wpbfl2-45.gate.net wpbfl2-45.gate.net wpbfl2-45.gate.net wpbfl2-45.gate.net [29:23:54:15] "GET / HTTP/1.0" 200 4889 [29:23:54:16] "GET /icons/circle_logo_small.gif HTTP/1.0" [29:23:54:18] "GET /logos/small_gopher.gif HTTP/1.0" 200 [29:23:54:19] [29:23:54:19] [29:23:54:19] [29:23:54:20] "GET "GET "GET "GET /logos/small_ftp.gif HTTP/1.0" 200 124 /icons/book.gif HTTP/1.0" 200 156 /logos/us-flag.gif HTTP/1.0" 200 2788 /icons/ok2-0.gif HTTP/1.0" 200 231 - dla metody GET, analizujemy najczęściej pojawiające się w Ŝądaniu rozszerzenia pliku; -4- - 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); - 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 prochodzą od róŜnych uŜytkowników); - analiza pola adresu odsyłającego wraz z topologią strony (jeśli nie ma bezpośreniego połączenia, prawdpododobnie 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 poprzenich punktów z dostępnymi „ciasteczkami” oraz informacjami rejestracyjnymi; -5- 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 A Analiza po samym IP UŜytkownik 1 Analiza po IP + Agencie UŜytkownik 1: A ⇒ B ⇒ E ⇒ K ⇒ I ⇒ O ⇒ E ⇒ L UŜytkownik 2: A ⇒ C ⇒ G ⇒ M ⇒ H ⇒ N B C D Adres odsyłujący + topologia Dla uŜytkownika 1: brak połączenia między K oraz I Prawdopodobne, Ŝe jest to inny uŜytkownik E F G H I J UŜytkownik 1: A ⇒ B ⇒ E ⇒ K ⇒ E ⇒ L UŜytkownik 2: A ⇒ C ⇒ G ⇒ M ⇒ H ⇒ N UŜytkownik 3: I ⇒ O K L M N O P Identyfikacja sesji: 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) -6- - 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; - maksymalny dopuszczalny czas pomiędzy Ŝądaniami naleŜącymi do tej samej sesji (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); Procedura identyfikacji sesji: - kaŜdemu uŜytkownikowi przypisz unikalny identyfikator sesji; - zdefiniuj maksymalny timeout t; - dla kaŜdego uŜytkownika: - znajdź czas między dwoma sąsiednimi wpisami; - jeŜeli przekracza on wartość progową t, przypisz nowy identyfikator sesji do kolejnych jego wpisów; - uporządkuj wpisy wg identyfikatora sesji; - Uzupełnienie ścieŜek – przycisk Wstecz – strona łądowana z pamięci podręcznej, co powoduje dziury w zapisach plików log serwera; znajomość topologii witryny umoŜliwia ich uzupełnienie; 7. 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); - długość sesji (nie wiadomo, ile czasu uŜytkownik spędził na ostatniej stronie) - 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 – liczba Ŝądań (oś x), długość sesji (oś y) – analiza regresji (liniowej); - średni czas na stronę – długość sesji/(liczba Ŝądań – 1); -7- 8. Discovery Challenge 2007 Zbiór uczący i testujący (https://ophelia.cs.put.poznan.pl/webdav/ezi/students/Gemius/) Format w zbiorze uczącym : path_id user_id timestamp Path (category1, pageviews_number), Path (category2, pageviews_number) W zbiorze testującym: path_id user_id timestamp Problem 1: Określić, czy wizyta będzia długa czy krótka (długa – liczba kategorii stron > 1) Problem 2: Określić najbardziej prawdopodobne kategorie, które pojawią się na pierwszych trzech pozycjach -8- 9. Zadania do realizacji w zespołach dwuosobowych Dla wybranego pełnego tygodnia (od poniedziałku 00:00 do niedzieli 24:00) z pliku log (http://ita.ee.lbl.gov/html/contrib/Sask-HTTP.html (access log; link u dołu strony)) przetwórz dane zgodnie z poniŜszymi instrukcjami 1. Wydobadź zmienne: data i czas. 2. Wydobądź zmienne: metoda http, Ŝądana strona i wersja protokołu. 3. Utwórz znacznik czasu reprezentujący liczbę sekund, które upłynęły od pewnej daty, np. 1 czerwca 1995. 4. [2] Zbuduj tabelę 10 najczęstszych rozszrzeń stron z liczbami wystąpień (czyli bez katalogów / , /images; tylko strony). 5. [1] Odsiej wszystkie rekordy z metodą inną niŜ GET i wszystkie z plikami o rozszerzeniach innych niŜ: .htm, .html, .pdf, .asp, .exe, .txt, .doc, .ppt, .xls, .xml. Zachowaj rekordy z pustymi rozszerzeniami stron. Podaj ile rekordów było przed tymi operacjami (oryginalnie), a i ile zostało teraz. 6. [1] Zidentyfikuj uŜytkownika na podstawie unikalnego adresu IP. Podaj, ile jest uŜytkowników. 7. [1] Zidentyfikuj wszystkie sesje. UŜyj unikalnego adresu IP oraz wartości progowej maksymalnego dozwolonego czasu między Ŝądaniami, równej 30 minut. Podaj, ile jest sesji. 8. [3] Zbadaj Ŝądania uŜytkownika. PokaŜ histogram liczby Ŝądań w sesji (oś x – liczba Ŝadań, oś y – liczba sesji z taką liczbą Ŝądań). PokaŜ statystyki takie jak średnia, mediana, wartość modalna, minimalna i maksymalna. 9. [3] Zbadaj zaleŜność między długością sesji a liczbą Ŝądań uŜytkownika. RozwaŜ tylko sesje o liczbie Ŝądań powyŜej 1. UŜyj wykresu rorzutu (oś x – liczba Ŝądań, oś y – długość sesji w sek.). UŜyj prostego modelu regresji liniowej i podaj oszacowane równanie regresji. Nanieś linię na wykres. 10. [3] Zbuduj wykres słupkowy liczby rozpoczętych sesji na godzinę (oś x – godzina 0-23; oś y – liczba sesji) w przekroju całego tygodnia. 11. [3] Zbuduj wykres słupkowy liczby rozpoczętych sesji na dzień (oś x – Mon-Sun; oś y – liczba sesji). Rozwiązania poszczególnych zadań w arkuszu kalkulacyjnym w osobnych zakładkach (jeśli jest wykres, to muszą być teŜ serie danych; zadania 4-7 mogą być na jednej zakładce). W rozwiązaniu podaj analizowany przez Ciebie temin wpisów (data od – do) oraz 20 pierwszych wpisów przed i po filtrowaniu. Punktów do zdobycia: 17 Łącznie ze wszystkich zadań: 29+27+17=73 Jeśli ktoś nie zaliczy raportów (poniŜej 36,5pkt.), to Ŝeby zaliczyć przemiot , ze sprawdzianu musi dostać tyle % powyŜej 50%, ile brakowało mu, by zaliczyć raporty (np. ktoś zdobył 36% z raportów; aby zaliczyć przedmiot musi zdobyć 50%+14%=64%). -9- Koło – typ zadań - 10 stycznia I. TF/IDF - Dla podanego zapytania Q i danej kolekcji dokumentów znaleźć najbardziej adekwatny dokument zgodnie z miarą TF/IDF (rozmiar problemu rzędu: 3 dokumenty, 4 termy; wymagane etapy: zapisać w reprezentacji TF; zapisać IDF dla termów (pamiętać, Ŝe zapytanie nie wpływa na wartości IDF, bo te oblicza się na podstawie kolekcji dokumentów); zapisać w reprezentacji TF/IDF; obliczyć podobieństwa za pomocą miary cosinusowej juŜ tylko dla reprezentacji TF/IDF; odpowiedź). Do obliczenia wartośći TF oraz IDF obowiązują wzory podane na zajęciach (nij/maxknkj oraz log(D/Di) II. Obliczyć miary precision/recall (dana liczba dokumentów ogółem; wymienione indeksy dokumentów istotnych; wymienione indeksy dokumentów pobranych; wymagane etapy: podać wzór na precision/recall (nie zapomnieć, Ŝe we wzorze operuje się na liczności zbiorów; trzeba wiedzieć co oznacza relevant i retrieved); wypisać istotne dokumenty wśród zwróconych; podstawić liczby; podać wynik) III. PageRank (dana struktura powiązań – graf sieci; zapisać macierz stochastyczną (uwaga na kolejność wierszy i kolumn); zapisać równania początkowe, które pozwolą na obliczenie PageRanku (z damping factor q równym…; jeśli bez damping factor trzeba teŜ dodać równanie normalizujące); bez obliczania spróbować uzasadnić na podstawie struktury sieci, dla której strony PageRank będzie najlepszy, a dla której najgorszy; rozmiar 4-5 wierzchołków) IV. HITS (zapisać macierz połączeń (uwaga na kolejność wierszy i kolumn); obliczyć na jej podstawie macierz, której analiza pozwoli na uzyskanie wartości koncentratorów (autorytetów) – trzeba potrafić transponować macierz i wymnoŜyć dwie macierze; moŜe być dany wektor własny T T macierzy LL oraz L L; trzeba będzie się zorientować, który dotyczy koncentratorów, a który autorytetów; na tej podstawie rozpoznać najlepsze/najgorsze koncentratory/autorytety i uzasadnić dlaczego któraś strona jest dobrym/złym autorytetem/koncentratorem w kontekście ocen koncentratorów/autorytetów; rozmiar 4-5 wierzchołków) V. Aglomeracyjne dokumentów; grupowanie dokonać hierarchiczne aglomeracji wg (wypełniona maksymalnego lub macierz podobieństwa minimalnego dla podobieństwa dokumentów w grupie (łączymy dwie grupy (dokumenty) w jednym etapie; zawsze te, które są najbardziej podobne wg ustalonegj miary) i narysować dendrogram – 4-5 dokumentów). VI. K-means (dana macierz podobieństwa i macierz TF/IDF dla dokumentów; dokonaj podziału, jeśli centroidami w I etapie są dokumenty najmniej/najbardziej pododne; oblicz miarę podobieństwa J; oblicz nowe centroidy dla grup, który zostałyby wykorzystane w kolejnym etapie) VII. k-NN (dana kolekcja dokumentów i przydział dokumentów do klas; dany nowy dokument i jego podobieństwo do pozostałych dokumentów - 10 - (np. współczynnik Jaccarda) z wyjątkiem jednego/dwóch dokumentów Dn, dla których powiedziane jest, Ŝe nowy ma z nimi wspólne X termów (Dn ma ogółem Y róŜnych termów; a nowy Z termów – trzeba znać wzór na współczynnik Jaccarda, który operuje na tych wartościach); obliczyć współczynnik podobieństwa Jaccarda dla tej pary, a potem zdecydować (i uzasadnić) do jakiej klasy zostanie przypisany nowy dokument na podstawie algorytmu k-NN z narzuconym k (algorytm prosty i waŜony)) VIII. Naiwny klasyfikator Bayesowski (dana reprezentacja binarna dokumentów i ich przydział do klas; dana reprezentacja binarna nowego dokumentu; zdecydować (i uzasadnić; potrafić zapisać na symbolach prawdopodobieństwa warunkowe; obliczyć prawdopodobieństwa), do której klasy zostanie przypisany nowy dokument na podstawie naive Bayesa – rozmiar problemu ok. 3 termy; 2-3 klasy; 10 dokumentów). Za przybliŜenie końcowego prawdopodobieństwa P(C/Doc) uznajemy wartość licznika (mianownik dla wszystkich klas jest taki sam). IX. Utworzyć drzewo sufiksów i tablicę sufiksów dla danego słowa (typu: alibaba; kuskus, barnaba). Trzeba utworzyć suffix trie, a na jego podstawie drzewo sufiksów (suffix tree). Tablica sufiksów musi być tworzona za pomocą qsufsort z rozpisaniem wektorów SA (posortowane indeksy sufiksów) i ISA (najgorsza moŜliwa pozycja sufiksu (indeksu) w danym etapie) w kolejnych etapach. X. Dany fragment odfiltrowanego pliku logu – odczytać zadaną cechę z pojedynczego rekordu; zidentyfikować uŜytkownika (będzie powiedziane na jakiej podstawie (np. IP hosta albo IP+przeglądarka; zidentyfikować sesje (podany próg timeoout); obliczyć długość sesji; średni czas na stronę) Np. oznacz takim samym symbolem (np. liczbami rzymskimi) rekordy wchodzące w skład jednej sesji (identyfikacja na podstawie IP hosta; timeout=30min). Oblicz długość sesji i średni czas na stronę dla sesji, w skład której wchodzi pierwszy rekord: 131.215.67.47 [29:22:58:20] "GET /docs/oppe/spatial.html HTTP/1.0" 200 17756 131.215.67.47 [29:22:59:40] "GET /docs/oppe/large.htm HTTP/1.0" 200 647 131.215.67.47 [29:23:01:20] "GET /docs/oppe/circle.htm HTTP/1.0" 200 1329 140.112.68.165 [29:23:01:40] "GET /docs/bul/bum.htm HTTP/1.0" 200 147 131.215.67.47 [29:23:03:00] "GET /docs/oppe/oppe.htm HTTP/1.0" 200 10752 140.112.68.165 [29:23:04:00] "GET /docs/bul/bal.htm HTTP/1.0" 200 147 140.112.68.165 [29:23:07:10] "GET /docs/bul/balon.htm HTTP/1.0" 200 647 140.112.68.165 [29:23:33:00] "GET /docs/bul/glu.htm HTTP/1.0" 200 247 131.215.67.47 [29:23:50:20] "GET /docs/oppe/new.htm HTTP/1.0" 200 132 131.215.67.47 [29:23:58:00] "GET /docs/oppe/line.htm HTTP/1.0" 200 2372 131.215.67.47 [29:23:59:20] "GET /docs/oppe/linera.htm HTTP/1.0" 200 2372 Czas pisania: 1.5h; ok. 10min. na zadanie 10 zadań; łącznie 34 punkty (progi: 17p (3.0), 20p (3.5), 23.5p (4.0), 27p (4.5), 30p (5.0)) Orientacyjna punktacja za poszczególne zadania (moŜe się zmieniać w zaleŜności od grup): I – 5p, II – 2p, III – 4p, IV - 4p, V – 3p, VI – 3p, VII – 3p, VIII – 3p, IX – 4p, X – 3p Kartki dostaniecie; potrzebny jest kalkulator (choćby po to, by policzyć logarytm lub wymnoŜyć prawdopodobieństwa w zadaniu z Bayesem) Przywilej na kole za raporty: ok. 6 osób na podstawie najlepszych raportów; dowiadują się przed kołem; muszą napisać je na 50% i dostają ocenę z raportów. - 11 - Koło trzeba zaliczyć. - 12 -