Wybrane techniki przygotowywania rekomendacji dla użytkowników serwisu internetowego



Podobne dokumenty
WYBRANE TECHNIKI PRZYGOTOWYWANIA REKOMENDACJI DLA UŻYTKOWNIKÓW SERWISU INTERNETOWEGO

Wybrane techniki przygotowywania rekomendacji dla użytkowników serwisu internetowego

Spis treści. 1.1 Problematyka Cele pracy i zakres pracy... 5

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Sposoby prezentacji problemów w statystyce

Wyszukiwanie binarne

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Hierarchiczna analiza skupień

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Priorytetyzacja przypadków testowych za pomocą macierzy

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

8. Neuron z ciągłą funkcją aktywacji.

Maciej Piotr Jankowski

FILM - SALON SPRZEDAŻY TELEFONÓW KOMÓRKOWYCH (A2 / B1 )

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Analiza skupień. Analiza Skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania

Odwrotna analiza wartości brzegowych przy zaokrąglaniu wartości

Łączenie liczb i tekstu.

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

Algorytmy sztucznej inteligencji

Zalew danych skąd się biorą dane? są generowane przez banki, ubezpieczalnie, sieci handlowe, dane eksperymentalne, Web, tekst, e_handel

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

2

Zapisywanie algorytmów w języku programowania

Programowanie celowe #1

Systemy uczące się Lab 4

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Programowanie i techniki algorytmiczne

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Autostopem przez galaiktykę: Intuicyjne omówienie zagadnień. Tom I: Optymalizacja. Nie panikuj!

Analiza danych. TEMATYKA PRZEDMIOTU

Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

Data mininig i wielowymiarowa analiza danych zgromadzonych w systemach medycznych na potrzeby badań naukowych

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

10. Wstęp do Teorii Gier

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Faza Określania Wymagań

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

biegle i poprawnie posługuje się terminologią informatyczną,

Czym się kierować przy wyborze systemu ERP? poradnik

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Materiały dla finalistów

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

DLA SEKTORA INFORMATYCZNEGO W POLSCE

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Wykład 4: Statystyki opisowe (część 1)

Efekt kształcenia. Wiedza

Zad. 3: Układ równań liniowych

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Wymagania edukacyjne z informatyki w klasie IIIa gimnazjum

TEORETYCZNE PODSTAWY INFORMATYKI

Projektowanie BAZY DANYCH

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Systemy ekspertowe : program PCShell

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

Procesowa specyfikacja systemów IT

Zasady Wykorzystywania Plików Cookies

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

Automatyczna klasyfikacja zespołów QRS

użytkownika 1 Jak wybrać temat pracy 2 Spis treści 3 Część pierwsza problematyka 4 Część druga stosowane metody 5 Część trzecia propozycja rozwiązania

Internet, jako ocean informacji. Technologia Informacyjna Lekcja 2

Rachunek prawdopodobieństwa- wykład 2

Diagram przypadków użycia

Testowanie elementów programowalnych w systemie informatycznym

Pomorski Czarodziej 2016 Zadania. Kategoria C

Zwrot z inwestycji w IT: prawda czy mity

Algorytm. a programowanie -

Transformacja wiedzy w budowie i eksploatacji maszyn

Sposoby sprawdzania osiągnięć edukacyjnych uczniów

Jak ustawić cele kampanii?

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Analiza wielokryterialna wstęp do zagadnienia

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

World Wide Web? rkijanka

Zajęcia nr. 3 notatki

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

13. Równania różniczkowe - portrety fazowe

Inżynieria oprogramowania II

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Transkrypt:

POLITECHNIKA ŁÓDZKA Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Praca dyplomowa Wybrane techniki przygotowywania rekomendacji dla użytkowników serwisu internetowego Artur Ziółkowski Nr albumu: 133901 Opiekun pracy: prof. dr hab. inż. Maria Pietruszka Dodatkowy opiekun: mgr inż. Magdalena Stobińska Łódź, wrzesień 2010

Oświadczenie autora Ja, niżej podpisany Artur Ziółkowski oświadczam, że praca ta została napisana samodzielnie i wykorzystywała (poza zdobyta na studiach wiedza) jedynie wyniki prac zamieszczonych w spisie literatury...................................... (Podpis autora) Oświadczenie promotora Oświadczam, że praca spełnia wymogi stawiane pracom magisterskim...................................... (Podpis promotora)

Spis treści 1 Wstęp 4 1.1 Problematyka.......................... 4 1.2 Cele pracy........................... 5 1.3 Metoda badawcza......................... 6 1.4 Przegląd literatury w dziedzinie.................... 6 2 Analiza zagadnienia 7 2.1 Wprowadzenie do dziedziny problemu.................. 7 2.2 Eksploracja danych........................ 7 2.3 Problemy związane ze źródłem danych.................. 9 2.4 Pozyskiwanie informacji o użytkownikach stron WWW............ 10 2.4.1 Log serwera WWW..................... 10 2.4.2 Podsłuchiwanie połączenia użytkownika z serwerem WWW........ 11 2.4.3 Dedykowany serwis internetowy................. 11 2.5 Strategie przygotowywania rekomendacji................. 12 3 Techniki analizy danych 13 3.1 Grupowanie........................... 15 3.1.1 Metody hierarchiczne..................... 16 3.1.2 K-średnich........................ 17 3.1.3 Samoorganizująca się mapa................... 18 3.1.3.1 Sieć neuronowa.............................. 18 3.1.3.2 Sieć Kohonena............................... 20 3.2 Klasyfikacja.......................... 24 3.2.1 Sieci neuronowe (perceptron i wielowarstwowy perceptron)........ 24 3.2.2 Klasyfikator Bayesa..................... 24 3.2.3 k-nn.......................... 24 3.3 Reguły asocjacji i sekwencje..................... 24 3.3.1 Apriori.......................... 24 3.3.2 GP........................... 24 3.3.3 Prefix-Span........................ 24 4 Przegl ad istniej acych rozwi azań 25 4.1 Narzędzia analizy danych...................... 25 4.2 Systemy wykorzystujące rekomendacje................. 25

Spis treści 2 5 Problem praktyczny 26 5.1 Opis problemu.......................... 26 5.2 Analiza wymagań......................... 26 5.2.1 Studium możliwości..................... 26 5.2.2 Wymagania funkcjonalne................... 26 5.2.3 Ograniczenia projektu..................... 26 5.3 Projekt............................ 26 5.3.1 Projekt warstwy danych.................... 26 5.3.2 Projekt warstwy logiki.................... 26 5.3.3 Projekt warstwy interfejsu użytkownika............... 26 5.4 Implementacja: punkty kluczowe................... 26 5.5 Testy............................. 26 6 Podsumowanie 27 6.1 Dyskusja wyników........................ 27 6.2 Ocena możliwości wdrożenia..................... 27 6.3 Fakty i mity........................... 27 Bibliografia 28

Streszczenie Streszczenie pracy zostanie napisane w późniejszym czasie. Będzie tutaj opis układu pracy, dotyczący tego jakie zagadnienia zostały poruszone w poszczególnych częściach.

