IZI 229 - Cvičení 1 Click-Stream analýza (analýza sekvencí) Berka Petr Kočka Tomáš Laš Vladimír
Obsah Co je Click-Stream analýza Praktický příklad Algoritmus hledání pravidel Implementace
Click-Stream 17. 3. 2005 Co je to Click-Stream Webové servery shromažďují obrovské množství dat (logové soubory) Tato data většinou nejsou dále využívána Tato data obsahují informace užitečné pro provoz serveru ? Jak tyto informace získat ?
Vlastnosti logových dat Click-Stream 17. 3. 2005 Vlastnosti logových dat Milióny záznamů Přibližně stejná podoba (time; IP address; session ID; page request; referee) Jednotlivé sessions (návštěvy jednoho uživatele) poměrně krátké (16 přístupů) Z požadované stránky lze poznat informace o stránce (u e-shopů např. typ stránky, typ zboží)
Příklad logového souboru Click-Stream 17. 3. 2005 Příklad logového souboru unix time ;IP address ; session ID ; page request; referee 1074589200;193.179.144.2 ;1993441e8a0a4d7a4407ed9554b64ed1;/dp/?id=124 ;www.google.cz; 1074589201;194.213.35.234;3995b2c0599f1782e2b40582823b1c94;/dp/?id=182 ; 1074589202;194.138.39.56 ;2fd3213f2edaf82b27562d28a2a747aa;/ ;www.seznam.cz; 1074589233;193.179.144.2 ;1993441e8a0a4d7a4407ed9554b64ed1;/dp/?id=148 ;/dp/?id=124; 1074589245;193.179.144.2 ;1993441e8a0a4d7a4407ed9554b64ed1;/sb/ ;/dp/?id=148; 1074589248;194.138.39.56 ;2fd3213f2edaf82b27562d28a2a747aa;/contacts/ ; /; 1074589290;193.179.144.2 ;1993441e8a0a4d7a4407ed9554b64ed1;/sb/ ;/sb/; Příklad obsahuje 3 sessions
Click-Stream 17. 3. 2005 Předzpracování dat Z dat je z nich třeba vytvořit sekvence, které budeme analyzovat: Vytvořit časové sekvence stránek pro jednotlivé uživatele (sessions) Ze sekvence stránek (http adres) vytvořit sekvence analyzovaných „informací“ (sekvence typů stránek, sekvence druhů zboží) Lze přidat umělé „stránky“ ZAČÁTEK a KONEC Výsledná podoba: - start, lz, lz, dz, nk, end - start, 148, 128, end
Praktický příklad Internetový obchod Click-Stream 17. 3. 2005 Praktický příklad Internetový obchod Data za 24 dní (3 milióny záznamů) Logový soubor standardní informace Předzpracování dat: 200 000 uživatelů 1stránkové záznamy byly předem odstraněny Z těchto dat 2 základní vstupy: sekvence typů stránek a sekvence druhů zboží (30 kategorií)
Základní údaje Celkem přístupů 203 750 Shop1 35 864 Shop2 21 044 Click-Stream 17. 3. 2005 Základní údaje Celkem přístupů 203 750 Shop1 35 864 Shop2 21 044 Shop3 38 059 Shop4 48 656 Shop5 20 013 Shop6 27 498 Shop7 12 616
Základní údaje Nejvíce přístupů od jednoho uživatele: 15454 Click-Stream 17. 3. 2005 Základní údaje Nejvíce přístupů od jednoho uživatele: 15454 Průměrný počet přístupů: 16,186 Medián: 8 Modus: 2 Nejdelší čas: 433:27:53 (17 přístupů) Průměrný čas: 00:24:46 Medián: 0:03:08 Modus: 0:0:9
Shluková analýza Udělána pomocí MS SQL Server – Analysis services Click-Stream 17. 3. 2005 Shluková analýza Udělána pomocí MS SQL Server – Analysis services
Analýza statických dat Click-Stream 17. 3. 2005 Analýza statických dat Pomocí rozhodovacích stromů (pařezů) - SAS Pozorování: Lidé používající fulltextové vyhledávání se méně dívají na detaily zboží Závěry: Vyhledavač nenalezne to, co lidé chtějí.
Analýza statických dat Click-Stream 17. 3. 2005 Analýza statických dat Ukázka dalších pozorování: Při nákupu (návštěvě stránek s košíkem) se lidé často na něco ptají. Lidé čtoucí stránky poradny méně chodí na detaily a listy zboží. Při návštěvě stránky obchody-elektro se méně dívá na detaily zboží. Velmi málo přístupů na často kladené dotazy
Click-Stream 17. 3. 2005 Přechody mezi obchody Uděláno pomocí CSAnalyzeru vygenerováním všech pravidel délky 2 ze sekvencí obchodů Nepřineslo žádné zajímavé výsledky
Click-Stream 17. 3. 2005 Přechody mezi zbožím Uděláno pomocí CSAnalyzeru vygenerováním všech pravidel délky 2 ze sekvencí zboží Možné využít pro nabízení dalšího zboží uživateli Nejsilnější pravidlo: reproduktory-příslušenství -> video-DVD : 26,00% “Nejslabší” pravidlo: vysavače-žehličky -> pračky-sušičky : 3,80%
Analýza sekvencí Pomocí CSAnalyzeru Vybrány „zajímavá“ pravidla Click-Stream 17. 3. 2005 Analýza sekvencí Pomocí CSAnalyzeru Vybrány „zajímavá“ pravidla Pozorování: Lidé z faq chodí často dále do poradny Pravidlo: faq ->poradna předpoklad: 594 z toho závěr: 127 P: 21% Závěry: Na faq lidé nenajdou, co chtějí a hledají dále. Pozorování: Často lidé vyhledávají fultextem vícekrát za sebou Pravidlo: findf ->findf předpoklad: 52961 z toho závěr: 23298 P: 44% Závěry: Nenajdou co chtějí. Nevědí, jak hledat (co zadávat) Nejsilnější nalezené pravidlo Pravidlo: dt, kosik ->kosik předpoklad: 5174 z toho závěr: 4801 P: 93%
Click-Stream 17. 3. 2005 Závěry analýzy „Klasické“ metody a analýza sekvencí se částečně překrývají a částečně doplňují – pro získání více znalostí je třeba dělat oboje Některá „zajímavá“ pravidla odhalí jen člověk, který dobře zná dané stránky V datech se nepodařilo najít delší „zajímavá“ pravidla
Algoritmus hledání pravidel Click-Stream 17. 3. 2005 Algoritmus hledání pravidel Příklad sekvence: ABCDX Sekvenční pravidla DX, CD X, BCD X Obecná asociační pravidla A X, AC X, BD X
Click-Stream 17. 3. 2005 Sekvenční pravidla Pokud je k pravidlu D X přidáno pravidlo CD X, mění se význam pravidla D X na (D, ale ne CD) X Př: 1. D X Ant: 9 AntSuc: 2 2. přidáme CD X Ant: 2 AntSuc: 2 změní se D X Ant: 7 AntSuc: 0
Click-Stream 17. 3. 2005 Sekvenční pravidla Je-li „správné“ pravidlo ABCDX, pak proces specializace, který ho najde je pouze tento: X, DX, CDX, BCDX, ABCDX Rozhodnutí o hledání dalších specializací je prováděno na základě ch2testu Neexistují konflikty mezi pravidly s výjimkou případu, kdy jedno pravidlo je specializací druhého (to umožňuje implementaci rychlého algoritmu na rozdíl od CN2)
Algoritmus pokrývání množin Click-Stream 17. 3. 2005 Algoritmus pokrývání množin Inicializace pro každou stránku page vyskytující se v datech spočítej její relativní četnost v datech jako P = počet_výskytů_stránky_na_pozici_lmax + 1 / počet_sekvencí_délky_lmax + 1 2. je-li četnost P nmin, 2.1 zařaď do seznamu pravidel Rules pravidlo default page 2.2 zařaď page do seznamu uvažovaných stranek Pages 3. Spusť hlavní cyklus s pomocným pravidlem * => *
- má-li aktuální pravidlo Ant page délku Ant menší než lmax Click-Stream 17. 3. 2005 Hlavní cyklus dokud není konec - má-li aktuální pravidlo Ant page délku Ant menší než lmax - pro všechny stránky pp z Pages najdi k pravidlu ppAnt page nadpravidlo z Rules (pravděpodobně Ant page, ale může se jednat o zkráceninu o více než jednu stránku zleva, extrémně až … page – označme je Antx page) spočti chi2 test srovnáním ppAnt page a Antxpage vyber maximální chi2 pravidlo ppAnt page Pokud chi2<alfa pak Přidej ppAnt page do Rules Uprav nadpravidlo Antx page pravidla ppAnt page v Rules Otestuj významnost pravidla Antx page ve srovnání s jeho nadpravidlem v Rules a pokud nesplňuje významnost chi2 testu na hladině alfa pak vyjmi toto nadpravidlo z Rules a uprav jeho nadpravidlo, dtto …
Kompozicionální algoritmus Click-Stream 17. 3. 2005 Kompozicionální algoritmus Inicializace pro každou stránku page vyskytující se v datech spočítej její relativní četnost v datech jako P = počet_výskytů_stránky_na_pozici_lmax + 1 / počet_sekvencí_délky_lmax + 1 2. je-li četnost P nmin, 2.1 zařaď do seznamu pravidel Rules pravidlo default page 2.2 zařaď page do seznamu uvažovaných stranek Pages 2.3 zařaď default page do seznamu implikací Impl
1. vezmi implikaci Ant page z Impl Click-Stream 17. 3. 2005 1. vezmi implikaci Ant page z Impl 2. je-li délka Ant menší než lmax pak pro každou stranu pp z Pages 2.1 prodluž Ant na ppAnt 2.2 je-li četnost ppAnt v datech nmin pak 2.2.1 spočítej platnost pravidla ppAnt page jako P(ppAnt=>page) = počet_výskytů_ppAntpage / počet_výskytů_ppAnt 2.2.2 z pravidel v Rules, jejichž je ppAnt page levostranným rozšířením spočítej váhu w(ppAnt) 2.2.3 pokud se váha w(ppAnt) významně liší od platnosti P(ppAnt page) pak 2.2.3.1 spočítej váhu w: w w(ppAnt) = P(ppAnt page) 2.2.3.2 zařaď pravidlo ppAnt page(w) do Rules 2.2.4 přidej implikaci ppAnt page na konec Impl
Click-Stream 17. 3. 2005 Implementace
Implementace Vývojové prostředí Borland’s Delphi Click-Stream 17. 3. 2005 Implementace Vývojové prostředí Borland’s Delphi Operační systém Windows Procesor > 600 MHz Paměť – čtyřnásobek vstupních dat
Click-Stream 17. 3. 2005 Implementace Algoritmus implementován jako objekt => lze snadno přidat jiný algoritmus Vyhledávání běží v samostatném vlákně => lze prohlížet částečné výsledky (případně včas přerušit vyhledávání) V systému zabudováno predikování na základě nalezených pravidel Ukládání pravidel, export, …
Click-Stream 17. 3. 2005 Implementace Systém umožňuje testování, tj. na základě vstupních dat určí pro každou stránku, kolikrát by podle vybraných pravidel byla predikovaná stránka správná a kolikrát špatná (pro sekvence typů stránek jsme dostali celkovou úspěšnost s 60 pravidly cca 60% [při predikování majoritní třídy bychom dostali 40%], jednotlivé stránky se pohybovaly mezi 30 – 80 %)
Click-Stream 17. 3. 2005 Testování algoritmů