- 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 -

Podobne dokumenty