Rozdział 1 Wstęp 1.1 Problematyka W obecnych czasach można zaobserwować nasycenie się rynku dostawców wielu produktów i usług. Bardzo trudne stało się pozyskanie nowych klientów oraz utrzymanie ich w stanie lojalności wobec przedsiębiorstwa. Dotyczy to każdej branży, zarówno tej zajmującej się świadczeniem usług, jak i tej zajmującej się handlem. Każdy z klientów oczekuje wysokiej jakości produktów (lub usług), ale dodatkowo chce być obsłużonym na wysokim poziomie. Jeśli firma nie będzie dbała o swojego klienta, ten bardzo szybko może zrezygnować z oferty firmy na rzecz innej, konkurencyjnej. Wykorzystanie Internetu jako medium dla handlu elektronicznego uprościło klientom dostęp do różnych dostawców dóbr. Zazwyczaj ludzie są bardzo leniwi. Nie lubią przeszkód i szybko się zniechęcają, co może zaowocować rezygnacją z usług. Z tego powodu bardzo ważne jest aby relacja firmy z klientem była trwała, a co za tym idzie musi być stale pielęgnowana. W Polsce nie tak dawno temu przedsiębiorstwa charakteryzowało podejście polegające na minimalizacji poniesionych kosztów i maksymalizacji zysków. Często się zdarza, że rynek jest zalewany bardzo dużą ilością produktów, która nigdy nie zostanie sprzedana. Wytwarza się bardzo dużo dóbr nie zastanawiając się wcale, czy uda się to sprzedać. Trudno jest znaleźć taką liczbę klientów, która będzie chciała skorzystać z oferty. Bardzo ważne jest też, aby poszukując nowych klientów zwracać większą uwagę na tych, którzy są z naszej perspektywy atrakcyjniejsi od innych. Analiza poszczególnych klientów, a co za tym idzie ich potrzeb, jest pewnym rozwiązaniem tego problemu. Może ono przynieść firmie wymierne korzyści, jednak jest bardzo skomplikowane, a często również niewykonalne. Ocena klienta pod kątem atrakcyjności jest bardzo trudna. Można brać pod uwagę różne kryteria oceny. Dla niektórych najważniejszym kryterium jest zysk, a dla innych całkiem coś innego. Dziś często pod uwagę bierze się kryterium, które wcześniej nie miało odpowiedniej wagi. Ważne stało się to, czy klient jest w stanie polecić firmę swoim znajomym, którzy mogą zostać potencjalnymi klientami. Taki sposób oceny często uważany jest za o wiele istotniejszy, niż sam zysk. Klient, który w pewnej firmie kupi bardzo mało, ale będzie zadowolony z wysokiej jakości obsługi, może polecić ją stu innym osobom. Aby taka pozytywna opinia mogła zostać wystawiona klient musi być zadowolony, a to już jest kolejne wyzwanie dla firmy. Klient będzie zadowolony tylko wtedy, gdy oferta kierowana do niego będzie rzeczowa i zostanie przygotowana pod jego kątem. Nie mogą się w niej znaleźć produkty i usługi, którymi klient nie będzie zainteresowany. Niedbale przygotowana oferta może jedynie zniechęcić klienta do zakupów i go spłoszyć. Rekomendacji jako pojęcia można używać w różnych kontekstach. Zazwyczaj posługujemy się nim w znaczeniu opiniowania, czy polecania komuś czegoś. W swojej pracy rekomendację będę utożsamiał właśnie z ofertą kierowaną do klienta (lub do grupy klientów o podobnych charakterach), a w szczególności do użytkowników serwisu internetowego. Taka rekomendacja może zawierać w sobie jeden bądź wiele produktów, nie jest to tak istotne. Najważniejsze jest to, aby sama w sobie nie szkodziła. Taki cel można osiągnąć podchodząc indywidualnie do każdego klienta. Niestety jest to nierealne. Wyobraźmy sobie sytuację, w której

1.2 Cele pracy 5 firma obsługuje dziennie tysiąc klientów. Oczywiście większa część z nich jest stała, więc można by powiedzieć, że obsługa zna ich gusta. W rzeczywistości tak raczej nie będzie. Ludzie obsługujący klientów będą mieć wiedzę o kliencie, który w jakiś sposób się wyróżnia (np. duże zakupy), a jak wcześniej napisałem do wszystkich powinniśmy podejść tak samo profesjonalnie. Do tego dochodzi realizacja komunikacji z klientem za pomocą Internetu. To sam użytkownik serwisu internetowego składa zamówienia na produkty bądź usługi, a w procesie tym nie biorą udziału osoby fizyczne. Pojawia się wiec pytanie pytanie, jak w takim razie przygotować ofertę indywidualną dla wielu klientów nie mając z nimi kontaktu fizycznego? W sytuacji, kiedy mamy przygotować ofertę dla wielu klientów można posłużyć się zaawansowanymi technikami, które nas wspomogą. Kilka wybranych technik, które są najczęściej wykorzystywane, opisałem w swojej pracy. Charakteryzują się one różnym podejściem do postawionego problemu, a co za tym idzie potrzebują trochę innego przygotowania danych do przeprowadzenia procesu wydobywania wiedzy z tych danych. Bardzo ciekawe w technikach, którymi się zajmowałem jest to, że wykorzystują one dane zebrane w całkiem innym celu niż analizowanie potrzeb klientów. Zazwyczaj firmy prowadząc swoją działalność gromadzą różne dane. W przypadku użytkowników serwisu internetowego mogą to być informacje np. o zakupionych produktach, bądź odwiedzonych stronach internetowych. Można więc z powodzeniem je wykorzystać i za pomocą zastosowania pewnych technik usprawnić działanie serwisu internetowego tak, aby stał się bardziej przyjazny użytkownikowi, a sam użytkownik miał wrażenie, jakby serwis był ukierunkowany wyłącznie na niego. 1.2 Cele pracy W swojej pracy postawiłem dwa cele, które chciałem osiągnąć. Pierwszy cel dotyczy części teoretycznej pracy i zakłada dokonanie przeglądu zagadnień oraz rozwiązań związanych z przygotowaniem rekomendacji dla użytkowników serwisu internetowego. Konieczne było przedstawienie analizy zagadnienia oraz problemów jakie można napotkać podczas tworzenia rozwiązań umożliwiających przygotowywanie rekomendacji. Chciałem się także dowiedzieć jakie możliwości daje stosowanie wybranych technik wydobywania wiedzy z danych oraz jakie rozwiązania już na rynku istnieją. Czy faktycznie ich wprowadzenie ułatwia użytkownikom korzystanie z systemu, a nie jest tylko wymyślnym mechanizmem, który nie znajduje praktycznego zastosowania. Będę chciał podać kilka przykładów. Mam tu na myśli serwisy internetowe, które wprowadziły rekomendacje na swoich stronach internetowych, ale oprócz tego chciałem sprawdzić, jakie systemy umożliwiają dokonywania analizy za pomocą metod eksploracji danych. W tej części pracy opiszę również wybrane techniki eksploracji danych, które mogą być wykorzystane do przygotowywania rekomendacji dla użytkowników serwisu internetowego. Zamierzam pokazać ich ogólny charakter, a także wskazać zalety i wady ich stosowania. Postaram się wytłumaczyć wszystko w jasny sposób podpierając się przy tym odpowiednimi schematami oraz rysunkami. W ramach drugiego celu chciałem stworzyć aplikację, która pozwala przeprowadzić analizę użytkowników w celu przygotowania rekomendacji. Jest to szerokie zagadnienie, które będzie dogłębnie opisane w rozdziale X, dlatego nie będę go opisywał szczegółowo w tym rozdziale. Na wstępie mogę powiedzieć, że aplikacja, która ma umożliwiać analizę danych musi realizować pewne trzy podstawowe zadania: 1. dostęp do bazy danych 2. analizę danych 3. wizualizację wyników Przedstawię projekt swojej aplikacji oraz zaproponuję rozwiązania wybranych problemów, które napotkałem podczas realizacji swojego pomysłu. Nie będę opisywał wszystkich, ponieważ jest to temat zbyt obszerny do opisania w całości. Elementarne znaczenie w tej części pracy będzie miała analiza i interpretacja otrzymanych wyników. Za pomocą pewnych, wybranych metod oceny postaram się stwierdzić, czy dokładność tych technik jest satysfakcjonująca i nadają się one do praktycznego zastosowania. Wszystkie swoje przemyślenia i uwagi zapiszę w postaci wniosków.

1.4 Przeglad literatury w dziedzinie 6 1.3 Metoda badawcza Opisać jaki jest dostęp do wiedzy różnej postaci, czy jest popularna i dobrze opisana itd. 1.4 Przeglad literatury w dziedzinie Opisać szczegółowo poszczególne typy literatury (książki polskie i zagraniczne, artykuły oraz źródła elektroniczne)

Rozdział 2 Analiza zagadnienia 2.1 Wprowadzenie do dziedziny problemu W związku z dynamicznym rozwojem technologicznym pojawiło się wiele nowych możliwości. Wydajny sprzęt komputerowy pozwolił na składowanie coraz większych ilości informacji. Szybkość przetwarzania danych wzrosła wielokrotnie w porównaniu do jeszcze nie tak odległych lat. Obecna technika powoli dochodzi do fizycznych granic minimalizacji komponentów wykorzystywanych przy budowie komputerów. Duże korporacje oraz mniejsze firmy mając na celu zwiększenie swoich dochodów poszukiwały pewnych źródeł informacji, które mogłyby im pomóc w osiągnięciu sukcesu biznesowego. Zaczęły składować najróżniejsze dane. Powstały ogromne bazy danych, które magazynują fakty ze wszystkich możliwych obszarów działalności ludzi. Oczywista stała się chęć pozyskania cennych informacji z tak zebranych danych. W taki sposób powstała dziedzina zajmująca się tym zagadnieniem zwana eksploracja danych. 2.2 Eksploracja danych Każda dziedzina naukowa posiada wiele definicji. Związane jest to z tym, że wiele osób ma różny pogląd dotyczący zakresu obszaru zainteresowania wybranej dziedziny. Nie inaczej jest w przypadku eksploracji danych. W literaturze można spotkać wiele odmian definicji tego zagadnienia. Eksploracja danych wykorzystuje metody oraz narzędzia pochodzące z różnych innych dziedzin, takich jak bazy danych, statystyka i uczenie maszynowe. Nie można zatem jednoznacznie stwierdzić, jakie granice powinna posiadać jako pojęcie. W książce [4] przeczytałem bardzo ciekawą definicję, która wskazuje na istotę eksploracji danych, a nie skupia się na wykorzystywanych przez nią technikach. Pozwolę sobie ją zacytować: Eksploracja danych jest analizą (często ogromnych) zbiorów danych obserwacyjnych w celu znalezienia nieoczekiwanych związków i podsumowania danych w oryginalny sposób tak, aby były zarówno zrozumiałe, jak i przydatne dla ich właściciela. Chciałem odnieść się do powyższej definicji i zwrócić uwagę na to, że eksploracja danych w swojej idei ma analizować dane obserwacyjne. Jest to bardzo istotne określenie danych. Oznacza to, że eksploracja danych zwykle jest przeprowadzana na zbiorze danych, który został zebrany z innych przyczyn niż przetwarzanie mające na celu wydobywanie wiedzy. Przykładem takich danych mogą być bilingi telefoniczne. Same w sobie są zbierane do dokumentowania rozmów wychodzących, za które abonent musi zapłacić. Z drugiej jednak strony mogą posłużyć za źródło danych dla eksploracji. Dzięki temu można poznać informację na różne pytania. Przykładem może być zbadanie gdzie dzwonią mieszkańcy poszczególnych województw oraz jak długo rozmawiają. To pozwoli np. ocenić czy promocja dotycząca obniżenia kosztów pierwszej minuty rozmowy będzie opłacalna dla firmy telekomunikacyjnej. Definicja zwraca uwagę na fakt, że eksploracja danych zajmuje się przetwarzaniem ogromnych zbiorów danych. Wspomniane przeze mnie bilingi rozmów są przykładem właśnie takiego wolumenu. Praktycznie

2.2 Eksploracja danych 8 każda osoba posiada telefon komórkowy, a czasem kilka. Nie jesteśmy w stanie wyobrazić sobie ile rozmów telefonicznych odbywa się w ciągu jednej minuty. W swoje książce [5] Daniel Larose również zwrócił uwagę na ciekawą sytuację. Postawił czytelnika przy kasie supermarketu i kazał zamknąć na chwilę oczy. Zwrócił uwagę na to, że poza błaganiem dzieci o słodycze słychać dźwięki skanera kodów kreskowych i terminali potwierdzających poprawne wykonanie operacji kartą płatniczą. Gdyby wsłuchać się dokładnie w te dźwięki, to nie bylibyśmy w stanie policzyć ich wszystkich, tak znaczna jest to liczba. Biorąc pod uwagę skalę kraju albo państwa, duża sieć supermarketów ma o nas wszystkich bardzo dużo informacji, którymi może się posłużyć. To, że tych danych jest tak dużo daje ogromne możliwości, ale również stawia analityków przed różnymi wyzwaniami ściśle związanymi z ilością danych oraz ich spójnością. Techniki wykorzystywane do analizowania dużych zbiorów informacji muszą być sprawne. Mam tu na przykład na myśli zoptymalizowany sposób poszukiwania zależności. Gdybyśmy mieli szukać zależności sprawdzając wszystkie możliwe kombinacje, to moglibyśmy nie doczekać się wyników. Poniekąd ma to też swoją wadę. Metody te działają z pewną dokładnością (zazwyczaj można na nią wpływać), ale nie da się ocenić jakiejś sytuacji ze stu procentową pewnością. Gdybyśmy mięli powiedzieć, że jakiś przedmiot nam się podoba, to też ciężko nam jest wydać pewną opinię. Może zdarzyć się również sytuacja, że analityk chciałby dowiedzieć się czegoś ciekawego z danych, które były zebrane jakiś czas temu. Nie może być pewien ich spójności w sensie cech obiektów, ani też tego, że nie ma tam informacji błędnych, które mogłyby przekłamać wynik. Na rynku oprogramowania znajduje się wiele pozycji, które zasługują na uwagę i udowodniły wielokrotnie swoją wyższość nad innymi. Można spotkać też mniej znane produkty, które zachęcają bardzo przyjaznym interfejsem użytkownika. Może to być bardzo mylące i należy zastanowić się, czy dane, które posiadamy mogą być przetwarzane przez zewnętrzne. Takie oprogramowanie zazwyczaj posiada uniwersalny charakter, a to nie zawsze jest zaletą. Jeśli posiadamy nietypową reprezentację danych, to albo możemy bardzo się napracować przygotowując dane do przetwarzania albo uzyskać błędne wyniki nie otrzymując do tego żadnego powiadomienia. Często w zwyczaju nazywa się taki model czarną skrzynką. Nie wiemy jak dane są przetwarzane, dlatego możemy nie zrozumieć końcowego rezultatu. Wiedza informatyczna jest niezbędna do stworzenia narzędzia, jednak analityk, który zajmuje się interpretacją uzyskanych wyników musi rozumieć ich istotę. Jeśli znamy wewnętrzne mechanizmy systemu przetwarzającego dane i wiemy jak się cały proces odbywa, to możemy powiedzieć, że mamy do czynienia z modelem białej skrzynki. Wiele osób, które jeszcze nie miały możliwości poznać bliżej eksploracji danych sądzą, że polega to na zastosowaniu pewnych technik statystycznych czy pochodzących z dziedziny sztucznej inteligencji w celu uzyskania odpowiedzi na konkretne pytania. Przekonanie o eksploracji danych jako o samodzielnym narzędziu, które mogłoby zostać wykorzystane do przeprowadzania analiz, przez grupę specjalistów jest błędne. Jak właśnie pokazałem rzeczywistość jest mniej kolorowa, niż może się wydawać. Eksploracja danych powinna być postrzegana jako proces złożony z kilku etapów. Powinna być utożsamiana z metodologią, która określa ściśle tok działania. Istnieje kilka podejść do odkrywania wiedzy, jednak wszystkie powinny uwzględnić następujące etapy: przygotowanie danych wybór technik analizy ocena wykorzystanie Przykładem metodologii przedstawiającej odkrywanie wiedzy jako proces jest Cross-Industry Standard Process (CRISP-DM) opisany w [XXXX]. Metodologia powstała w 1996 roku z inicjatywy takich firm jak DaimlerChrysler, SPSS i NCR. Określa standardowy proces dopasowania eksploracji danych w celu rozwiązywania problemów biznesowych i badawczych. Poza wyżej przedstawionymi podstawowymi etapami eksploracji danych CRISP-DM zawiera dodatkowe dwa, które poprzedzają przygotowanie danych. Jest interaktywny i adaptacyjny, co oznacza, że można przechodzić z jednego etapu do drugiego w zależności od ustalonych założeń i ograniczeń. Rysunek XXX przedstawia go za pomocą prostego diagramu.

2.3 Problemy zwiazane ze źródłem danych 9 Rysunek 2.1: Schemat metodologii CRISP-DM 2.3 Problemy zwiazane ze źródłem danych Poprzednia część rozdziału była wprowadzeniem do zagadnień związanych z eksploracją danych. Wskazałem przykładowe bazy danych, które mogłyby posłużyć jako źródło do przeprowadzania analizy i wydobywania wiedzy. W tej części poruszę problemy, z którymi borykają się osoby zajmujące się odkrywaniem wiedzy. Problemy te związane są z reprezentacją oraz charakterem danych wejściowych. Eksploracja danych może korzystać z baz danych, które nie były stworzone wyłącznie w celu odkrywania wiedzy, dlatego mogą one posiadać niepożądane cechy. Do takich cech można zaliczyć: kolumny, które są przestarzałe i nie są już dłużej wypełniane wiersze z brakującymi wartościami format bazy danych może być nie odpowiedni niektóre wartości są niezgodne z logiką i pewnym podejściem (sprzeczne założenia) Rolą analityka, czy też innej osoby odpowiedzialnej za eksplorację danych jest przygotowanie danych tak, aby nadawały się do przetwarzania. Aby taka baza danych mogła być użyta musi zostać poddana wstępnej obróbce. Jest to jeden z etapów przedstawionej wcześniej metodologi CRISP-DM. Często takie zadanie jest trudne i wymaga podjęcia pewnych decyzji, które mogą zaważyć na rezultatach odkrywania wiedzy z danych. Źle przeprowadzona wstępna obróbka może sprawić, że wynik końcowy nie będzie miał żadnego sensu. W przypadku kolumn, które już wcale nie są wypełniane sytuacja jest dość prosta. Wystarczy wykonać projekcję dla tabeli pomijającą niepoprawne kolumny. Trudniej wybrnąć z problemu brakujących wartości w rekordach. Jest to problem, który przejawia się na okrągło. Metody analizy, które są bardzo zaawansowane i mogą dawać dobre rezultaty w satysfakcjonującym czasie mogą zawieźć jeśli natrafią na brakujące wartości. Wiadomym jest, że im więcej mamy informacji na temat jakiegoś obiektu, tym lepiej możemy go scharakteryzować. Brak informacji na jakiś temat jest zawsze niemile widziany. Na przykład kiedy poszukujemy przestępcy, chcemy wiedzieć o nim jak najwięcej, aby go szybko znaleźć. Pomimo tego, że niektórych danych może brakować przed analitykiem ciągle stoi zadanie, z które musi zostać wykonane. Najprostszym sposobem poradzenia sobie z brakującymi danymi jest po prostu pominięcie takiego rekordu. Wydaje się, że problem rozwiązany. Nie ma danych, które mogłyby zachwiać wynik. A co jeśli celem odkrywania wiedzy było rozpoznanie sekwencji występowania pewnych zdarzeń? Jeśli usuniemy taki rekord dostaniemy całkiem inną sekwencję, która nie będzie zgodna ze stanem rzeczywistym. Z tego powodu analitycy posługują się metodami, które odtwarzają brakujące wartości. Jest kilka takich metod. Najpopularniejsze są: Zastąpienie brakującej wartości stałą określaną przez analityka Zastąpienie brakującej wartości wartością średnią policzoną na podstawie innych rekordów Zastąpienie brakującej wartości wartością losową wygenerowaną na podstawie obserwowanego rozkładu zmiennej W literaturze wiele miejsca poświęca się rozwiązywaniu tego typu problemów. Choćby w [5] pan Larose wskazuje wady i zalety powyższych rozwiązań. Pierwsze podejście jest najprostsze, ale obarczone dużym błędem. Nie dość, że wartość może nie pasować do danych, to jeszcze analityk mając przed oczami zbiór milionów albo miliardów rekordów nie jest w stanie ocenić jaki zakres posiada dane pole. Z kolei zastąpienie wartością średnią zapewnia, że zakres będzie poprawny, ale jeśli zbyt dużo wartości będzie brakowało i zostaną zastąpione, to wszystkie obiekty pod tym kątem staną się podobne, a to może spowodować, że wynik będzie zbyt optymistyczny. Autor najbardziej chwali trzeci sposób. Metoda zapewnia odpowiedni rozrzut wartości w danym zakresie. Na podstawie przeprowadzonych eksperymentów stwierdził, że prawdopodobieństwo wygenerowania zbliżonych do oryginalnych wartości jest dość duże. Przestrzega jednak,

2.4 Pozyskiwanie informacji o użytkownikach stron WWW 10 Algorithm 2.1 Listing przedstawiający przykładowy log serwera WWW że nie zawsze mogą mieć sens w aspekcie całości obiektu (razem z innymi atrybutami). Jeśli chodzi o format bazy danych, to nie ma wiele pola do popisu. Format musi być odpowiedni, więc baza musi zostać przekonwertowana. Problemem może być wydajność przetwarzania ogromnej ilości wierszy. Może to trwać bardzo długo. Ostatni problem dotyczył wartości niezgodnych z logiką. Głównie dotyczy to wartości jakościowych, czyli etykiet, które nie powinny być porównywane z liczbami. Należy przyjąć jakąś miarę podobieństwa dla poszczególnych pól, tak aby porównanie miało sens logiczny, czyli np. pojęcie duży > mały. W przypadku wartości liczbowych często dane się normalizuje czyli przelicza na odpowiednią wartość z przedziału od 0,0 do 1,0. 2.4 Pozyskiwanie informacji o użytkownikach stron WWW W pracy zajmuję się analizą informacji o użytkownikach stron internetowych, dlatego nie mogę pominąć kwestii pozyskiwania danych ze stron WWW. Zazwyczaj można spotkać się z trzema podejściami. 2.4.1 Log serwera WWW Jednym ze sposobów jest analizowanie logów serwera stron internetowych. Log, jest to plik tekstowy, w którym zapisywane informacje o odwiedzinach danej strony internetowej. Szybki przegląd stron internetowych dotyczących eksploracji danych o użytkownikach serwisu internetowego pokazuje, że jest to najczęściej wykorzystywana metoda zbierania danych. Całą pracę wykonuje oprogramowanie serwera WWW, które zapisuje wszelkiego rodzaju informacje dotyczące każdego wejścia na stronę internetową. Mogą się tam znaleźć nazwy użytkowników, daty, numery IP oraz adresy odwiedzonych stron. Przykładowy plik loga zamieszczony jest na listingu 2.1. Na pierwszy rzut oka wydaje się, że posiadamy wszelkie potrzebne informacje i możemy przestąpić do przetwarzania. Niestety nie jest tak dobrze, jak mogłoby się wydawać. Plik loga serwera może zawierać zarazem informacje nadmiarowe, jak i niekompletne. Nadmiarowość wynika z tego, że podczas łączenia się użytkownika ze stroną internetową serwisu przesyłane są oprócz treści stron internetowych także obrazki, czy reklamy podłączone do innych serwerów. Trzeba zatem przefiltrować zawartość pliku pozostawiając tylko informacje dotyczące wyłącznie aktualnego serwera i strony WWW. Wszystkie reklamy oraz obrazki i pliki dodatkowe muszą zostać odrzucone. Dodatkowo okazuje się, że część danych znajdujących się w pliku loga danych jest sztuczna i nie została zapisana w wyniku interakcji użytkownika z serwisem internetowym. Te sztuczne dane zostały wygenerowane przez roboty internetowe, które są programami komputerowymi przeszukującymi strony WWW. Robią to, abyśmy mogli sprawnie wykorzystywać wyszukiwarki internetowe i otrzymywać wyniki w zadowalającym czasie. Nikt przecież nie lubi czekać na odpowiedź. Robot odwiedza każdą stronę internetową serwisu którą może (poza dostępem wymagającym zalogowania). Dla naszej sprawy jest to kłopotliwe, ponieważ zaciemnia akcje użytkowników. Nie interesują nas przecież informacje nieprawdziwe. Pytanie jakie się od razu nasuwa, to czy da się odróżnić działanie robota, od zwykłego użytkownika? Zdecydowanie tak. W pojedynczej linii loga, jak można było zobaczyć na listingu 2.1, znajdują się informacje dotyczące przeglądarki internetowej, z której korzystał użytkownik. Roboty internetowe wpisują tam swoje nazwy lub adresy stron internetowych wskazujących na konkretny program komputerowy. Istnieje nawet baza danych opisująca popularne roboty internetowe. Nie powinno być zatem problemu z pozbyciem się niechcianych wpisów. Aby wyjaśnić niekompletność danych w logach muszę najpierw zaznaczyć, że istniej kilka standardów takich plików. Standard określa jakie dane i w jakim formacie mają zostać zapisane do pliku. Większość serwerów nie zapisuje informacji o nazwie użytkownika mającej sens w ramach serwisu internetowego. Zapisywane są informacje o domenie z jakiej pochodzi komputer albo wyłącznie numer IP interfejsu sieciowego. Pozyskanie nazw użytkowników musi być przeprowadzone na podstawie dodatkowych plików,

2.4 Pozyskiwanie informacji o użytkownikach stron WWW 11 jak np. pliki cookies, które przechowują informacje o sesji użytkownika i jego logowaniu. Dopiero wtedy jednoznacznie można zidentyfikować użytkownika. Kolejnym problemem powodującym niekompletność danych jest używanie przez użytkowników przycisku wstecz w przeglądarkach. Powoduje to wczytanie ostatnio oglądanej strony z bufora programu. Nie jest wtedy wysyłane żądanie do serwera strony WWW, a co za tym idzie nie jest to odnotowane w logu. Gdybyśmy analizowali taki plik pod kątem sekwencji działań użytkownikami to mogłoby się okazać, że sekwencja nie ma sensu. Najprościej pokazać taką sytuację na przykładzie. Załóżmy, że możliwe jest przejście ze strony A do B oraz ze strony A do C. Przejście ze strony B do C nie jest możliwe. Przeanalizujmy pewien scenariusz: 1. Użytkownik odwiedza stronę A 2. Użytkownik odwiedza stronę B 3. Użytkownik wciska przycisk wstecz w swojej przeglądarce internetowej, co skutkuje wczytaniem strony A z bufora programu 4. Użytkownik przechodzi na stronę C W dzienniku odwiedzin zarejestrowane zostanie następujące przejście: A => B => C, co nie jest możliwe. Sposobem na taki absurd jest odtworzenie ścieżek serwisu internetowego na podstawie możliwych przejść. Aby jednak tego dokonać potrzebujemy dodatkowej wiedzy o strukturze serwisu internetowego. Używanie loga jako źródła danych dla eksploracji danych przestaje być zatem bez wad i nie nadaje się do wszystkich zastosowań bez wcześniejszego zweryfikowania danych. 2.4.2 Podsłuchiwanie połaczenia użytkownika z serwerem WWW Inną metodą na zebranie informacji o użytkowniku internetowym jest podsłuchanie komunikacji pomiędzy przeglądarką internetową klienta a serwerem WWW. Można to zrealizować na kilka sposobów. Jednym z nich jest podsłuchiwanie pakietów protokołów sieciowych przesyłanych po sieci. Kolejnym jest zastosowanie specjalnej wtyczki do przeglądarki internetowej, która będzie zapisywała informację o stronach internetowych w pliku tekstowym. Można spotkać kilka wtyczek tego typu do różnych przeglądarek. Najczęściej wykorzystywaną przeglądarką do tego celu jest... W przypadku pierwszej techniki wymagana są umiejętności programistyczne, ponieważ trzeba zadbać o odpowiednie skojarzenie ze sobą przesyłanych pakietów tak, aby przesyłane dane były spójne. Niespójności mogą się pojawić, ponieważ w ramach protokołu TCP jedna ramka informacji może być przesłana ponownie w przypadku błędów. W porównaniu do tej metody zastosowanie wtyczki w przeglądarce nie wymaga dodatkowej, żmudnej pracy. W obydwu przypadkach pozostaje problem identyfikacji użytkowników. Dla pierwszego sposobu można dowiedzieć się tego analizując np. adres odnośnika do strony, albo dodatkowe argumenty dla niego. Dla drugiego sposobu musimy przeprowadzić jawny zapis informacji personalnych dla każdego użytkownika korzystającego z przeglądarki na terminalu. Nie jesteśmy w stanie inaczej odróżnić, czy z serwisu internetowego korzysta Ania, czy Marek. 2.4.3 Dedykowany serwis internetowy Ostatnim sposobem pozyskiwania danych jest przygotowanie odpowiedniego serwisu internetowego, który sam będzie potrafił zapisywać niezbędne dla nas informacje. Zaletą tego rozwiązania jest to, że mamy te dane, o które nam się rozchodzi. Nie musimy przeprowadzać dodatkowej obróbki danych polegającej na filtrowaniu, uzupełnianiu ścieżek, czy też identyfikacji użytkowników. Niestety takie podejście ma jedną, ale za to dużą wadę. Wymaga stworzenia dedykowanego serwisu, a to oznacza, że jest to podejście jednorazowe. Oczywiście można stworzyć taki szkielet, który można by wykorzystać w wielu miejscach, jednak czy uda się go rozpowszechnić? Większa część serwisów internetowych chce zaskakiwać, zachęcać i wyróżniać się dlatego nie zdecyduje się na zakup takiego szkieletu. Sprawia to, że rozwiązanie jest kosztowne czasowo, a nie wiadomo, czy taki serwis będzie chętnie odwiedzany i przyniesie odpowiednio rekompensujący pracę dochód.

2.5 Strategie przygotowywania rekomendacji 12 2.5 Strategie przygotowywania rekomendacji Kończąc analizę zagadnienia chciałem przedstawić dwa typy strategii przygotowywania rekomendacji. Osoby, które na co dzień nie zajmują się handlem i usługami, mogą nie zdawać sobie sprawy z tego, że stosuje się pewne strategie sprzedaży, które mają na celu spowodowanie tego, aby klient myślał, że firma go rozumie i wychodzi naprzeciw jego potrzebom i zainteresowaniom. Studiując literaturę napotkałem w książce [?] na dwie strategie, które moim zdaniem są najczęściej spotykane w codzienności. Były to: sprzedaż krzyżowa (ang. cross-selling) sprzedaż rozszerzona (ang. up-selling) Sprzedaż krzyżowa polega na tym, że proponuje się klientowi produkty, które są często kupowane przez innych klientów. Przewidywanie takiego zainteresowania przeprowadza się na podstawie wcześniej zakupionych produktów. Strategia ta jest bardzo często spotykana w sklepach internetowych. Objawia się to tym, że na stronie internetowej internetowej sklepu występuje sekcja o tytule Ci którzy kupili produkt X kupili również.... Właśnie pod tym kątem opisałem techniki przygotowywania rekomendacji w swojej pracy. Analizowanie danych niezbędnych do przygotowania rekomendacji w ramach tej strategii może odbywać się w inny sposób. Można analizować dane o zakupach, jak wcześniej wspomniałem, ale można także analizować sekwencje zakupów konkretnych produktów. Aby lepiej zobrazować sytuację przytoczę pewien przykład. Załóżmy, że użytkownik sklepu internetowego zakupił aparat fotograficzny, a dokładnie lustrzankę cyfrową. W ofercie firmy znajduje się także szkolenie dotyczące obsługi aparatu i wykonywania profesjonalnych zdjęć. Na podstawie sekwencji zakupów innych użytkowników można dowiedzieć się, że osoby kupujące aparat typu lustrzanka niedługo po jego zakupie zdecydowały się na zakup profesjonalnego szkolenia. W przypadku sprzedaży rozszerzonej chodzi o to, aby klientowi proponować lepsze wersje produktów niż już posiada. Najlepszym przykładem pokazującym zastosowanie będzie sprzedaż produktów, na które nałożony jest abonament. Weźmy pod uwagę telewizję cyfrową. Klient zakupił dekoder i zdecydował się na odpowiedni pakiet kanałów telewizyjnych. Po jakimś czasie można zaproponować mu zmianę pakietu kanałów, które może oglądać lub przedstawić ofertę dodatkowych kanałów, które można wykupić bez przechodzenia na wyższy abonament. Opisane wyżej strategie są praktycznie wszędzie wykorzystywane. Dają obopólną korzyść. Klient jest zadowolony, bo oferta, która jest do niego kierowana jest rzeczowa i celuje w jego zainteresowania, natomiast firma zwiększa swoje dochody, a jednocześnie utrwala więź z klientem.

Rozdział 3 Techniki analizy danych Eksploracja danych wykorzystuje zdobycze wielu dziedzin nauki takich jak statystyka, matematyka czy uczenie maszynowe. Ma w związku z tym charakter interdyscyplinarny. Udostępnia szeroki wachlarz technik analizy danych. W tym rozdziale swojej pracy przyjrzę się bliżej wybranym technikom analizy danych. Jest ich wiele, dlatego wybrałem kilka najbardziej ciekawych i popularnych. Skupię się na nich dokładnie. Dla każdej postaram się przedstawić ideę oraz zasadę działania. Podsumuję je także wskazując wady i zalety ich stosowania. Poruszę trzy dziedziny rodzaje technik analizy danych. Będą to: grupowanie klasyfikacja reguły asocjacji i sekwencje Każda z tych technik zajmuje się innym zadaniem. Grupowanie zajmuje tak zwanym uczeniem nienadzorowanym, w którym nie posiadamy informacji o etykietach obiektów znajdujących się w zbiorze. Z kolei na przykład klasyfikacja jest uczeniem z nadzorem, ponieważ przyporządkowanie etykiet do do obiektów ze zbioru wykonywane jest przez zewnętrznego agenta (może być wykorzystane grupowanie), a klasyfikacja przyporządkowuje jeden obiekt do wybranej kategorii. Wymienione typy zadań można zaklasyfikować do zadań kombinatorycznych. Mają przeszukać jakąś przestrzeń rozwiązań w poszukiwaniu pewnych zależności. Największą pewność daje przeszukiwanie wszystkich możliwych, jednak jest to bardzo czasochłonne. Zakładając, że w grupowaniu mamy do rozmieszczenia w dwóch klasach tylko sto obiektów daje nam to 2 100 możliwych rozmieszczeń. Żeby lepiej ocenić jak wielka jest to liczba napiszę tylko, że 2 100 10 30. Sprawdzenie każdej możliwości, pamiętając, że mamy do czynienia z ogromnymi zbiorami informacji jest po prostu niemożliwe. Należy zatem skorzystać z yfikowanych metod, które w jakiś zoptymalizowany i konsekwentny sposób będą poszukiwały oczekiwanych rozmieszczeń, klasyfikacji czy asocjacji. W różnych metodach analizy pojawiają się często te pytania dotyczące tych samych problemów. Zanim rozpocznie się analizę trzeba sobie na nie odpowiedzieć. Takimi przykładowymi pytaniami mogą być: Jak mierzyć podobieństwo? Jak zakodować zmienne? Jak standaryzować lub normalizować wartości? Takich pytań jest wiele. Na większość trzeba odpowiedzieć indywidualnie dla danej metody, jednak z punktu widzenia wszystkich wspomniane wyżej pojawiają się wszędzie. Metody klasyfikacji czy grupowania badają podobieństwo między obiektami. Trzeba w jakiś sposób określić dlaczego obiekt A jest bardziej podobny do obiektu B niż do C. Aby zrozumieć zasady działania algorytmów trzeba najpierw poznać zasadę reprezentacji obiektów w systemie. W wielu omawianych przeze mnie metodach obiekty poddawane analizie są reprezentowane w postaci par cecha-wartość. Przykładowo obiekt osoba można przedstawić jako zestaw par: płeć-kobieta, wiek-28, wzrost-169 itd. Ilość

3 Techniki analizy danych 14 cech dla obiektów tego samego typu jest identyczna. Różnią się one między sobą wyłącznie wartościami poszczególnych cech. Można to podejście uogólnić w momencie, jeśli kolejność występowania kolejnych cech jest ustalona. Sprowadzi się to wtedy do reprezentacji w postaci wektora wartości cech danego obiektu. Taki sposób reprezentacji znajduje szerokie zastosowanie w metodach uczenia maszynowego. Wykorzystanie reprezentacji wektorowej pozwala na proste badanie podobieństwa pomiędzy obiektami. Można w tym celu posłużyć się miarami odległości wektorów. Ich działanie opiera się zazwyczaj na porównywaniu wartości kolejnych atrybutów dwóch obiektów. Chyba najbardziej popularną miarą jest miara euklidesowa wyrażona za pomocą wzoru 3.1. d Euklidesa (x, y) = (x i y i ) 2, (3.1) i Bardzo często spotykać można również miarę miejska zwaną też Manhattan, która wyrażona jest za pomocą wzoru: d Manhattan (x, y) = x i y i, (3.2) i Inne miary, które są chętnie używane, ale nie są opisywane tak często jak wcześniejsze, to miara Czybyszewa (wzór XXX) oraz miara Canberra (wzór XXX). d Czybyszewa (x, y) = max( x i y i ), (3.3) d Cranberra (x, y) = i x i y i x i + y i, (3.4) W przypadku, kiedy mamy do czynienia ze zmiennymi jakościowymi możemy posłużyć się prostą zasadą, która zakłada, ze jeżeli wartości wybranej cechy dwóch obiektów są równe, to wtedy miara odległości jest równa 0. W innym wypadku jest równa 1 (wzór 3.5). 0, gdy x i = y i d Jakościowa (x i, y i ) = (3.5) 1, w przeciwnym wypadku Można również wyróżnić sytuację, w której dla pewnego atrybutu jakościowego wartości jest kilka. Jeżeli będą one zachowywały pewną gradację, czyli jedna będzie bardziej od drugiej, to wtedy można przyporządkować im liczby porządkowe. Przykładowo, jeżeli mamy atrybut wzrost o możliwych wartościach, duży, średni, mały, to przyporządkowujemy im wartości następująco: 0 - mały, 1 - średni, 2 - duży. Pozwoli to porównywać bez większych problemów wartości stawiając pomiędzy nimi znak nierówności. Algorytmy klasyfikacji oraz grupowania wymagają przeprowadzenia normalizacji danych, po to aby wartość jednego atrybutu ani ich podzbiór nie przekłamały porównania obiektów. W tym celu można zastosować jedną z dwóch metod: normalizację min-max lub standaryzację. Normalizację min-max przeprowadza się zgodnie ze wzorem 3.6. Jest to transformacja, która nadaje wektorowi długość 1 bez zmiany jego kierunku. normalizacja X = X min(x) max(x) min(x) Standaryzacja wykorzystuje do przekształcenia wartość średniej i odchylenia standardowego. Formalny zapis przedstawia wzór 3.7 standaryzacja X = X X (3.7) σ(x) Obydwie operacje przeprowadza się po kolei dla każdej składowej wektora cech wybranego obiektu. (3.6)

3.1 Grupowanie 15 3.1 Grupowanie W literaturze można spotkać się z różnymi określeniami tych technik eksploracji danych. Najbardziej popularnymi określeniami są: analiza skupień i klastrowanie. Będę posługiwał się nimi zamiennie. Grupowanie jest rodziną metod, które można zaklasyfikować do uczenia bez nadzoru. Obiekty, które mają być poddane przetwarzaniu nie są w żaden sposób oznaczone. Przetwarzaniu podlega surowy zbiór nie posiadający dodatkowych informacji. Celem grupowania jest znalezienie pewnych wzorców, które niekoniecznie muszą być oczywiste i proste do odgadnięcia. Grupowanie może w ten sposób, jak sama nazwa wskazuje, pogrupować podobne obiekty lub rozmieścić je w uporządkowanej strukturze (najczęściej jest to struktura drzewiasta). Analizowane dane wpadają do różnych grup. W jednej grupie powinny być obiekty najbardziej do siebie podobne, natomiast dwa obiekty z dwóch różnych grup powinny być od siebie jak najbardziej odległe w sensie wybranej miary odległości. Analiza skupień znajduje szerokie pole zastosowań w różnych dziedzinach. Przykłady można wymieniać bez końca, ale o kilku ciekawych warto wspomnieć. W medycynie może być wykorzystana, do kreślenia, czy dany przypadek choroby nie jest jakimś szczególnym przypadkiem innej już znanej, np. nową mutacją wirusa grypy. W biologii może pomóc w określeniu, czy na pozór podobnie wyglądające organizmy naprawdę są jednego gatunku, np. koń i osioł. Z kolei na rynku usług informatycznych można kategoryzować użytkowników serwisów internetowych pod kątem ich potrzeb. W ten sposób można określić ich krąg zainteresowania produktami. Algorytmy wykorzystywane do przetwarzania danych zgodnie z idea analizy skupień posiadają swoje charakterystyki. W związku z tym można przedstawić pewną klasyfikację metod grupowania: 1. Metody grupowania, które za kryterium przyporządkowania uznają podobieństwo obiektów oraz metody działające w oparciu o aparat statystyczny. 2. Metody grupowania, które deterministycznie określają przynależność do grupy (albo obiekt do niej trafia albo nie) oraz probabilistyczne. w którym dla każdego obiektu wyznaczane jest prawdopodobieństwo przyporządkowania do wszystkich dostępnych grup. Mamy wtedy wiedzę nie tylko o najlepszym dopasowaniu, ale także o kolejnych. 3. Metody grupowania, które pozwalają na utworzenie hierarchii obiektów lub takie które wszystkie grupy umieszczają w płaskiej przestrzeni. Pierwsze podejście pozwala rozróżnić pewne podgrupy wśród grup. Może się to przydać chociażby w identyfikowaniu kategorii stron internetowych. Drugie podejście traktuje wszystkie grupy jednocześnie i nie ustala wśród nich hierarchii. 4. Metody grupowania, które potrzebują całego zbioru, aby przeprowadzić proces grupowania oraz metody, które działają przyrostowo i są w stanie w danej chwili zająć się obiektami bez przyporządkowania i uaktualnić wynik grupowania bez analizy całego zbioru danych. Niewątpliwie utrudnieniem, które wynika z charakteru metody jest określenie poprawności rezultatów przetwarzania. Ciężko, o ile to w ogóle możliwe jest sformułować pewien warunek określający, czy grupowanie przebiegło zgodnie z oczekiwaniami analityka. Poprawność jest uzależniona od podejścia analityka. Jeśli wyda mu się interesujące, może on ocenić rezultat jako przydatny. Z kolei dla innej osoby taki wynik nie będzie miał sensu, ponieważ określenie tego, czy grupowanie jest interesujące zależy od zastosowania i jest w pewnym stopniu subiektywne. Istnieje kilka metod, które próbują szacować na ile grupowanie się powiodło. Ich działanie oparte jest na badaniu odległości pomiędzy obiektami w grupach. Im mniejsza suma odległości w każdej z grup, tym grupowanie było w pewnym sensie dokładniejsze. W ramach podrozdziału dotyczącego grupowania omówię trzy metody grupowania. Będą to: Metoda hierarchiczna z przedstawicielem w postaci grupowania aglomeracyjnego Metoda K-średnich Metoda wykorzystująca samo organizujące się mapy omówiona w oparciu o sieć Kohonena Postaram się przybliżyć zasadę ich działania, zastosowania oraz opiszę wady i zalety poszczególnych reprezentantów.

3.1 Grupowanie 16 3.1.1 Metody hierarchiczne Metoda reprezentuje podejście hierarchiczne, które zalicza się do metod opartych na podziale. Wynikiem tej metody grupowania jest drzewo podziałów grup na podgrupy. Nazywa się je dendrogramem. Przykładowe drzewo podziałów prezentuje rysunek XXXX. Przedstawione drzewo prezentuje podział liczb na podstawie pewnego kryterium. Pionowa oś diagramu wyznacza podobieństwo poszczególnych grup na tym samym poziomie. Jak widać na rysunku, na samym dole każdy obiekt reprezentowany przez liczbę znajduje się w osobnej grupie. Na samej górze natomiast widać już tylko jedną grupę. Od razu nasuwa się wniosek, że grupowanie hierarchiczne za pomocą podziału mogłoby się wykonywać w obydwu kierunkach. Tak właśnie jest. Wyróżnia się dwa podejścia do klastrowania hierarchicznego. Pierwsze z nich jest nazywane aglomeracyjnym i zakłada ścieżkę przejścia od dołu do góry dendrogramu. Początkowo algorytm pracuje na pojedynczych obiektach. Umieszcza każdy z nich w osobnej grupie, a następnie porównuje takie grupy ze sobą i stara się je łączyć w coraz większe grupy, aż pozostanie wyłącznie jedna. Z kolei drugie podejście, nazywane rozdzielającym, zakłada, że cały zbiór obiektów tworzy jedną grupę, a zadaniem algorytmu jest tak podzielić tą wejściową grupę, aby każdy z obiektu znajdował się w osobnej grupie. Jest to trudniejsze podejście, ponieważ należy określić jak daną grupę będziemy dzielić. Największą uwagę należy w tej metodzie przyłożyć do kryterium podziału. Analiza skupień w oparciu o algorytm aglomeracyjny jest prostsza i o wiele bardziej popularna. Wynika to z tego, że wystarczające jest posługiwanie się miarą odległości (bądź podobieństwa, które jest przeciwnością odległości) pomiędzy obiektami jako kryterium. Należy jednak zauważyć, że miara odległości pomiędzy obiektami jest wykorzystywana tylko w pierwszym kroku, gdy każdy obiekt znajduje się w osobnym skupieniu. W takiej sytuacji miara odległości (podobieństwa) pomiędzy skupieniami jest równa mierze odległości pomiędzy obiektami. Co w przypadku, gdy mamy porównać grupy na wyższym poziomie, które składać się mogą z innych podgrup? Można uogólnić miary tak, by można było je stosować dla grup. Zarówno w [4]jak i w [5] opisane są przykładowe uogólnienia. Daniel Larose wyróżnia cztery metody uogólniania miary podobieństwa. Zakładając, że S 1 oraz S 2 są dwoma skupieniami zawierającymi wektory cech d. Podobieństwosim(S 1,S 2 ) można zdefiniować jako: odległość pomiędzy centroidami grup - za podobieństwo dwóch skupień uznawane jest podobieństwo centroidów tych skupień, gdzie centroid skupienia jest zdefiniowany jako c = 1 d, S sεs maksymalne podobieńśtwo - algorytm używający tej miary nazywany jest grupowaniem najbliższych sąsiadów. Za podobieństwo uznaje maksymalne podobieństwo wektorów w tych grupach. minimalne podobieństwo - liczone jest analogicznie jak maksymalne podobieństwo, z tym, że zamiast funkcji maksimum wykorzystywana jest funkcja minimum. średnie podobieństwo - jako podobieństwo dwóch skupień przyjmowane jest średnie podobieństwo wektorów tych skupień Algorytm aglomeracyjny pnie się w górę drzewa podziału, aż do scalenia wszystkich grup. Można jednak wprowadzić dodatkowe kryteria i zatrzymać algorytm wcześniej. Wszystko zależy od tego, czy zależy nam na określonej ilości grup, czy współczynniku podobieństwa pomiędzy grupami. Wady i zalety Na pewno do zalet można zaliczyć prostą kontrolę nad wykonywaniem się algorytmu. W zależności od zapotrzebowania można przerwać wykonywanie otrzymując wymagany podział obiektów. Nieocenioną zaletą jest tworzenie się hierarchii obiektów. Niektóre zadania, takie jak choćby katalogowanie produktów czy stron internetowych wymaga podziału na podkategorie. W przypadku algorytmu aglomeracyjnego ogromnym plusem jest prostota uogólnienia miar odległości i podobieństwa na grupy obiektów, co praktycznie zwalnia z dobierania yfikowanego i nietrywialnego kryterium podziału. Jedną z poważniejszych wad algorytmu jest jego wydajność. Wymaga dość wielu obliczeń. Aby porównywać ze sobą obiekty musimy już na początku programu znać wszystkie podobieństwa każdej możliwej pary. Daje to złożoność czasową rzęduo(n 2 ). Jeśli chcielibyśmy możliwie wydajnie zaimplementować

3.1 Grupowanie 17 algorytm powinniśmy na samym początku policzyć miary podobieństwa i przechować je w pamięci, aby od razu były dostępne. Wiąże się to ze złożonością pamięciową rzędu O(n 2 ). Wniosek z tego płynie taki, że nie da się wykorzystać tego algorytmu dla dużych zbiorów danych. Związany jest z tym faktem inny problem. Interpretowanie drzewa podziału przy dużych ilościach danych byłoby niemożliwe dla analityka, co przeczyłoby z ideą pomocy tego narzędzia w jego pracy. 3.1.2 K-średnich Algorytm K-średnich jest bardzo dobrym przykładem algorytmu, który w prosty i obrazowy sposób prezentuje zasadę optymalnego przeszukiwania przestrzeni rozwiązań. Nadaje się do przeprowadzania analizy skupień dla dużych zbiorów danych. Jego zasady działania są proste i zrozumiałe. Wiadomo czego można spodziewać się po tej metodzie, dlatego jest chętnie wykorzystywana przez statystyków. Występuje kilka różnych odmian tego algorytmu, które do podstawowej wersji wprowadzają dodatkowe mechanizmy optymalizacji. Wspomnę słowem jakie mogą to być optymalizacje, ale omówię podstawową odmianę, od której inne się wywodzą. Nazwa metody wzięła się stąd, że działa w oparciu o pewną stałą ilość średnich wartości podobieństw w grupach. Liczbę pożądanych grup określa parametr k. Aby rozpocząć przetwarzanie tą metodą na wejściu musimy mieć zdefiniowane dwie elementy: Przygotowany zbiór obiektów (np. w reprezentacji wektorowej - znormalizowanej) Parametr k Jak wspomniałem zasada działania metody jest bardzo prosta. Opiera się na migrowaniu obiektów pomiędzy grupami do momentu, aż żaden z obiektów nie zmieni już grupy. Cały algorytm można zapisać w kilku następujących krokach: 1. Wybieramy k obiektów ze zbioru wejściowego, które mają reprezentować centroidy skupień. Zazwyczaj są one wybierane losowo, ale spotyka się implementację, gdzie wybierane są one w jakiś ustalony sposób, np. tak aby pokryć odpowiednio przestrzeń rozwiązań. 2. Dla każdego obiektu ze zbioru obiektów wyznaczamy skupienie, do którego ma należeć. Przeprowadzane jest to z użyciem miary podobieństwa (lub odległości) do każdego z wybranych k-centroidów. Jeśli odległość jest najmniejsza, lub podobieństwo największe, to wybrany obiekt wpisujemy do grupy reprezentującej przez odpowiedni centroid. 3. Po zakończeniu dowiązywania obiektów do grup wyliczamy ponownie centroidy grup używając zebranych informacji o obiektach z danej grupy. 4. Jeżeli żaden obiekt nie zmienił swojej grupy, to kończymy działanie algorytmu. W innym przypadku wykonujemy kroki od punktu 2 włącznie. Najważniejszym punktem w wypisanych wyżej krokach jest punkt numer 2. Decyduje on o tym jaki obiekt do jakiej grupy trafi. Odbywa się to za pomocą funkcji kryterialnej grupowania, której zadaniem jest maksymalizowanie podobieństwa wewnątrz grupy. Sama funkcja kryterialna, jak wynika z algorytmu, jest oparta o centroid grupy, natomiast samo grupowanie oparte jest o uśrednione podobieństwo. Rysunek XXXX przedstawia schematyczny przepływ obiektów pomiędzy wybranymi skupieniami. Wady i zalety W podstawowej odmianie algorytmu początkowe centroidy wyznaczające skupienia są wybierane losowo. Każda losowość w algorytmach nie jest mile widziana. Tak jest też w tym wypadku. Powoduje ona to, że w kolejnych uruchomieniach algorytmu mogą się wylosować inne środki grup. W rezultacie może to całkowicie zmienić wynik przetwarzania. Aby uznać wyniki za wiarygodne należałoby uruchomić kilkakrotnie grupowanie aby potwierdzić ich prawdziwość. Najlepszym rozwiązaniem będzie to rozwiązanie, które będzie maksymalizowało podobieństwo w grupach. Da się to ocenić metodą podobną do sumy kwadratów. Dla każdej ustalonej grupy należy sumować podobieństwo obiektu i centroidu tej grupy. Formalny

3.1 Grupowanie 18 zapis przedstawia wzór 3.8 (oznaczmy za pomocą symbolu x obiekt ze zbioru danych D, natomiast c jako centroid k-tej grupy): k i=1 j x j εd i sim(c i,x j ), gdzie jε 1, D i (3.8) Może się okazać, że podczas przeszukiwania przestrzeni rozwiązań zostanie pominięte dobre rozwiązanie skupieniowe, ponieważ samo przeszukiwanie jest ograniczone do małej przestrzeni możliwych podziałów. Maksymalizacja funkcji kryterialnej odbywa się lokalnie. Rozwiązaniem tego problemu również jest wielokrotne przeprowadzenie grupowania z różnymi początkowymi środkami skupień (to akurat zapewnia nam losowy wybór). Metoda k-średnich jest niewątpliwie jedną z najbardziej popularnych i lubianych przez analityków. Nadaje się do wykorzystania dla dużych zbiorów danych. Jest prosty i stosunkowo wydajny. Na wydajność ma wpływ zbiór danych. Jeśli zawiera obiekty dobrze od siebie oddzielone będzie szybciej zbieżny. Złożoność tego algorytmu wynosi O(kni) gdzie: i - liczba iteracji głównej pętli algorytmu k - ilość skupień n - ilość obiektów Dodatkową zaletą jest stosunkowo proste przetransformowanie go do algorytmu hierarchicznego. Wymagałoby to rekurencyjnego wywoływania dla każdej z ustalonych grup. Metoda doczekała się wielu modyfikacji. Wprowadzono różne ciekawe mechanizmy, które mają usprawnić przeszukiwanie przestrzeni dostępnych rozwiązań skupieniowych. Jednym z nich jest dzielenie i łączenie skupień. Podobnie jak to się odbywa w grupowaniu hierarchicznym. Odbywać miałoby się to za pomocą przenoszenia pomiędzy skupieniami tylko jednego obiektu w danej chwili, po czym następowałaby ocena rozwiązania. Na podobnych zasadach działa algorytm optymalizacji obliczeniowej nazywany symulowanym wyżarzaniem, który wybiera początkowe rozwiązanie, a następnie je modyfikuje w ustalony sposób i sprawdza, czy jest ono lepsze od poprzedniego. 3.1.3 Samoorganizujaca się mapa Grupowanie za pomocą samoorganizujących się map wykorzystuje w swoim działaniu sieci neuronowe. Sieci neuronowe są mechanizmem bardzo popularnym i chętnie wykorzystywnym na różnych polach informatyki. Zastosowania można wymieniać bez końca. O wiele krócej, niż wymienianie zastosowań, trwało by wymienianie zadań, w których sieci neuronowych nie można użyć. Jako przykład można wymienić aproksymację funkcji, kompresję obrazów, rozpoznawanie pisma odręcznego, czyli de facto klasyfikację, która polega na przyporządkowaniu pewnemu obrazkowi odpowiadającej mu litery z alfabetu oraz właśnie grupowanie. Zanim jednak rozpocznę omawianie grupowania za pomocą samoorganizujących się map wyjaśnię czym właściwie jest sieć neuronowa. Co kryje się pod tym tajemniczym pojęciem i czy jest tak skomplikowane, jak można przypuszczać. 3.1.3.1 Sieć neuronowa Informatyka, tak jak wiele innych nauk próbuje czerpać z natury ile się tylko da. Nie ma na świecie bardziej zmyślnych mechanizmów, niż te, które pozwalają przetrwać organizmom żywym. Sieć neuronowa wzorowana jest na mózgu. Idea i zasada działania sieci neuronowych w informatyce jest bardzo zbliżona do działania jej biologicznego odpowiednika. Jak zapewne łatwo się domyślić niemożliwym byłoby dokładne odwzorowanie zachodzących w mózgu procesów dlatego wprowadzono pewne uproszczenia. Nie przeszkodziło to jednak stworzyć bardzo elastycznego narzędzia, które może posłużyć do rozwiązywania wszelakich problemów.