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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 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: Opiekun pracy: prof. dr hab. inż. Maria Pietruszka Dodatkowy opiekun: mgr inż. Magdalena Stobińska Łódź, wrzesień 2010

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

3 Spis treści 1 Wstęp Problematyka Cele pracy Przegląd literatury w dziedzinie Analiza zagadnienia Wprowadzenie do dziedziny problemu Eksploracja danych Problemy związane ze źródłem danych Pozyskiwanie informacji o użytkownikach stron Log serwera Podsłuchiwanie połączenia użytkownika z serwerem Dedykowany serwis internetowy Strategie przygotowywania rekomendacji Techniki analizy danych 14 4 Grupowanie Metody hierarchiczne K-średnich Samoorganizująca się mapa Sieć neuronowa Sieć Kohonena Klasyfikacja Sieci neuronowe na przykładzie wielowarstwowego perceptronu Klasyfikator Bayesa Twierdzenie Bayesa Klasyfikacja bayesowska Optymalny klasyfikator Bayesa Naiwny klasyfikator Bayesa Klasyfikowanie przykładów Przykład zastosowania NBC Metoda k-najbliższych sąsiadów Znajdowanie reguł asocjacji Reprezentacje struktur danych Kryteria oceny reguł

4 Spis treści Algorytm A priori Przykład Przeglad istniejacych rozwiazań Narzędzia analizy danych Systemy wykorzystujące rekomendacje Problem praktyczny Opis problemu Analiza wymagań Studium możliwości Wymagania funkcjonalne Ograniczenia projektu Projekt Projekt warstwy danych Projekt warstwy logiki Projekt warstwy interfejsu użytkownika Implementacja: punkty kluczowe Testy Podsumowanie Dyskusja wyników Ocena możliwości wdrożenia Fakty i mity Bibliografia 58

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

6 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

7 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 9, 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.

8 1.3 Przeglad literatury w dziedzinie Przeglad literatury w dziedzinie TODO Opisać szczegółowo poszczególne typy literatury (książki polskie i zagraniczne, artykuły oraz źródła elektroniczne)

9 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 [7] 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

10 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 [8] 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 [[7, 8]]. 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 2.1 przedstawia go za pomocą prostego diagramu.

11 Rysunek 2.1: Schemat metodologii CRISP-DM

12 2.3 Problemy zwiazane ze źródłem danych 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 [8] 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, ż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

13 2.4 Pozyskiwanie informacji o użytkownikach stron WWW 11 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, 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 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. Fragment loga pochodzi ze strony internetowej Listing 2.1 Listing przedstawiający log serwera NASA [01/Jul/1995:00:00: ] "GET /history/apollo/ HTTP/1.0" unicomp6.unicomp.net - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/ HTTP/1.0" [01/Jul/1995:00:00: ] "GET /shuttle/missions/sts-73/mission-sts-73.html HTTP/1.0" burger.letters.com - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/liftoff.html HTTP/1.0" [01/Jul/1995:00:00: ] "GET /shuttle/missions/sts-73/sts-73-patch-small.gif HTTP/1.0" burger.letters.com - - [01/Jul/1995:00:00: ] "GET /images/nasa-logosmall.gif HTTP/1.0" burger.letters.com - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/video/livevideo.gif HTTP/1.0" [01/Jul/1995:00:00: ] "GET /shuttle/countdown/countdown.html HTTP/1.0" d104.aa.net - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/ HTTP/1.0" [01/Jul/1995:00:00: ] "GET / HTTP/1.0" unicomp6.unicomp.net - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/count.gif HTTP/1.0" unicomp6.unicomp.net - - [01/Jul/1995:00:00: ] "GET /images/nasa-logosmall.gif HTTP/1.0" unicomp6.unicomp.net - - [01/Jul/1995:00:00: ] "GET /images/ksc-logosmall.gif HTTP/1.0" d104.aa.net - - [01/Jul/1995:00:00: ] "GET /shuttle/countdown/count.gif HTTP/1.0" d104.aa.net - - [01/Jul/1995:00:00: ] "GET /images/nasa-logosmall.gif HTTP/1.0" d104.aa.net - - [01/Jul/1995:00:00: ] "GET /images/ksc-logosmall.gif HTTP/1.0" [01/Jul/1995:00:00: ] "GET /images/ksclogo-medium.gif HTTP/1.0" [01/Jul/1995:00:00: ] "GET /images/launch-logo.gif HTTP/1.0" 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.

14 2.4 Pozyskiwanie informacji o użytkownikach stron WWW 12 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, 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 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 internetowych. 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.

15 2.5 Strategie przygotowywania rekomendacji 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 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.

16 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 kolejnych trzech rozdziałach 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 technik analizy danych. Będą to: grupowanie klasyfikacja reguły asocjacji 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 możliwych rozmieszczeń. Żeby lepiej ocenić jak wielka jest to liczba napiszę tylko, że 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ść cech dla

17 3 Techniki analizy danych 15 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)

18 Rozdział 4 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. Rysunek 4.1 ilustruje ideę grupowania obiektów do trzech grup. Każdy obiekt opisany jest za pomocą wartości dla pewnych atrybutów, co pozwala umiejscowić go w jakimś układzie współrzędnych wielowymiarowych. 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 prze-

19 4.1 Metody hierarchiczne 17 Rysunek 4.1: Idea grupowania danych twarzania. 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. 4.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 4.2. Przedstawione drzewo prezentuje podział liczb na podstawie pewnego kryterium (nie jest ono w tej chwili ważne). 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 poje-

20 4.1 Metody hierarchiczne 18 Rysunek 4.2: Przykładowy dendrogram powstały w wyniku przeprowadzenia grupowania hierarchicznego dynczych obiektach (w całości jest zapisany za pomocą diagramu blokowego na rysunku XXX). 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 [7]jak i w [8] 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ństwo - 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ą

21 Rysunek 4.3: Diagram blokowy dla algorytmu grupowania aglomeracyjnego (maksymalizujacy podobieństwo)

22 4.2 K-średnich 20 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 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ć 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. 4.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.

23 Rysunek 4.4: Diagram blokowy dla algorytmu grupowania metoda k-średnich

24 4.3 Samoorganizujaca się mapa 22 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 zapis przedstawia wzór 4.1 (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 (4.1) 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. 4.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 wykorzystywanym 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ć.

25 4.3 Samoorganizujaca się mapa 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. Sieci neuronowe zbudowane są z połączonych ze sobą neuronów - odpowiedników biologicznych komórek nerwowych. Mogą mieć budowę warstwową, co oznacza, że wybrany neuron z warstwy jest połączony ze wszystkimi neuronami z warstwy kolejnej. Sieci neuronowe mogą charakteryzować się różnymi właściwościami. Na właściwości największy wpływ ma budowa pojedynczego neuronu. Model matematyczny jest bardzo prosty. Podstawowy neuron jest elementem liniowym i składa się z ustalonej liczby wejść, elementu sumującego oraz wyjścia. Rysunek 4.5 przedstawia jego schemat budowy. Zasada działania pojedynczego neuronu również jest bardzo prosta. Na wszystkie wejścia neuronu podawany jest sygnał. Każde z wejść posiada swój współczynnik wagowy. Nazwa się wzięła stąd, że owy współczynnik może być interpretowany jako znaczenie wybranego wejścia. Wartość wyjściowa y neuronu, będąca odpowiedzią na zadany sygnał jest sumarycznym pobudzeniem neuronu, często oznaczanym jako -net. Zakładając, że neuron posiada n wejść, z których każde i-te wejście posiada swoją wagę w i, to wartość będącą odpowiedzią neuronu można opisać za pomocą wzoru 4.2: y = net = k i=1 w j x j (4.2) Analizując wzór 4.2 można zauważyć, że całkowite pobudzenie neuronu zależy od stopnia podobieństwa poszczególnych elementów x j sygnału x z odpowiadającymi im współczynnikami wagowymi w j wektora wag w. Im większe jest to podobieństwo tym większa będzie wartość pobudzenia neuronu. Rysunek 4.5: Schemat przedstawiajacy budowę neuronu Celem postawionym przed siecią neuronową jest przystosowanie się do pewnego sygnału, aby móc odpowiadać zgodnie z jakimś założeniem. Proces adaptacji do sygnałów nazywany jest uczenie albo trenowaniem sieci neuronowej. Uczenie odbywa się za pomocą przykładów. Pojedynczy przykład składa się z dwóch elementów < x,z >, gdzie x, to wektor wartości wejściowych, a z - wartość oczekiwana. Uczenie odbywa się poprzez prezentowanie przykładów i sprawdzanie jak bardzo różni się odpowiedź sieci neuronowej od wartości oczekiwanej. Podczas nauki trzeba potrafić oceniać, czy sieć neuronowa, a w tym przypadku pojedynczy neuron już został nauczony. Najwygodniejszym i zarówno najczęściej spotykanym kryterium oceny jakości nauki jest błąd średnio kwadratowy wyrażony wzorem 4.3(gdzie p - ilość przykładów) : E(W) = 1 2 p p=1 (z p y p ) 2 (4.3)

26 4.3 Samoorganizujaca się mapa 24 Korzystając z powyższego kryterium możemy stwierdzić, czy sieć neuronowa powinna być dalej poddawana procesowi nauki. Trzeba jeszcze wyjaśnić jak przebiega sama nauka, bo przecież podawanie w nieskończoność przykładów nic nowego nie wprowadzi. Najbardziej podstawową metodą nauki sieci neuronowej (również dotyczy pojedynczego neuronu) jest reguła delta. Została wprowadzona przez panów Widrowa oraz Hoffa w roku 1960 i jest do tej pory z sukcesami wykorzystywana. Modyfikacjom podlega wektor wagowy każdego neuronu. Liniowy neuron podlegający nauce nosi nazwę ADALINE, czyli ADAptive LInear NEuron. Załóżmy, że ilość iteracji nauki jest skończona. W każdej i-tej iteracji wagi będą zmodyfikowane zgodnie z zależnością 4.4: w i+1 = w i + w i (4.4) Jest to ogólne podejście poszukiwania optymalnego zestawu wag. W każdej iteracji wektor wagowy jest odpowiednio korygowany, aby był jak najbardziej podobny do wektora sygnałów wejściowych. Jeśli odpowiedź sieci na zadany wektor wejściowy jest większa niż wartość oczekiwana y>z, to wtedy z definicji iloczynu skalarnego dla dwóch wektorów kąt pomiędzy tymi wektorami będzie za mały i należy go zwiększyć. Sprowadza się to do zmiany kierunku wektora wagowego w kolejnej iteracji, czyli de facto odpowiedniej zmiany poszczególnych jego wartości. Ostateczną formułę reguły delta przedstawia wzór 4.5. w i+1 = w i + α(z i y i ) x i (4.5) Współczynnik α określa jak duża zmiana powinna być zastosowana dla wybranej iteracji. Nazywany jest często krokiem nauki, natomiast różnica wartości oczekiwanej oraz odpowiedzi sieci (z y) jest oznaczana jako δ. W zrozumieniu całego mechanizmu może pomóc rysunek 4.6. Przedstawia on schematyczną ścieżkę sygnałów w liniowym neuronie inne sieci. Rysunek 4.6: Schemat procesu nauki pojedynczego neuronu realizowanego przez adaptację wektora wagowego Jak wspomniałem wcześniej duże znaczenie w zachowywaniu się sieci neuronowych mają same neu-

27 4.3 Samoorganizujaca się mapa 25 rony. Występuje wiele wariacji dotyczących samej budowy. Najczęściej mówi się o neuronach z pojedynczym wyjściem tzw. zdegradowanych, ale można spotkać także takie, które mają tych wyjść kilka. Takie rozwiązania stosuje się zazwyczaj przy szybkich przekształceniach liniowych Sieć Kohonena Sieć Kohonena jest siecią samoorganizującą wymyśloną w latach 80 przez norweskiego uczonego Teuvo Kohonena. Do tej pory jest z powodzeniem znajduje swoje zastosowania. Na jej podstawie powstało wiele innych zmodyfikowanych samoorganizujących się sieci neuronowych. Omówienie sieci Kohonena należy zacząć od wyjaśnienia czym tak właściwie jest sieć samoorganizująca się. W poprzedniej sekcji wyjaśniłem czym jest sieć neuronowa. Wprowadziłem do podstawowych pojęci wykorzystywanych w tej dziedzinie informatyki i wyjaśniłem podstawowe aspekty działania sieci neuronowej i pojedynczego neuronu. Było to konieczne, abym mógł w tech chwili swobodnie posługiwać się tą terminologią. Wcześniej o tym nie napisałem, ale sieć neuronowa może być uczona z nauczycielem lub może uczyć się sama. W nauczaniu z nauczycielem potrzebny jest arbiter, który stwierdzi, czy proces musi być kontynuowany oraz nadzoruje każdy etap nauki. W przypadku nienadzorowanej sieci neuronowej taki arbiter ni jest konieczny. Sieć potrafi sama stwierdzić jak ma się uczyć. Siłą samoorganizujących się sieci neuronowych jest to, że potrafią one nie tylko samodzielnie się uczyć, ale także potrafią uzgadniać i rozdzielać odpowiedzialność pomiędzy wszystkie neurony. Daje to możliwość znajdowania ciekawych i często bardzo złożonych odwzorowań, które zazwyczaj nie mogą zostać deterministycznie określone lub wogóle przewidziane. Sieć Kohonena nosi nazwę warstwy topologicznej. Jest tak, ponieważ w podstawowej wersji, jest to pojedyncza warstwa neuronów, z których każdy ma n-elementowy wektor wag i jedno wyjście, gdzie wystawiana jest odpowiedź na zadany sygnał. Jednowarstwową sieć Kohonena przedstawia rysunek 4.7. Na rysunku kółkami oznaczone są neurony, natomiast prostokąty oznaczają wejścia sieci. W praktycznych, Rysunek 4.7: Architektura jednowarstwowej sieci Kohonena rzeczywistych rozwiązaniach sieci Kohonena oraz inne sieci samoorganizujące obsługują nie jedno (jak na rysunku schematycznym), ale nawet do kilkudziesięciu wejść. Stąd stwierdzenie faktu, że nadają się dla znajdowania bardzo złożonych odwzorowań (wiele zmiennych). Ilość wyjść może być jeszcze większa, ponieważ rozmiary sieci mogą osiągnąć niebagatelne rozmiary. W warstwie topologicznej może znaleźć się nawet tysiące neuronów. Do działania sieci neuronowej niezbędny jest n-elementowy wektor wartości wejściowych, który jest wysyłany do każdego j-tego neuronu ( j = 1,..,m oraz mε N). Wektor wagowy każdego neuronu musi posiadać taki sam rozmiar jak wektor wartości wejściowych, aby można sprawdzić podobieństwo dwóch wektorów. Podobieństwo jest utożsamiane z miarą odległości, czyli im wartość miary odległości jest więk-

28 4.3 Samoorganizujaca się mapa 26 sza, tym podobieństwo wektorów mniejsze. Jeśli wartość miary odległości jest równa 1, to wektory są identyczne. Do wyliczania miary odległości można wykorzystać dowolną metodę opisaną przeze mnie na stronie na stronie 15. Ważne jest, aby obydwa wektory brane do porównywania były znormalizowane. Zapewnia to, że wpływ na wynik porównania będą miały jedynie kierunki wektorów w przestrzeni wielowymiarowej. Ich długość będzie taka sama i równa jedności. W swojej książce [1]prof. Osowski zwraca uwagę na fakt, ze wystarczy, aby wektor wartości wejściowych będzie znormalizowany, a wektor wagowy, który będzie poddawany adaptacji będzie dążył do upodobnienia się do wektora wartości. W efekcie zostanie znormalizowany. Do przeprowadzenia normalizacji można skorzystać z metody Minimum-Maksimum, opisywanej wcześniej we wprowadzeniu (rozdział 3 na stronie 15 - wzór 3.6). Istnieje też inna metoda (wzór 4.6) normalizacji, którą można zastosować. Przeczytałem o niej w [2, 1]. x i = x i (4.6) n (x j ) 2 j=1 Mechanizm samoorganizacji oparty jest o istnienie sąsiedztwa pomiędzy neuronami. nie znaczy to, że są ze sobą połączone i wymieniają się wartościami, ale leżą względem siebie blisko. Określenie bliskości może być interpretowane dwojako. Pierwsze podejście opiera się na położeniu neuronów, które tworzą mapę. Dokładne określenie zależy od organizacji mapy neuronów. Może to być zwykła lista, płaszczyzna lub jakaś bryła w przypadku trzech wymiarów. Drugie podejście określa bliskość na podstawie odpowiedzi na zadany sygnał wejściowy. W zależności od odpowiedzi neurony są szeregowane od najlepszego do najgorszego. Będą wtedy wiedziały jaki neuron o podobnym przystosowaniu do sygnału leży obok, albo dwa pola dalej. Rysunek 4.8: Sasiedztwo neuronów w sieci Kohonena Rysunek 4.9: Szczególny przypadek sasiedztwa - sasiedztwo jednowymiarowe Przykładowe podejścia do realizacji sąsiedztwa pokazane są na rysunkach 4.8 i 4.9 (im dalej od wybranego neuronu, tym słabsze nasycenie koloru). Najczęściej stosowane jest to z rysunku 4.8 ponieważ utożsamiane jest z mapą działania neuronów, która może dać ciekawy efekt wizualizacyjny. Na wspomnianym rysunku przerywanymi liniami zostały oznaczone dodatkowe połączenia, które nie zawsze są uwzględniane. Można to potraktować jako rozszerzoną wersję sąsiedztwa. Sąsiedztwo odgrywa ważną rolę w adaptacji wektora wagowego każdego neuronu. Określa, czy wybrany neuron powinien być poddawany nauce czy też nie. Są także takie metody wyznaczania współczynnika sąsiedztwa, które poza odpowiedzią TAK/NIE pozwalają uczyć neuron w mniejszym stopniu.

29 4.3 Samoorganizujaca się mapa 27 W samoorganizujących się mapach odwzorowań działających w oparciu o algorytm Kohonena najpierw określa się zwycięzcę rywalizacji stosując wybraną miarę odległości wektora wag w neuronu oraz wektora wartości wejściowych x, a następnie wylicza się wartość współczynnika adaptacji neuronów należących do sąsiedztwa neuronu wygranego. Wartość tego współczynnika decyduje o szybkości zmian wag neuronów sąsiadujących z wygranym w pewnym promieniu λ. Adaptacja wag i-tego neuronu odbywa się zgodnie z zależnością 4.7 (w z - wektor wag neuronu wygrywającego rywalizację): w i = w i + η G(w i,w z ) [x w i ] (4.7) Współczynnik η określa jak szybko ma przebiegać uczenie. W książce [3] Ryszard Tadeusiewicz wyjaśnił działanie współczynnika nauki za pomocą prostej anegdoty. Naukę neuronu można przyrównać do skaczącego kangura pomiędzy dwoma pagórkami, któremu zasłonięto oczy. On wie, w którym kierunku ma skoczyć, ale nie wie jak duży ma być to skok, aby trafił w odpowiednie miejsce. Będzie próbował dopóki mu się uda. Wracając do adaptacji wag. Do wyliczania współczynnika sąsiedztwa można wykorzystać jedną z kilku wariantów funkcji sąsiedztwa G(i,i z ): Klasyczna - podstawowa funkcja sąsiedztwa dla algorytmu Kohonena. Uczy neurony w takim samym stopniu jeśli znajdują się w odpowiedniej odległości od neuronu wygrywającego { 1 dla w = w G(w,w z ) = z (4.8) 0 dla w w z WTA (zwycięzca bierze wszystko) - adaptacji podlega tylko neuron zwycięzcy { 1 dla d(w,w G(w,w z ) = z ) λ 0 dla pozostalych (4.9) Gauss a - bardziej złożona funkcja sąsiedztwa. Im dalej od neuronu wygrywającego tym współczynnik sąsiedztwa mniejszy G(w,w z ) = e d2 (w,wz) 2 λ 2 (4.10) Początkowe wartości wektorów wagowych dla wszystkich neuronów są ustalane losowo z zadanego przedziału. Może zdarzyć się taka sytuacja, że część neuronów będzie na tyle daleko od pozostałych, że nie będzie miała szans zaklasyfikować się do grupy podlegającej nauce. Trzeba o to zadbać, bo w przeciwnym razie wyniki uzyskane mogą być niedokładne. Sytuacja ta może też mieć miejsce gdy jeden z neuronów, lub grupa jest o wiele lepiej przystosowany niż inne. W rezultacie tylko on będzie adaptowany, a reszta nie. Rozwiązaniem tego problemu jest wprowadzenie drobnej modyfikacji nazywanej mechanizmem zmęczenia neuronów. Kiedy jest wykorzystywany pozwala na zapewnienie udziału wszystkich neuronów w samoorganizacji. Uwzględnia liczbę zwycięstw poszczególnych neuronów i organizuje proces uczenia w taki sposób, aby dać szansę zwycięstwa neuronom mniej aktywnym. Działanie tego mechanizmu jest oparte o zachowanie się neuronów biologicznych. Jeśli neuron wygra rywalizację, to zaraz po zwycięstwie będzie odpoczywał określony czas przed następnym współzawodnictwem. Jedno z podejść do tego mechanizmu zakłada zastosowanie wartości potencjału p (gdzie p ε [0 : 1] ) dla każdego neuronu, który jest modyfikowany, podczas każdej k-tej prezentacji wzorca wejściowego x n-neuronom: p i (k + 1) = { pi (k) + 1 n p i (k) p min (4.11) Wartość potencjału minimalnego p min decyduje o tym, kiedy przestawić stan neuronu na odpoczywa.jeśli aktualna wartość potencjału spadnie poniżej p min, to i-ty neuron będzie miał zmieniony stan i nie będzie brał udziału w rywalizacji do czasu, aż jego potencjał nie wzrośnie, czyli da szansę na zwycięstwo innym neuronom. W literaturze traktującej o sieciach samoorganizujących nie ma podanego jednoznacznego sposobu na określanie błędu sieci Kohonena. Wynika to w pewnym stopniu z faktu, że sieć uczy się bez nadzoru, a

30 4.3 Samoorganizujaca się mapa 28 więc z definicji nie ma złych i dobrych odpowiedzi. Jedną z możliwości jest badanie wektorów błędu jako odległości między wektorami ze zbioru uczącego a najbliższymi względem nich wektorami wag neuronów, czyli wektorów wag zwycięzcy. Odległość tych wektorów może w pewnym stopniu informować o zdolności sieci do grupowania danych. Można jednak z powodzeniem przyjąć następującą metodę pomiaru błędu sieci Kohonena: gdzie: E = 1 p p i=1 x i w i (4.12) p ilość wzorców prezentowanych sieci, x i wektor wartości sygnału wejściowego dla wybranego wzorca, w i wektor wag neuronu wygrywającego dla wybranego wzorca Cały algorytm można zapisać w następujących krokach (zakładam, że dane wejściowe są już odpowiednio przygotowane): i jest licznikiem epok j jest licznikiem wektorów wejściowych p min minimalna wartość potencjału, która dopuszcza neuron do rywalizacji Wszystkie neurony na początku nauki posiadają stan aktywny oraz potencjał pozwalający im brać udział w rywalizacji. 1. i=0; j=0 ; ZMECZENIE=TRUE ; ZMNIEJSZAJWSPNAUKI= FALSE ; 2. Wylosuj wagi dla wszystkich neuronów warstwy odwzorowującej 3. Jeśli wartość licznika i osiągnęła wartość równą liczbie epok, po której ma nastąpić wyłączenie zmęczenia, to ZMECZENIE= FALSE oraz ZMNIEJSZAJWSPNAUKI=TRUE 4. Przetasuj zbiór wzorców 5. Jeśli ZMNIEJSZAJWSPNAUKI=TRUE, to zmniejsz wartość współczynnika nauki η 6. Jako wartości neuronów warstwy wejściowej ustaw wartości j-tego wzorca 7. Policz miary odległości wektorów wagowych każdego neuronu oraz wektora wzorcowego 8. Znajdź neuron wygrywający (tylko wśród neuronów aktywnych), czyli ten o najmniejszej odległości wektora wagowego od wektora wzorca 9. Dla każdego neuronu warstwy odwzorowującej policz współczynnik adaptacji jako wartość funkcji sąsiedztwa względem neuronu zwycięskiego 10. Jeśli mechanizm zmęczenia neuronów jest włączony, to policz nowa wartość potencjału i w oparciu o wartość p min uaktualnij stan neuronu 11. Uaktualnij wartości wag wszystkich neuronów wykorzystując policzone wartości współczynnika adaptacji 12. Zwiększ licznik wzorców j 13. Jeśli pozostały jeszcze jakieś wzorce do podania w tej epoce, to idź do punktu 6, w innym wypadku kontynuuj 14. Policz błąd dla i-tej epoki 15. Zwiększ licznik epok i

31 4.3 Samoorganizujaca się mapa Jeśli wartość licznika i jest mniejsza od maksymalnej ilości epok oraz błąd sieci nie osiągnął jeszcze pożądanej wartości, to idź do punktu 3, w innym wypadku KONIEC Rysunek 4.10: Diagram blokowy dla algorytmu grupowania za pomoca sieci Kohonena

32 4.3 Samoorganizujaca się mapa 30 Wady i zalety Sieć Kohonena jako reprezentant grupy samoorganizujących się sieci neuronowych jest uogólnieniem metody K-średnich. Zasada działania jest podobna. Różnice widać w etapie zmiany środków centroidów grup. W algorytmie K-średnich są one wybierane na nowo, natomiast w algorytmie Kohonena są one odpowiednio adaptowane w kolejnych etapach uczenia. Bardzo ciekawym urozmaiceniem w stosunku do metody K-średnich jest reprezentacja graficzna, która jest również poszukiwanym rozwiązaniem. Jest to mapa, która każdej próbce przyporządkowuje informację o neuronie, który do niej najlepiej pasuje. Neuron ten jest środkiem grupy. Metoda grupowania za pomocą sieci Kohonena może być stosowana w różnych problemach grupowania. Jest w stanie znaleźć odpowiednie powiązania dla problemów o wielu zmiennych i wielu grupach. Grupowanie jest metodą odkrywania wiedzy, która ma sens w pewnym wąskim zagadnieniu. To osoba zlecająca badania musi wiedzieć jakich wyników oczekuje. Algorytm Kohonena wymaga podania odpowiedniej reprezentacji danych wejściowych. Muszą one być odpowiednio przygotowane tak jak dla innych metod grupowania. Przykładowo, gdy analizujemy dane księgarni internetowej i chcemy poznać jakimi gatunkami książek są zainteresowani wybrani klienci, musimy przygotować odpowiednio wektory wejściowe reprezentujące ilość kupionych przez klienta książek z każdej kategorii, a następnie tak przygotowane dane przekazać sieci neuronowej. Wyniki działania algorytmu zależą od ustalonych warunków początkowych. Wagi neuronów są ustalane w sposób losowy, dlatego aby potwierdzić uzyskany rezultat przetwarzanie powinno być przeprowadzone kilkukrotnie.

33 Rozdział 5 Klasyfikacja Klasyfikacja należy do metod uczenia z nadzorem. Zadanie klasyfikacji polega na podaniu pewnej reguły decyzyjnej dla rozpatrywanej próbki obserwacyjnej. Często mówi się też o regule dyskryminacyjnej lub klasyfikacyjnej. Aby taka reguła decyzyjna mogła zostać utworzona dane podlegające przetwarzaniu muszą posiadać pewną ilość niezbędnych informacji. Zbiór danych zazwyczaj nazywa się populacją, a elementy tego zbioru próbkami obserwacyjnymi lub obiektami. Zakłada się również istnienie zbioru klas, czy też etykiet, które w odpowiedni sposób podsumowują każdy obiekt. Przykładem takiego zbioru klas może być {dobry samochód miejski, zły samochód miejski}. Każdy obiekt ma swoją charakterystykę opisywaną przez pary atrybut - wartość. Są to cechy obiektu, na podstawie których podejmowana jest decyzja dotycząca przyporządkowania etykiety ze zbioru etykiet dla tego obiektu. Większość metod klasyfikacji działa zgodnie z pewną metodologią. Tak jak wspomniałem wcześniej do działania niezbędny jest zbiór uczący, czyli zawierający obiekty z przypisanymi już etykietami. Jest to niezbędne aby mechanizm (czy to sieć neuronów, czy jakiś inny kombinatoryczny) mógł nauczyć się odwzorowań. Ważne jest, aby obiekty z tego zbioru uczącego posiadały jak najwięcej pełnych informacji. Pełnych, czyli ustalonych. Przykładowo jeśli rozpatrujemy spalanie paliwa samochodu na 100 kilometrów, to idealnym scenariuszem byłoby, gdyby dla wszystkich aut to spalanie było znane. Niepełne informacje na temat obiektu mogą doprowadzić do stworzenia niepoprawnej reguły decyzyjnej. Mechanizm podlega nauce w oparciu o zbiór uczący, ale aby mógł być używany dla innych przypadków należy sprawdzić, jak to wytrenowane narzędzie radzi sobie z danymi pochodzącymi ze zbioru uczącego, ale z ukrytymi informacjami o docelowej etykiecie. Jest to konieczne, aby zminimalizować ryzyko błędu. Jeśli test przebiegł pomyślnie można walidować model na danych innych niż te ze zbioru uczącego. Jeśli wyniki nie są prawidłowe i błąd klasyfikacji jest zbyt duży, to należy sprawdzić czemu tak się stało. Najczęściej popełnianym błędem jest niepoprawne przygotowanie zbioru uczącego. Z kolei na etapie walidacji na zbiorze wyjściowym zawierającym dane nie pochodzące ze zbioru uczącego może dojść do sytuacji, w której klasyfikacja również będzie niepoprawna. Możliwe jest wtedy, że zbiór uczący posiadał błędne założenia lub zbyt indywidualnie i szczegółowo traktował obiekty. Klasyfikator nauczył się odwzorowań na pamięć i nie był w stanie znaleźć odwzorowania dla nowych obiektów. Jest to odwieczny kompromis pomiędzy złożonością, a zdolnością uogólniania. Bardzo trudne jest zbalansowanie tych dwóch racji. Jeśli model będzie zbyt złożony stanie się zbyt dopasowany do danych. Jeśli będzie zbyt ogólny może nie wykazywać popranych nawyków zgodnych z intuicją, a dane zostaną niepoprawnie zaklasyfikowane. W tym rozdziale zaprezentuję trzy podejścia do klasyfikacji. W każdym z nich zwrócę uwagę na kluczowe aspekty ich działania. Pierwsze będzie prezentowało zastosowanie sieci neuronowej jako klasyfikatora. Następnie przedstawię podejście kombinatoryczne za pomocą algorytmu k-najbliższych Sąsiadów, a na samym końcu podejście statystyczne wykorzystując Naiwny Klasyfikator Bayesa.

34 5.1 Sieci neuronowe na przykładzie wielowarstwowego perceptronu Sieci neuronowe na przykładzie wielowarstwowego perceptronu W ostatnim rozdziale przedstawiłem przydatność sieci neuronowych w grupowaniu danych. Okazuje się, że mogą one mieć znacznie więcej zastosowań. Nadają się również jako klasyfikatory. Mogą np. rozpoznawać cyfry pisane ręcznie, a jest to nic innego jak zadanie klasyfikacji obrazów dla 10 klas (od 0 do 9). Skoro jest to narzędzie tak popularne w obecnych czasach dobrze jest wiedzieć jak ono funkcjonuje, aby zrozumieć jego działanie. Sieci neuronowe same w sobie są tematem bardzo rozległy. Poświęcone jest im wiele publikacji i książek. Nie sposób w krótkim opracowaniu skondensować całej wiedzy na ten temat. Chciałbym jednak przybliżyć najważniejsze elementy i zasady rządzące funkcjonowaniem sieci neuronowych. Zanim opisze strukturę bardziej złożonej sieci neuronowej oraz jej zachowanie chciałbym jeszcze nawiązać do tego jak pojedynczy neuron oraz ich grupa klasyfikuje obiekty. Załóżmy, że mamy zbiór obiektów oraz dwie klasy liniowo separowalne {1 - kółka, 2 - trójkąty}, widoczne na rysunku XXX. Pojęcie liniowo separowalne oznacza tyle, że da się poprowadzić hiperpłaszczyznę rozdzielającą obiekty dwóch klas tak, że po jednej stronie są obiekty tylko klasy 1, a po drugiej tylko obiekty klasy 2. W przypadku, gdy rozpatrujemy dwa wymiary, hiperpłaszczyzną będzie prosta, dla trzech wymiarów będzie to już płaszczyzna itd. Rysunek 5.1: Podział zbioru obiektów na dwie klasy liniowo separowalne Jest to sytuacja idealna. Może się jednak zdarzyć sytuacja, ze obiekty będą tak rozłożone (na podstawie wartości wektora cech), że taki podział będzie niemożliwy. Takich prostych rozdzielających, jak ta widoczna na poprzednim rysunku może być nieskończenie wiele i wszystkie będą poprawnym rozwiązaniem. Rozłożenie obiektów w przestrzeni wielowymiarowej ma ogromny wpływ na równanie opisujące hiperpłaszczyznę rozdzielającą. W zależności od złożoności sieci neuronowej może ona radzić sobie lepiej lub gorzej z klasyfikacją obiektów do odpowiednich grup.

35 5.1 Sieci neuronowe na przykładzie wielowarstwowego perceptronu 33 Rysunek 5.2: Schemat budowy neuronu liniowego Rysunek 5.3: Schemat budowy perceptronu - neuron nieliniowy Wcześniej o tym nie wspomniałem, ale model neuronu, który przedstawiłem we wprowadzeniu do sieci neuronowych ( na stronie 23) może posiadać jeszcze jeden element. Dla przypomnienia rysunek 5.2 przedstawia ponownie model ADALINE opisany wcześniej we wprowadzeniu (4.3.1). Dodatkowym elementem, który się może pojawić jest to blok aktywacji. Najprościej rzecz ujmując jest to funkcja realizująca jakieś przekształcenie na wartości pobudzenia. Taki model neuronu nazywa się perceptronem. Różni się tym od ADALINE, że w procesie uczenia neuronu ADALINE, blok aktywacji jest pomijany (nie istnieje). Pod uwagę brana jest tylko wartość pobudzenia sieci. W przypadku perceptronu blok aktywacji ma wpływ na wartość wyjściową sieci i jest uwzględniany w procesie uczenia. Schemat budowy perceptronu jest widoczny na rysunku XX. Najczęsciej stosowaną funkcją aktywacji jest funkcja sigmoidalna. Wyrażona jest wzorem 5.1: y = e x (5.1) Jest to funkcja najpopularniejsza ze względu na swój charakter. Przebieg tej funkcji przedstawia rysunek 5.4. Rysunek przedstawia wykres funkcji sigmoidalnej na przedziale 5 < x < 5. Dziedziną funkcji jest zbiór liczb rzeczywistych. Funkcja przyjmuje wartości z przedziału od 0 do 1. W punkcie 0 następuje powiedzmy kolokwialnie przegięcie. W pewnej odległości na lewo i prawo od środka dziedziny można powiedzieć, że funkcja sigmoidalna ma charakter liniowy. W miarę jak oddalamy się od tego miejsca funkcja zyskuje charakter liniowy. Poza pewnym przedziałem jest prawie stała. Siła naszych umiejętności postrzegania i kojarzenia bierze się stąd, ze neurony w mózgu choć same są prostej budowy to w połączeniu mogą wykonywać bardzo złożone obliczenia. Tak samo jest ze sztucznymi sieciami neuronowymi. Neurony mogą tworzyć warstwy, mogą tworzyć sieć połączeń, mogą nawet tworzyć sprzężenia zwrotne. Sieci ze sprzężeniami są rzadziej wykorzystywane, dlatego nimi zajmował się nie będę. Zaprezentuję natomiast sieć nazywaną wielowarstwowym perceptronem. Przykład prostej sieci przedstawia rysunek 5.5. Jest to sieć warstwowa, jak sama nazwa mówi. Wyróżnia się w niej trzy warstwy. Warstwę wejściową, która nie bierze udziału w procesie nauki. Pełni rolę medium propagującego sygnał. Każdy neuron posiada jedno wejście o wadze równej 1 i jednostkowej funkcji aktywacji. Kolejna warstwa

36 5.1 Sieci neuronowe na przykładzie wielowarstwowego perceptronu 34 Rysunek 5.4: Przebieg funkcji sigmoidalnej na przedziale [ 5; 5] nosi nazwę ukrytej. Każdy neuron ma zestaw wag o odpowiednim rozmiarze, równym ilości sygnałów pochodzących z warstwy wejściowej. To tutaj dzieje się cała magia. Warstwa ukryta wykonuje większą część pracy przygotowując sygnały do interpretacji dla warstwy wyjściowej, która zwraca wyniki. Ilość neuronów w warstwie ukrytej jest bardzo istotna dla przetwarzania. Zbyt mała ich ilość powoduje duże błędy. Sieć nie jest w stanie odnaleźć odpowiedniego odwzorowania dla danych. Z kolei zbyt duża ilość neuronów w warstwie ukrytej sprawia, że sieć uczy się odwzorowania na pamięć i traci swoje zdolności uogólniające. Wielowarstwowy perceptron jest siecią jednokierunkową, bez sprzężeń. Jest też siecią pełną. Oznacza to, że każdy neuron z warstwy jest połączony tylko ze wszystkimi neuronami z warstwy następnej i nie jest połączony z żadnym neuronem ze swojej warstwy. Należy wspomnieć, że w perceptronie stosuje się dodatkowo jedno wejście więcej. Nazywa się je wejściem obciążającym (bias). Posiada ono na stałe sygnał jednostkowy, natomiast waga tego wejścia jest poddawana adaptacji, tak samo jak inne. Istnienie wejścia obciążającego dodaje neuronowi pewnej elastyczności. Jest on w stanie przesuwać dziedzinę dla funkcji aktywacji, co może sprawić, że nawet dla sygnału zerowego wartość będzie niezerowa. Doświadczenie pokazuje, że neurony z wejściem obciążającym uczą się znacznie szybciej. Wielowarstwowy perceptron wykorzystuje metodę uczenia z nadzorem, która wymaga dużego zbioru przykładów. Pojedynczy przykład zawiera wartość wejściową oraz wartość oczekiwaną. Mogą to być wektory. Wszystko zależy od zadania, jakie sieć rozwiązuje. Istniej wiele metod nauki wielowarstwowego perceptronu. Najbardziej popularną jest metoda wstecznej propagacji. W metodzie wstecznej propagacji każdy przykład jest prezentowany sieci. Obliczana jest dla niego wartość wyjściowa sieci i porównywana z wartością oczekiwaną zawartą w przykładzie. Na tej podstawie obliczany jest błąd sieci. Błąd jest sumą kwadratów błędów dla każdego prezentowanego przykładu (wzór pojawi się w szczegółowym opisie algorytmu).błąd ten jest następnie propagowany do wszystkich neuronów w niższych warstwach i w oparciu o jego wartość przeprowadzana jest adaptacja wag. Cały problem sprowadza się zatem do znalezienia zbioru wag, który będzie minimalizował wspomniany błąd sieci. Zbieżność algorytmu można przyspieszyć poprzez zwiększenie kroku iteracji, oznaczmy go jako ν, jednak zbyt duża jego wartość może spowodować rozbieżność algorytmu. Nawiązując do anegdoty z kangurem. Będzie on wykonywał zbyt duże skoki, i zawsze przeskoczy docelowe miejsce. Innym sposobem na poprawienie zbieżności algorytmu jest wprowadzenie współczynnika momentum µ, który nadaje procesowi uczenia pewną bezwładność - uzależnia

37 5.1 Sieci neuronowe na przykładzie wielowarstwowego perceptronu 35 Rysunek 5.5: Wielowarstwowy perceptron - przykładowa sieć zmianę wag od poprzednich przyrostów wag. Poniżej zamieszczony został szczegółowy algorytm wstecznej propagacji błędów. ZAŁOŻENIA WSTEPNE: przez L oznaczmy ilość warstw naszej sieci przez N ( j) oznaczmy ilość neuronów w j-tej warstwie, j = 1,2,..,L przez y k oznaczmy wyjście k-tego neuronu aktualnej warstwy przez w i,k oznaczmy wagę i-tego wejścia k-tego neuronu N( j 1) przez S i oznaczmy sumę ważoną wejść neuronu, czyli i=1 y i w i (gdzie y i oznacza wartość wyjścia i-tego neuronu poprzedniej warstwy, a N ( j 1) oznacza ilość wejść neurony, czyli ilość neuronów poprzedniej warstwy (jeśli neuron posiada wejście obciążające, to ilość jego wejść równa się N ( j 1) + 1) wzorzec trenujący to para wektorów, z których pierwszy (E) podawany jest na wejście sieci, a drugi (C) przedstawia poprawne wartości wyjściowe, jakich oczekujemy od sieci - uzyskiwanych tych wartości będziemy uczyć sieć zbiór trenujący to zbiór wszystkich wzorców, które przedstawiamy sieci w procesie uczenia za kryterium stopu przyjmujemy uzyskanie przez sieć błędu mniejszego niż zadana wartość (np. 0,0001). Na ogół podaje się dodatkowe kryterium stopu w postaci ograniczenia liczby iteracji. błąd sieci obliczany jest następująco: Q = 1 2 G g=1 N(k) k=1 ( yk,g C k,g ) 2,gdzie Ck,g -oznacza oczekiwaną wartość k-tego wyjścia neuronu, G - oznacza ilość prezentowanych przykładów uczących, a g- oznacza prezentację danego wzorca trenującego KROKI ALGORYTMU: 1. Należy wybrać wartość ν > 0 (najlepiej, aby ν < 1) zwaną krokiem iteracji (nauki) 2. Należy wybrać wartość µ > 0 (najlepiej, aby µ < 1) zwaną momentum 3. Sprawdź kryterium stopu. Jeśli spełnione, zakończ naukę

38 5.1 Sieci neuronowe na przykładzie wielowarstwowego perceptronu Podaj kolejny wzorzec trenujący (para: wektor wejściowy i wektor oczekiwanych wartości wyjściowych) 5. Propagacja wprzód: dla każdego neurony sieci należy wyznaczyć sumę ważoną jego wejść S i oraz wyznaczyć wartość jego funkcji aktywacji y = f (S i ) ( wartość wyjściową tego neuronu). Oczywiście faza ta przebiega od pierwszej warstwy ( często jest to warstwa wejściowa), poprzez kolejne warstwy ukryte, aż do warstwy ostatniej - wyjściowej. 6. Propagacja wstecz: tę fazę wykonujemy w odwrotnej kolejności, czyli zaczynami od warstwy ostatniej (wyjściowej) i poruszamy się ku pierwszej warstwie ( jeśli sieć posada warstwę wejściową, to ta warstwa nie podlega uczeniu). Faza przebiega następująco: (a) Dla każdego neuronu warstwy wyjściowej należy obliczyć współczynnik δ k = (C k y k ) f (S i ), który związany jest z błędem, z jakim dane wyjście odpowiedziało na dane wejściowe (b) Dla każdego neuronu każdej warstwy niższej niż ostatnia (oprócz warstwy wejściowej, która nie N( j+1) ( ) podlega uczeniu) należy obliczyć współczynnik δ k = r=1 δr w k,r f (S i ), gdzie r iteruje po neuronach warstwy o jeden wyższej, a w k,r to waga k-tego wejścia r-tego neurony wyższej warstwy (k-te wejście jest połączone w wyjście k-tego neuronu aktualnej warstwy. (c) Każdemu neuronowi każdej warstwy (oprócz warstwy wejściowej) należy uaktualni wagi jego wejśc. Wykonuje się to za pomocą formuły: w i,k = w i,k + ν δ k y i + µ i,k, gdzie w i,k - nowa waga i-tego wejścia k-tego neurony aktualnej warstwy, y i - to wyjście i-tego neuronu warstwy o jeden niższej i,k - to wartość poprzedniego przyrostu wagi i-tego wejścia k-tego neurony. Wartość ta równa jest różnicy wartości w i,k i wartości tej wagi z poprzedniej iteracji (czyli zanim nadaliśmy tej wadze wartość w i,k ) 7. Jeśli zaprezentowano wszystkie wzorce (zakończono daną iterację), to przetasuj wzorce, aby kolejność prezentowania w kolejnej epoce była inna i idź do punktu 3. Jeśli nie wszystkie wzorce zostały jeszcze zaprezentowane, idź do punktu 4. Na podstawie własnego doświadczenia z sieciami neuronowymi mogę powiedzieć, że bez istnienia wejścia obciążającego sieć neuronowa uczy się bardzo opornie. Potrzebuje bardzo dużo epok lub nie jest w stanie się nauczyć. Wejście obciążające dba o to, aby wartość funkcji aktywacji nie była zerowa w momencie, kiedy na wszystkie inne wejścia neuronu podana jest wartość 0. Można to rozumieć także jako przesunięcie układu współrzędnych charakterystyki funkcji aktywacji w lewą lub w prawą stronę w zależności od wagi wejścia obciążającego. Powoduje to przesunięcie progu pobudzenia w stronę mniejszych lub większych wartości. Daje to sieci większe możliwości adaptacji, ponieważ np. dla mniejszych wartości wag może otrzymać taką samą wartość na wyjściu. Mogę również z powodzeniem stwierdzić, że wartości ν oraz µ mają decydujący wpływ na szybkość adaptacji sieci. Proces nauki sieci polega na dostosowywaniu wag do odpowiednich sygnałów na wejściach. Osiągane jest to poprzez odpowiednie zmiany wag uzależnione od błędu. Metoda określania błędu dla danego neuronu przypomina metodę najszybszego spadku. W tej metodzie musimy wiedzieć, w którym kierunku poruszać się, aby znaleźć optimum (tak dobrać wagi, aby błąd był jak najmniejszy), ale oprócz tego tak dobrać długość skoku w wybranym kierunku, aby zmiany nie były zbyt silne (wartość błędu się zmniejszała a nie zwiększała żeby nie przeskoczyć optimum). Wybranie współczynnika za małego prowadzi do bardzo powolnego procesu uczenia się (wagi są poprawiane w każdym kroku o bardzo niewielką wartość, więc trzeba wykonać dużo takich kroków). Z kolei zbyt duży współczynnik powoduje zbyt gwałtowne zmiany wag, co może prowadzić zaburzenia stabilności procesu uczenia (sieć miota się wkoło optimum, nie mogąc znaleźć odpowiednich wag). Proces nauki można zoptymalizować dodając człon momentum, który powoduje, że zmiany wag nie zależą tylko od wartości skoku w danym momencie, ale także od błędów popełnianych przez sieć w poprzednich iteracjach (epokach). Pozytywnym skutkiem tej sytuacji jest to, że szybciej dążymy do optimum, rzadziej zmieniając wagi, a proces uczenia jest spokojniejszy (wagi nie zmieniają się zbyt gwałtownie).

39 Rysunek 5.6: Diagram blokowy dla algorytmu wstecznej propagacji błędu jako metody nauki wielowarstwowego perceptrony

40 5.2 Klasyfikator Bayesa 38 Wady i zalety Niewątpliwą zaletą wielowarstwowego perceptronu jako klasyfikatora jest prostota. Jest on zbudowany z pojedynczych neuronów wykonujących proste obliczenia, które dopiero w skali makro nabierają sensu. Bardzo ciekawe jest to, że neuron nie wie czemu dokładnie służy obliczona przez niego wartość. Pozwala to na rozdzielenie odpowiedzialności i przeniesienie jej do wyższych warstw abstrakcji tworząc koordynatorów zarządzających procesem uczenia.umożliwia to bardzo łatwe zrównoleglenie, choćby przez rozproszenie neuronów po wielu procesorach w klastrach obliczeniowych. Daje to olbrzymi zysk wydajnościowy, którego nie da się przecenić, a w dodatku coraz bardziej przypomina działanie biologicznego mózgu. Cały proces nauki sprowadza się do znalezienia takiego zbioru wag dla neuronów, które minimalizują błąd. Można więc zapamiętać cały zestaw wag neuronów, co pozwoli na wykorzystanie sieci w przyszłości bez konieczności jej ponownego trenowania. Niestety sieci neuronowe mają także swoje wady. Jedną z nich jest trudność w budowaniu struktury połączeń oraz znajdowaniu odpowiedniej ilości neuronów tworzących sieć. Do każdego zadania trzeba podejść indywidualnie i metodą prób i błędów spróbować znaleźć strukturę, która daje najlepsze wyniki. Można w tym celu skorzystać z zaawansowanych metod poszukiwania rozwiązań takich jak algorytmy genetyczne i im zlecić odnalezienie optymalnej struktury sieci. Jest to jednak dodatkowa trudność. Aby sieć zdobyła dobrą zdolność uogólniania należy przedstawić jej duży zbiór przykładów. Może być on na tyle duży, że czas nauki będzie bardzo długi. Bardzo ważne jest również określenie poprawnego zbioru przykładów, takiego, który będzie rozważał najróżniejsze przypadki z całej przestrzeni możliwych rozwiązań. Nie tylko sytuacje najbardziej popularne, ale również te skrajne. Proces nauki opera się na losowej inicjalizacji wektorów wagowych wszystkich neuronów. Skutkiem tego jest różne zachowanie się sieci neuronowej w kolejnych uruchomieniach. Aby stwierdzić, że wyniki są poprawne należy przeprowadzić kilkakrotnie proces nauki. 5.2 Klasyfikator Bayesa W książce Pawła Cichosza[4] można przeczytać, że matematyczna teoria prawdopodobieństwa miała swoje początki już w XVI wieku, co stawia metody statystyczna na szczycie drzewa genealogicznego metod uczenia się. Pomimo tego, że ten dział nauki nie był w pełni sformalizowany, jednak metody i narzędzia jakie wprowadzał były stosowane w praktyce z dużym powodzeniem. Prawdopodobieństwo bardzo przydaje się w systemach uczących. Pozwala bowiem na interpretowanie pewnych regularności w zaobserwowanych sytuacjach, które zdarzają się codziennie, od rzucania kostkami do gry, po zjawiska zmiany pogody. Jest aparatem, który służy w pewien sposób do oceny naszej wiedzy na temat pewnych zjawisk. Paweł Cichosz w swojej książce [4] opisuje to zagadnienie bardzo dokładnie, ale zarazem tak aby czytelnik nie musiał brać głębokiego wdechu przed kolejnym rozdziałem. Powoli odkrywa przed czytelnikiem nowe możliwości jakie oferują metody probabilistyczne i nie wymaga dogłębnej znajomości statystyki, dlatego na tej książce będę opierał swoje przemyślenia Twierdzenie Bayesa W większości mechanizmów wnioskowania systemów uczących się w oparciu o metody probabilistyczne u podstaw leży twierdzenie wielebnego Thomasa Bayesa. Zostało on opublikowane dopiero po jego śmierci w 1763 roku. Traktuje ono o idei żonglowania prawdopodobieństwami warunkowymi, czyli prawdopodobieństwami zajścia pewnych zdarzeń pod warunkiem spełnienia pewnych założeń (źródłem definicji jest [5]). Definicja 1. Niech A i B będa dowolnymi zdarzeniami, A zawiera się w S i B zawiera się w S (S - zbiór zdarzeń elementarnych), przy czym prawdopodobieństwo zdarzenia A jest dodatnie, P(A) > 0. Prawdopodobieństwo warunkowe zdarzenia B pod warunkiem zajścia zdarzenia A jest dane wzorem P(B A) = P(A B) P(A). Dodatkowo prawdopodobieństwo P(B A) spełnia dwa następujace postulaty:

41 5.2 Klasyfikator Bayesa 39 P(A A) = 1 P(B A) = P(A B A) Stosowanie prawdopodobieństwa warunkowego pozwala na obliczenia interesujących prawdopodobieństw, co jest chwytem nie do przecenienia. Aby dobrze zrozumieć ideę reguły Bayesa, bo tak często nazywa się to twierdzenie, chciałbym opisać na początku pewne wielkości, które w matematycznym zapisie występują. Podstawowymi założeniami są istnienie zbioru danych oznaczonego symbolem D oraz istnienie prawdopodobieństwa zaobserwowania tych danych P(D). Dodatkowa wiedza na temat tych założeń jest na tym etapie zbędna. Oprócz zbioru danych zakładamy także istnienie pewnej hipotezy h (funkcji, przypisującej przykłady do pojęcia lub klasy, zgodnie z [6] najlepsza hipoteza jest rozumiana jako najbardziej prawdopodobna po zaobserwowaniu danych D), która należy do zbioru (przestrzeni) hipotez H. Przede wszystkim należy przyjąć, że dla każdej hipotezy h Histnieje pewne prawdopodobieństwo P(h), które nie zależało od innych wartości, obserwacji, mogących mieć wpływ na jego wartość. Gdyby prawdopodobieństwo P(h) byłoby zależne od jakichś danych ze zbioru D, to mielibyśmy do czynienia z prawdopodobieństwem warunkowym P(h D). Zgodnie z obranymi przez mnie oznaczeniami twierdzenie Bayesa będzie miało następującą postać. Twierdzenie 1. BAYESA Dla dowolnej hipotezy oraz zbioru danych D zachodzi równość: P(h D) = P(h) P(D h). (5.2) P(D) Wzór określa zależność, pomiędzy prawdopodobieństwami a priori 1 i a posteriori 2.W podanym wzorze występuje prawdopodobieństwo, o którym wcześniej nie wspomniałem, a które wymagają omówienia. Prawdopodobieństwo warunkowe P(D h) jest prawdopodobieństwem zaobserwowania danych D przy założeniu istnienia poprawnej hipotezy h. Przyjmę, że dla dowolnej, istniejącej i poprawnej hipotezy h możliwe jest policzenie prawdopodobieństwa P(D h). W klasyfikacji Bayesa wystarczające jest wyznaczenie względnego prawdopodobieństwa warunkowego P(h D), ponieważ porównywane będą hipotezy względem siebie, a wszystkie będą zależały od tych samych danych. Oznacza to, że zależność od prawdopodobieństwa P(D) nie jest wcale brana pod uwagę, a w obliczeniach liczy się tylko licznik ułamka wzoru 5.2. Z tego powodu pominę wyjaśnianie wyznaczania mianownika, porównywanie hipotez, będzie się opierało na porównywaniu iloczynów P(h) P(D h) Klasyfikacja bayesowska W poprzednim podpunkcie zakładałem istnienie pewnej hipotezy h, jednak teraz muszę trochę uściślić jej postać. Hipotezy h będą funkcjami, które odwzorowują przykłady w oparciu o atrybuty na pewne kategorie, zwane także grupami. Jak wspomniałem przy okazji wprowadzenia do klasyfikatorów z nadzorem, niezbędny do uczenia się jest zbiór danych trenujących, który może występować w różnych postaciach. W przypadku właśnie omawianej klasyfikacji niech to będzie zbiór T, składający się z etykietowanych przykładów, czyli takich pojęć c, które odwzorowują przykłady z dziedziny X w zbiór pojęć(kategorii) C. W formalnym zapisie zbiór T będzie się składał z c : X C oraz zestawu atrybutów opisujących cechy przykładów(np. biorąc pod uwagę samochody, atrybutami będą: cena, pojemność silnika, prędkość maksymalna itd.). Klasyfikacja bayesowska w swojej idei zakłada wybór jednej, najlepszej hipotezy ze zbioru hipotez H. Jak od razu można się domyślić, będzie to najlepsza hipoteza dla zbioru danych trenujących T (potwierdza 1 Termin pochodzący z języka łacińskiego. Znaczy tyle co: "z góry", "uprzedzając fakty". Służy jako określenie tego, co pierwotne, uprzednie lub wcześniejsze i nie wymagające dowodzenia. Określenie prawdopodobieństwa a priori w stosunku do prawdopodobieństwa, rozumie się jako prawdopodobieństwo, przy wyznaczaniu którego nie były uwzględniane żadne dodatkowe warunki. 2 Termin pochodzący z języka łacińskiego. Jest określeniem przeciwnym dla a priori i oznaczający tyle, co: "po fakcie" tudzież "w następstwie faktu". Określenie prawdopodobieństwa a posteriori rozumie się jako prawdopodobieństwo warunkowe, wymagające uwzględnienia pewnych warunków.

42 5.2 Klasyfikator Bayesa 40 to również [6]). Cichosz w [4] podaje dwa standardowe sposoby precyzowania 3, warunków, które muszą spełniać hipotezy, aby były uznane za najlepsze: zasada maksymalnej zgodności, nazywana krótko ML 4. Wybieramy hipotezę h ML H, która maksymalizuje warunkowe prawdopodobieństwo danych trenujących, czyli: h ML = arg max h H P(T h), (5.3) zasada maksymalnego prawdopodobieństwa a posteriori, nazywana krótko MAP 5. Wybieramy hipotezę h MAP H o maksymalnym prawdopodobieństwie a posteriori, czyli: h MAP = arg max h H P(h T ). (5.4) Analizując obydwa podane przeze mnie wyżej wzory można zauważyć, że tylko wzór 5.4 jest warunkiem bayesowskim dla określania hipotezy, ponieważ wymaga wyznaczenia prawdopodobieństw a posteriori dla wszystkich hipotez i wyboru tej, dla której jest ono największe. Pierwsze podejście nie wykorzystuje wcale twierdzenia 1. Podejście drugie uznawane jest jako bardziej naturalne, jednak wymaga podania prawdopodobieństw a priori dla wszystkich hipotez h, co przy założeniu, że zbiór wszystkich hipotez ma skończoną, ale bardzo dużą liczność, może być sporym problemem. Wtedy podejście pierwsze jest dobrą alternatywą. Zgodnie z tym co napisałem przy okazji wyjaśniania twierdzenia 1 stosując metodę MAP nie ma konieczności liczenia prawdopodobieństwa P(h T ) i tym samym określenia P(T ) (mianownika wzoru 5.2). Wystarczy porównać tylko iloczyny P(h) P(T h) dla każdego h. Algorytm który wykorzystuje metodę MAP do określania najlepszej hipotezy dla zbioru trenującego nazywa się bezpośrednim algorytmem MAP. Pozbywając się kłopotów z określaniem prawdopodobieństwa P(T ) pozostaje tylko jedna niejasność. W jaki sposób wyznacza się prawdopodobieństwo P(T h). Słownie można by powiedzieć, że to prawdopodobieństwo określa jak bardzo prawdopodobne jest, aby przykłady pochodzące ze zbioru T miały takie etykiety kategorii (do których zostały przyporządkowane), jakie występują w podanym do nauki zbiorze T. Jeśli systemowi uczącemu się został podany poprawny zbiór trenujący T (występujące w nim etykiety przykładów, są etykietami kategorii, jakie przyporządkowuje pojęcie c, zdefiniowane na początku tego rozdziału), to jeśli hipoteza h przyporządkowuje przykładom ze zbioru T takie same etykiety, jakie występują w definicji zbioru trenującego 6 T, to jego prawdopodobieństwo warunkowe wynosi 1. Jeśli hipoteza h przypisuje chociaż jednemu przykładowi ze zbioru T etykietę nie występującą w zbiorze T, to takie prawdopodobieństwo równe jest 0. W opisywanym podrozdziale znalazło się wiele wzorów i oznaczeń, które ciężko zapamiętać, a które póki co nie dają wiele wymiernych zysków. Są jednak wymagane do opisu ciekawszych zagadnień. W kolejnych dwóch częściach podrozdziału, w końcu będę mógł zostawić za sobą czysto teoretyczne zagadnienia i opisać to co najciekawsze i najistotniejsze w klasyfikacji Bayesa, czyli dwa znane algorytmy klasyfikacji Optymalny klasyfikator Bayesa Optymalny klasyfikator Bayesa (BOC 7 ) określa najbardziej prawdopodobną kategorię dla przykładu x X jako kategorię, do której zaliczają ten przykład wszystkie hipotezy. Oczywiście taki scenariusz raczej nie jest możliwy, a jeśli jest, to zdarza się rzadko, dlatego kategorią najbardziej prawdopodobną jest ta, dla której suma prawdopodobieństw jest największa (innymi słowy, ta która najbardziej pasuje). Formalny zapis, tego co właśnie opisałem w języku zrozumiałym dla 90% ludzkiej populacji, wygląda następująco (opis formalny zaczerpnięty z książki [4]): 3 W książce [?] panów Krawca i Stefanowskiego można przeczytać tylko na temat zasady maksymalnego prawdopodobieństwa a posteriori. Wskazują oni na tą zasadę jako zalecaną do większości problemów. 4 Skrót pochodzi od angielskiego terminu Maximum Likelihood 5 Skrót pochodzi od angielskiego terminu Maximum a Posteriori 6 Ze względu na jasność oznaczeń określam w tekście zbiór przykładów symbolem T, jednak pełna definicja zbioru T obejmuje towarzyszące przykładom etykiety c, oraz zestaw atrybutów A opisujących cechy danego przykładu. 7 Skrót od angielskiego terminu Bayes Optimal Classifier

43 5.2 Klasyfikator Bayesa 41 Prawdopodobieństwo tego, że pewien dowolny przykład x X należy do kategorii d C pojęcia docelowego c : X C, szacowane na podstawie zbioru T etykietowanych przykładów tego pojęcia, możemy wyrazić w następujący sposób: P(c(x) = d T ) = P(c(x) = d h) P(h T ) (5.5) h H przy czym dla każdej hipotezy h H 1 jeśli h(x) = d P(c(x) = d h) = 0 w przeciwnym przypadku Algorytm zalicza przykład x X do kategorii arg max d C P(c(x) = d T ). Optymalny klasyfikator Bayesa zawdzięcza swoją nazwę temu, że maksymalizuje prawdopodobieństwo poprawnej klasyfikacji, co w domyśle oznacza, że minimalizuje prawdopodobieństwo popełnienia błędu. Nie ma takiego drugiego algorytmu klasyfikacji, który na tym samym zbiorze hipotez i tych samych danych trenujących dokonałby przypisania lepszej hipotezy. Niestety algorytm ma swoje wady, co sprawia, że tak samo jak bezpośredni algorytm MAP nie jest algorytmem charakteryzującym się częstym stosowaniem w klasyfikacji obiektów. Podstawowymi dwiema zaporami, które powstrzymują przed stosowaniem tych algorytmów są: konieczność określenia prawdopodobieństw a priori, czyli P(h) trzeba brać pod uwagę wszystkie hipotezy, przynajmniej na etapie uczenia się Te dwa ograniczenia nakładane na metody sprawiają, że nie można ich stosować w problemach, gdzie liczba hipotez jest bardzo duża, ponieważ koszty obliczeniowe wynikające z liczenia prawdopodobieństwa warunkowego dla wszystkich hipotez byłyby ogromne i nieopłacalne. Nie oznacza to, że algorytmy nie znajdują żadnego zastosowania. Bardzo dobrze sprawdzają się w problemach, które wymagają bardzo dokładnej klasyfikacji, a które dzięki zastosowaniu innych metod uczących zyskały znacznie zredukowaną ilość hipotez Naiwny klasyfikator Bayesa Naiwny klasyfikator Bayesa(NBC 8 ) pozwala na stosowanie w większości przypadków. Nie posiada takich ograniczeń, jak opisywany przeze mnie algorytm BOC. Brak jakichkolwiek ograniczeń dotyczący zbioru hipotez bierze się z tego, że w tym algorytmie taki zbiór hipotez nie jest wcale rozważany. Algorytm ten klasyfikuje przykłady do odpowiednich kategorii za pomocą oszacowań pewnych prawdopodobieństw wyznaczanych w oparciu o zbiór uczący T. Skoro algorytm nie wykorzystuje przestrzeni hipotez, do działania, tylko oszacowań, to bardzo dobrze byłoby wiedzieć jak te oszacowania otrzymać. Czasami aby zrobić krok w przód, trzeba najpierw wrócić do miejsca, z którego się wystartowało. Nie inaczej jest w tym przypadku. Aby zrozumieć zasadę wyznaczania oszacowań, o których jest teraz mowa trzeba sobie przypomnieć budowę pojedynczego przykładu uczącego (próby uczącej). Wektor wejściowy jest reprezentowany przez zestaw pewnych atrybutów, a wektor wyjściowy przez przypisaną do wektora wejściowego etykietę pojęciową wskazującą na daną kategorię. Niestety większość metod liczenia czegokolwiek wymaga formalnego zapisu, który niekiedy jest niezrozumiały dla normalnego człowieka, nie inaczej jest w tym przypadku. Istnieje jednak proste wytłumaczenie sposobu otrzymania oszacowań, które są potrzebne do zastosowania omawianej metody, które będę chciał właśnie zaprezentować. Pomijając formalności, całe zadanie można określić następująco: 8 Skrót angielskiego terminu Naive Bayes Classifier

44 5.2 Klasyfikator Bayesa 42 dla wszystkich kategorii liczymy ile jest w zbiorze uczącym przykładów poszczególnych kategorii, a następnie uzyskane wyniki dzielimy przez liczbę wszystkich przykładów zbioru uczącego. Na potrzeby przykładu, który będę chciał później zaprezentować, zapiszę postać matematyczną, jaką przedstawił w swojej książce [4] Paweł Cichosz: P(c(x) = d) = T d T (5.6) dla wszystkich kategorii i wartości wszystkich atrybutów liczymy ile jest przykładów każdej kategorii o pewnych wartościach atrybutów, a następnie dzielimy uzyskane wyniki przez liczbę wszystkich przykładów zbioru uczącego. Jak wyżej matematyczna reprezentacja: P(a i (x) = v c(x) = d) = T d a i =v T d, gdzie a i (x) jest i-tym atrybutem przykładu x (5.7) Stosując takie podejście napotykamy jednak na problem w momencie gdy, w którejś z grup (kategorii) nie ma żadnego przykładu. Każdy zauważy, że wtedy licznik ułamków jest równy 0 i automatycznie prawdopodobieństwo jest równe 0. Taki obrót spraw pozwala wysnuć jeden niepodważalny wniosek. Mianowicie fakt, że nie występuje w danej kategorii przykład z pewnymi atrybutami pozwala przypuszczać, że nie istnieje on w całej dziedzinie przykładów. Takie radykalne posunięcie może niekiedy powodować pewne komplikacje, dlatego trzeba dokonać pewnych modyfikacji oszacowań. Najprostszym i skutecznym rozwiązaniem w przypadku pojawienia się omawianego zera jest przyjęcie za wynik pewnej małej liczby. Oznaczmy ją symbolem ε. Pytanie jakie trzeba sobie w tym momencie zadać brzmi: Jak mała ma być ta liczba. Nie jest to trywialne pytanie. Jest to wartość oszacowania, która ma wpływ na obliczenia i klasyfikację. Najrozsądniej byłoby przyjąć wartość ε < 1, ponieważ gdyby wartość była większa od T d rozpatrywanej, to znaczyłoby, że oszacowanie ma wartość taką, jakby w zbiorze trenującym znajdował się jeden przykład spełniający wymienione we wzorach 5.6 lub 5.7 wymagania. Najbezpieczniejszym i najmniej kosztownym posunięciem będzie zastosowanie pewnej heurystyki, np. przyjąć, że wartość ε = 1 2 T d lub ε = 1. Mamy wtedy zapewnienie, że przekłamanie nam się nie wkradnie. W ogólnym rozumieniu 3 T d algorytm jest również przedstawiony za pomocą diagramu blokowego na rysunku Klasyfikowanie przykładów Wiemy już jak dokonać oszacowań reprezentujących pewną hipotezę. Pora wprowadzić wiedzę w życie. Wspomniałem, ze klasyfikator NBC wybiera kategorię najbardziej prawdopodobną, ale najbardziej prawdopodobną dla pewnego przykładu o zadanych wartościach atrybutów. Chciałbym dla dobrego zrozumienia przytoczyć definicje hipotezy h podaną przez Pawła Cichosza w [4]: h(x ) = arg max d C P x (c(x) = d a 1 (x) = a 1 (x ) a 2 (x) = a 2 (x )... a n (x) = a n (x )), oznacza wybór przykładu x kategorii najbardziej prawdopodobnej dla dowolnego przykładu x z dziedziny X, który jest opisany przez wektor wartości atrybutów : < a 1 (x ),a 2 (x ),...,a n (x ) >. Otrzymane prawdopodobieństwo można korzystając z reguły Bayesa, przekształcić (pamiętając, ze do porównywania hipotez wystarczy znajomość licznika wzoru 5.2) oraz zakładając, że wartości poszczególnych atrybutów są względem kategorii niezależne, otrzymać końcowy wzór na hipotezę reprezentowaną przez

45 Rysunek 5.7: Diagram blokowy dla algorytmu Naiwnej Klasyfikatora Bayesa

46 5.2 Klasyfikator Bayesa 44 rozkłady prawdopodobieństw: h(x ) = arg max d C P x (c(x) = d) n i=1 P x (a i (x) = a i (x ) c(x) = d) (5.8) Jeśli podczas klasyfikacji przykładu natrafimy na brakującą wartość atrybuty, to spokojnie możemy przyjąć, że P x (a i (x) = a i (x ) c(x) = d) = 1, co w przypadku mnożenia będzie neutralnym posunięciem, ponieważ nie wpłynie na wynik. W tym momencie przyda nam się założenie które poczyniliśmy w stosunku do oszacowań w poprzednim punkcie. W sytuacji, gdy dla pewnej kategorii d i pewnej wartości v k atrybuty a k przyjmiemy wartość P x (a i (x) = a i (x ) c(x) = d) = 0, to automatycznie uzyskamy 0 dla prawdopodobieństw biorących pod uwagę inne wartości atrybutów. Wniosek jest taki, że jeśli w zbiorze trenującym T nie pojawi się przykład x z kategorii d, to każdy inny przykład x będzie miał prawdopodobieństwo zaliczenia go do kategorii d równą 0, co nie powinno się stać Przykład zastosowania NBC Chciałbym na koniec omawiania klasyfikatorów Bayesa zademonstrować przykład, w którym pokażę, jak zastosować naiwny klasyfikator bayesowski do zbioru trenującego z dziedziny samochodów. Elementami tej dziedziny są dostępne na rynku modele samochodów. Niech każdy z samochodów będzie opisany przez następujące atrybuty: klasa: o wartościach miejski, duży, mały, kompakt cena: o wartościach niska, umiarkowana, wysoka osiągi: o wartościach słabe, przeciętne, dobre niezawodność: o wartościach mała, przeciętna, duża Dane tego przykładu przedstawia tablica 5.1. x klasa cena osiagi niezawodność c(x) 1 miejski niska słabe mała 1 2 duży niska słabe mała 1 3 kompakt niska dobre przeciętna 1 4 mały niska przeciętne mała 1 5 mały umiarkowana przeciętne przeciętna 1 6 kompakt umiarkowana przeciętne przeciętna 1 7 miejski umiarkowana przeciętne przeciętna 0 8 mały umiarkowana dobre duża 0 9 kompakt wysoka dobre duża 0 10 duży wysoka przeciętne przeciętna 0 11 duży wysoka dobre duża 0 Tablica 5.1: Przedstawia zbiór trenujacy dla pojęcia docelowego c, które może być interpretowane jako popularny model samochodu. Dane znajdujace się w tabeli pochodza ze zbioru tabel przykładowych do ćwiczeń, z ksiażki Pawła Cichosza[4]. Oszacowania prawdopodobieństw będę wykonywał za pomocą wzorów 5.6 oraz 5.7, a w sytuacji, gdy w którejś z kategorii, dla danego atrybutu nie będzie przykładu, zastosuję wspomnianą wcześniej heurystykę i przybliżę brakujące prawdopodobieństwo wartością ε = 1 2 T = P x (c(x) = 1) = 6 11 P x (klasa(x) = mie jski c(x) = 1) = 1 6 P x (klasa(x) = mie jski c(x) = 0) = 1 5

47 5.2 Klasyfikator Bayesa 45 P x (klasa(x) = duzy c(x) = 1) = 1 6 P x (klasa(x) = duzy c(x) = 0) = 2 5 P x (klasa(x) = kompakt c(x) = 1) = 2 6 P x (klasa(x) = kompakt c(x) = 0) = 1 5 P x (klasa(x) = maly c(x) = 1) = 2 6 P x (klasa(x) = maly c(x) = 0) = 1 5 P x (cena(x) = niska c(x) = 1) = 4 6 P x (cena(x) = niska c(x) = 0) = 1 22 P x (cena(x) = umiarkowana c(x) = 1) = 2 6 P x (cena(x) = umiarkowana c(x) = 0) = 2 5 P x (cena(x) = wysoka c(x) = 1) = 1 22 P x (cena(x) = wysoka c(x) = 0) = 3 5 P x (osiagi(x) = slabe c(x) = 1) = 2 6 P x (osiagi(x) = slabe c(x) = 0) = 1 22 P x (osiagi(x) = przecietne c(x) = 1) = 3 6 P x (osiagi(x) = przecietne c(x) = 0) = 1 5 P x (osiagi(x) = dobre c(x) = 1) = 1 6 P x (osiagi(x) = dobre c(x) = 0) = 3 5 P x (niezawodnosc(x) = mala c(x) = 1) = 2 6 P x (niezawodnosc(x) = mala c(x) = 0) = 1 22 P x (niezawodnosc(x) = przecietna c(x) = 1) = 2 6 P x (niezawodnosc(x) = przecietna c(x) = 0) = 1 5 P x (niezawodnosc(x) = duza c(x) = 1) = 1 22 P x (niezawodnosc(x) = duza c(x) = 0) = 3 5 Otrzymany zestaw wartości poszczególnych prawdopodobieństw reprezentuje hipotezę h, jakiej nauczył się naiwny klasyfikator bayesowski na podstawie zbioru trenującego. Można ją wykorzystać do klasyfikowania przykładów trenujących ze zbioru T. Dla przykładu pierwszego, tzn. x = 1 mamy następujące wartości atrybutów: klasa(1) = miejski cena(1) = niska osiągi(1) = słabe niezawodność(1)=mała Na podstawie powyższych wartości dla poszczególnych atrybutów oraz dla kategorii c(x)=1 oraz c(x)=0 obliczamy iloczyny prawdopodobieństw, których porównanie zgodnie z równaniem 5.8 będzie podstawą klasyfikacji przykładu 1: P x (c(x) = 1) P x (klasa(x) = mie jski c(x) = 1) P x (cena(x) = niska c(x) = 1) P x (osiagi(x) = slabe c(x) = 1) P x (niezawodnosc(1) = mala c(x) = 1) = = = 1089 = P x (c(x) = 0) P x (klasa(x) = mie jski c(x) = 0) P x (cena(x) = niska c(x) = 0) P x (osiagi(x) = slabe c(x) = 0) P x (niezawodnosc(1) = mala c(x) = 0) = = = =

48 5.3 Metoda k-najbliższych sasiadów 46 oznacza to, że h(1) = c(1) = 1 Wady i zalety Podsumowując klasyfikacja w oparciu o twierdzenie Bayesa daje duże możliwości. Zastosowanie optymalnego klasyfikatora pozwala na zminimalizowanie błędu kosztem wydajności, co w niektórych przypadkach jest ważne i przeważa na niekorzyść tego klasyfikatora. Z drugiej strony można posługiwać się naiwnym klasyfikatorem, który nie charakteryzuje się dużym błędem klasyfikacji, a pozwala na zastosowanie w większości problemów. Uwolniony jest od liczenia prawdopodobieństw warunkowych co pozwala osiągnąć wyższą wydajność i uwalnia klasyfikator od wad poprzednika. Do działania wykorzystywane są tylko proste operacje arytmetyczne. Jak pokazałem w przykładzie zastosowanie NBC jest bardzo proste i nie sprawia większych problemów. 5.3 Metoda k-najbliższych sasiadów Metody eksploracji danych potrafią być bardzo złożone, a ich mechanizmy trudne do zrozumienia. Podstawowe odmiany metody k-najbliższych sąsiadów wcale takie nie są. Przeciwnie, dzięki nim można osiągać bardzo dobre rezultaty klasyfikacji nie angażując dużo siły w rozumienie mechanizmu. Jest to metoda nadzorowana, która wymaga wcześniejszego przygotowania danych uczących, podobnie jak to miało miejsce przy sieci neuronowej. Klasyfikacja odbywa się w oparciu o podobieństwo analizowanego, nieznanego obiektu z elementami zbioru uczącego. Na tej podstawie podejmowana jest decyzja. Podobieństwo obiektów oceniane jest na podstawie miar odległości dwóch wektorów reprezentujących atrybuty oraz ich wartości dla obu obiektów. Algorytm do podjęcia decyzji wykorzystuję małą część całego zbioru uczącego. Jak duża jest to część określa współczynnik k. Jest to tak zwane sąsiedztwo, spośród którego wybiera się najczęstszą etykietę dla obiektu i właśnie ją przypisuje się analizowanemu obiektowi. Algorytm nazywa się leniwym. Jest tak dlatego, że nie zakłada tworzenia modelu, który w jakiś sposób przetwarza dane. Działanie algorytmu bazuje na tym, że cały zbiór uczący jest dostępny podczas klasyfikacji i na jego podstawie dokonywana jest ocena przynależności do klas. Takie rozwiązanie stawia pewne wymagania na pamięć operacyjną. Dostęp do danych uczących musi być pewny i szybki. Dla dużych zbiorów uczących jest to przeszkoda przed stosowaniem tego algorytmu. W takich sytuacjach nie mógłby on być wykorzystywany w czasie rzeczywistym. Czas przeglądania i porównywania wszystkich obiektów ze zbioru uczącego z jednym jedynym, który ma zostać zaklasyfikowany może trwać dość długo. Warto przyjrzeć się bliżej temu tajemniczemu współczynnikowi k. Najpierw jednak dokładnie przybliżę etap wybierania klasy dla analizowanego obiektu. (algorytm został również zapisany za pomocą diagrau blokowego na rysunku 5.8). Otóż obiekt porównywany jest ze wszystkimi elementami ze zbioru uczącego. Wyliczana jest wartość miary odległości. Następnie zbiera się k-elementów ze zbioru uczącego, które są najbardziej podobne do wzorca, który chcemy zaklasyfikować. Kolejnym etapem jest przeprowadzenie głosowania, które ma rozstrzygnąć jaką klasą oznaczyć wejściowy obiekt. W najprostszym wariancie głosowania obiekt zostanie przypisany do klasy, która jest reprezentowana przez największą ilość obiektów ze zbioru uczącego. Co jednak w sytuacji, gdy mamy remis. Można zdać się na los, ale można także badać położenie elementów i jako rozwiązanie wybrać ten leżący najbliżej. Współczynnik k określa jak duże sąsiedztwo będziemy brali pod uwagę podczas głosowania. Minimalną wartościąk jest 1, natomiast maksymalną jest liczność zbioru uczącego. Tak skrajne wartości nie znajdą na pewno praktycznego zastosowania. Dla wartości 1 klasyfikator będzie posiadał bardzo dużą wariancję. Może zostać przeuczony i nie będzie w stanie dobrze generalizować. Z kolei zwiększanie współczynnika k może doprowadzić do zbytniego uogólniania. W sąsiedztwie będą się mogły znaleźć obiekty, które tak naprawdę nie znajdują się wystarczająco blisko, abyśmy musieli je brać pod uwagę. Dobór odpowiedniej wartości zawsze przysparza analitykom problemów. Zależy od rozpatrywanego problemu, ilości zmiennych decyzyjnych i wielu innych czynników. Kontynuując wątek zmiennych decyzyjnych. Algorytm ma to do siebie, że nie jest w stanie brać pod uwagę tylko niektórych najbardziej istotnych danych. W sytuacjach, gdy rekordy zawierają pełną informację, poza zwiększeniem czasu obliczeń nie powinno mieć to negatywnych skutków. W sytuacji, gdy pojawiają się

49 5.3 Metoda k-najbliższych sasiadów 47 Rysunek 5.8: Diagram blokowy dla algorytmu klasyfikacji K-Najbliższych Sasiadów dane rzadkie. Może okazać się, że wybór klasy jest trudny, a to, żeby był zgodny z intuicją jeszcze bardziej jest nieosiągalne. Bardzo przydatną praktyką jest stosowanie wag dla poszczególnych składowych wektora cech. Pozwala to na ustalenie ważności. Jeśli dla niektórych cech przypiszemy wagę 0, to nie będą one wcale brane pod uwagę. Wady i zalety Podsumowując algorytm k-najbliższych sąsiadów jest bardzo prostym klasyfikatorem. Posiada on jednak kilka ciekawych właściwości. Bardzo łatwo jest go zaprogramować (mówię oczywiście o podstawowej wersji bez zbędnych optymalizacji). Dla wielu zastosowań jego zdolności klasyfikacyjne można ocenić jako dobre i wystarczające. Może się okazać, że nakład pracy na zaimplementowanie klasyfikatora w stosunku do wyników będzie niewspółmiernie mniejszy niż choćby na to w sieciach neuronowych. Algorytm po prostych modyfikacjach może odrzucać wybrane kolumny w rekordach, aby pomijać brakujące wartości, które jak wiadomo nigdy nie będą dobrze wpływały na wynik. Algorytm posiada jednak znaczne wady, o których trzeba wspomnieć. Najważniejszą jest jego leniwość ona powoduje wynikanie pozostałych wad. Metoda wymaga przechowywania całego zbioru uczącego i wykonywania porównania dla każdego analizowanego obiektu od nowa. Można oczywiście zastosować jakieś modyfikacje, które skracają czas i zmniejszają zapotrzebowanie na pamięć. Choćby odrzucić część informacji, albo próbkować co którąś. W książce [7] przeczytałem o zabiegu, który najpierw zakładał przeprowadzenie grupowania na danych zbioru uczącego, a następnie operowanie centroidami tych grup. Koniec końców leniwość algorytmu stawia analityków pod ścianą, bo nie mogą zastosować tego narzędzia dla wszystkich typów problemów. Sporym problemem jest też rozwiązanie kompromisu wariacyjno-obciążeniowego, czyli odpowiednika przeuczenia i niedouczenia. Jak wybrać stosowną wartość parametru k określającego wielkość sąsiedztwa. Nie pozostaje nic innego jak metoda prób i błędów.

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

Wybrane techniki przygotowywania rekomendacji dla użytkowników serwisu internetowego POLITECHNIKA ŁÓDZKA Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Praca dyplomowa Wybrane techniki przygotowywania rekomendacji dla użytkowników serwisu internetowego Artur Ziółkowski

Bardziej szczegółowo

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

Spis treści. 1.1 Problematyka... 4 1.2 Cele pracy i zakres pracy... 5 Spis treści 1 Wstęp 4 1.1 Problematyka.......................... 4 1.2 Cele pracy i zakres pracy...................... 5 2 Analiza zagadnienia 7 2.1 Wprowadzenie.......................... 7 2.2 Eksploracja

Bardziej szczegółowo

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

WYBRANE TECHNIKI PRZYGOTOWYWANIA REKOMENDACJI DLA UŻYTKOWNIKÓW SERWISU INTERNETOWEGO Politechnika Łódzka Instytut Informatyki PRACA MAGISTERSKA WYBRANE TECHNIKI PRZYGOTOWYWANIA REKOMENDACJI DLA UŻYTKOWNIKÓW SERWISU INTERNETOWEGO Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej

Bardziej szczegółowo

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

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie Wykaz tabel Wykaz rysunków Przedmowa 1. Wprowadzenie 1.1. Wprowadzenie do eksploracji danych 1.2. Natura zbiorów danych 1.3. Rodzaje struktur: modele i wzorce 1.4. Zadania eksploracji danych 1.5. Komponenty

Bardziej szczegółowo

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

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów Eksploracja danych Piotr Lipiński Informacje ogólne Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów UWAGA: prezentacja to nie

Bardziej szczegółowo

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

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Sposoby prezentacji problemów w statystyce

Sposoby prezentacji problemów w statystyce S t r o n a 1 Dr Anna Rybak Instytut Informatyki Uniwersytet w Białymstoku Sposoby prezentacji problemów w statystyce Wprowadzenie W artykule zostaną zaprezentowane podstawowe zagadnienia z zakresu statystyki

Bardziej szczegółowo

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH 1. Czym jest eksploracja danych Eksploracja danych definiowana jest jako zbiór technik odkrywania nietrywialnych zależności i schematów w dużych

Bardziej szczegółowo

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

Zalew danych skąd się biorą dane? są generowane przez banki, ubezpieczalnie, sieci handlowe, dane eksperymentalne, Web, tekst, e_handel według przewidywań internetowego magazynu ZDNET News z 8 lutego 2001 roku eksploracja danych (ang. data mining ) będzie jednym z najbardziej rewolucyjnych osiągnięć następnej dekady. Rzeczywiście MIT Technology

Bardziej szczegółowo

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

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Analiza danych. http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU

Analiza danych. http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU Analiza danych Wstęp Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU Różne aspekty analizy danych Reprezentacja graficzna danych Metody statystyczne: estymacja parametrów

Bardziej szczegółowo

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

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Zadanie do wykonania 1) Utwórz na pulpicie katalog w formacie Imię nazwisko, w którym umieść wszystkie pliki związane z

Bardziej szczegółowo

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA AMFETAMINY Waldemar S. Krawczyk Centralne Laboratorium Kryminalistyczne Komendy Głównej Policji, Warszawa (praca obroniona na Wydziale Chemii Uniwersytetu

Bardziej szczegółowo

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Wymagania edukacyjne z matematyki w klasie III gimnazjum Wymagania edukacyjne z matematyki w klasie III gimnazjum - nie potrafi konstrukcyjnie podzielić odcinka - nie potrafi konstruować figur jednokładnych - nie zna pojęcia skali - nie rozpoznaje figur jednokładnych

Bardziej szczegółowo

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

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Zwrot z inwestycji w IT: prawda czy mity

Zwrot z inwestycji w IT: prawda czy mity Zwrot z inwestycji w IT: prawda czy mity Inwestycje w technologie IT 1 muszą podlegać takim samym regułom oceny, jak wszystkie inne: muszą mieć ekonomiczne uzasadnienie. Stanowią one koszty i jako takie

Bardziej szczegółowo

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

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

ALGORYTM RANDOM FOREST

ALGORYTM RANDOM FOREST SKRYPT PRZYGOTOWANY NA ZAJĘCIA INDUKOWANYCH REGUŁ DECYZYJNYCH PROWADZONYCH PRZEZ PANA PAWŁA WOJTKIEWICZA ALGORYTM RANDOM FOREST Katarzyna Graboś 56397 Aleksandra Mańko 56699 2015-01-26, Warszawa ALGORYTM

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

Zasady Wykorzystywania Plików Cookies

Zasady Wykorzystywania Plików Cookies Zasady Wykorzystywania Plików Cookies Definicje i objaśnienia używanych pojęć Ilekroć w niniejszym zbiorze Zasad wykorzystywania plików Cookies pojawia się któreś z poniższych określeń, należy rozumieć

Bardziej szczegółowo

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

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

Techniki uczenia maszynowego nazwa przedmiotu SYLABUS

Techniki uczenia maszynowego nazwa przedmiotu SYLABUS Techniki uczenia maszynowego nazwa SYLABUS Obowiązuje od cyklu kształcenia: 2014/20 Część A. Informacje ogólne Elementy składowe sylabusu Nazwa jednostki prowadzącej studiów Poziom kształcenia Profil studiów

Bardziej szczegółowo

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

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjny model baz danych, model związków encji, normalizacje Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć Katalog wymagań programowych na poszczególne stopnie szkolne Matematyka. Poznać, zrozumieć Kształcenie w zakresie podstawowym. Klasa 3 Poniżej podajemy umiejętności, jakie powinien zdobyć uczeń z każdego

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą

Bardziej szczegółowo

Wymagania edukacyjne na poszczególne oceny z informatyki w gimnazjum klasa III Rok szkolny 2015/16

Wymagania edukacyjne na poszczególne oceny z informatyki w gimnazjum klasa III Rok szkolny 2015/16 Wymagania edukacyjne na poszczególne oceny z informatyki w gimnazjum klasa III Rok szkolny 2015/16 Internet i sieci Temat lekcji Wymagania programowe 6 5 4 3 2 1 Sieci komputerowe. Rodzaje sieci, topologie,

Bardziej szczegółowo

4.1. Wprowadzenie...70 4.2. Podstawowe definicje...71 4.3. Algorytm określania wartości parametrów w regresji logistycznej...74

4.1. Wprowadzenie...70 4.2. Podstawowe definicje...71 4.3. Algorytm określania wartości parametrów w regresji logistycznej...74 3 Wykaz najważniejszych skrótów...8 Przedmowa... 10 1. Podstawowe pojęcia data mining...11 1.1. Wprowadzenie...12 1.2. Podstawowe zadania eksploracji danych...13 1.3. Główne etapy eksploracji danych...15

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

Model procesu dydaktycznego

Model procesu dydaktycznego Model procesu dydaktycznego w zakresie Business Intelligence Zenon Gniazdowski 1,2), Andrzej Ptasznik 1) 1) Warszawska Wyższa Szkoła Informatyki, ul. Lewartowskiego 17, Warszawa 2) Instytut Technologii

Bardziej szczegółowo

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

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c Wymagania edukacyjne w technikum SIECI KOMPUTEROWE kl. 2c Wiadomości Umiejętności Lp. Temat konieczne podstawowe rozszerzające dopełniające Zapamiętanie Rozumienie W sytuacjach typowych W sytuacjach problemowych

Bardziej szczegółowo

Ekonometria - ćwiczenia 10

Ekonometria - ćwiczenia 10 Ekonometria - ćwiczenia 10 Mateusz Myśliwski Zakład Ekonometrii Stosowanej Instytut Ekonometrii Kolegium Analiz Ekonomicznych Szkoła Główna Handlowa 14 grudnia 2012 Wprowadzenie Optymalizacja liniowa Na

Bardziej szczegółowo

Oferta szkoleniowa Yosi.pl 2012/2013

Oferta szkoleniowa Yosi.pl 2012/2013 Oferta szkoleniowa Yosi.pl 2012/2013 "Podróżnik nie posiadający wiedzy, jest jak ptak bez skrzydeł" Sa'Di, Gulistan (1258 rok) Szanowni Państwo, Yosi.pl to dynamicznie rozwijająca się firma z Krakowa.

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013 http://www.wilno.uwb.edu.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013 http://www.wilno.uwb.edu. SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr /3 Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna 1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

System magazynowy małego sklepu.

System magazynowy małego sklepu. System magazynowy małego sklepu. dokumentacja użytkownika. Mariusz Grabowski e-mail: mariosh@interia.pl Jabber ID: mariosh@jabber.autocom.pl Spis treści 1 Wstęp. 2 2 Przed uruchomieniem. 3 3 Korzystanie

Bardziej szczegółowo

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

FILM - SALON SPRZEDAŻY TELEFONÓW KOMÓRKOWYCH (A2 / B1 ) FILM - SALON SPRZEDAŻY TELEFONÓW KOMÓRKOWYCH (A2 / B1 ) Klient: Dzień dobry panu! Pracownik: Dzień dobry! W czym mogę pomóc? Klient: Pierwsza sprawa: jestem Włochem i nie zawsze jestem pewny, czy wszystko

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji Jacek Szcześniak Jerzy Błaszczyński Roman Słowiński Poznań, 5.XI.2013r. Konspekt Wstęp Wprowadzenie Metody typu wrapper Nowe metody

Bardziej szczegółowo

10. Wstęp do Teorii Gier

10. Wstęp do Teorii Gier 10. Wstęp do Teorii Gier Definicja Gry Matematycznej Gra matematyczna spełnia następujące warunki: a) Jest co najmniej dwóch racjonalnych graczy. b) Zbiór możliwych dezycji każdego gracza zawiera co najmniej

Bardziej szczegółowo

Wymagania edukacyjne na ocenę z informatyki KLASA III

Wymagania edukacyjne na ocenę z informatyki KLASA III Wymagania edukacyjne na ocenę z informatyki KLASA III 0. Logo [6 godz.] PODSTAWA PROGRAMOWA: Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie podejścia algorytmicznego.

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Co to są relacyjne bazy danych?

Co to są relacyjne bazy danych? Co to są relacyjne bazy danych? Co to są relacyjne bazy danych? O Są to zbiory danych pogrupowane w tabele o strukturze: kolejne kolumny określają kolejne porcje informacji potrzebne dla każdego wystąpienia,

Bardziej szczegółowo

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Hurtownie danych Przetwarzanie zapytań. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Magazyny danych operacyjnych, źródła Centralna hurtownia danych Hurtownie

Bardziej szczegółowo

2. Tabele w bazach danych

2. Tabele w bazach danych 1. Uczeń: Uczeń: 2. Tabele w bazach danych a. 1. Cele lekcji i. a) Wiadomości zna sposób wstawiania tabeli do bazy danych, wie, w jaki sposób rozplanować położenie pól i tabel w tworzonej bazie, zna pojęcia

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Eksploracja danych a serwisy internetowe Przemysław KAZIENKO

Eksploracja danych a serwisy internetowe Przemysław KAZIENKO Eksploracja danych a serwisy internetowe Przemysław KAZIENKO Wydział Informatyki i Zarządzania Politechnika Wrocławska kazienko@pwr.wroc.pl Dlaczego eksploracja danych w serwisach internetowych? Kanały

Bardziej szczegółowo

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie mgr Piotr Gaś, dr hab. inż. Jerzy Mischke Ośrodek Edukacji Niestacjonarnej Akademii Górniczo-Hutniczej w Krakowie Samokontrola postępów w nauce z wykorzystaniem Internetu Wprowadzenie W każdym systemie

Bardziej szczegółowo

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli? Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli? : Proces zmieniania wartości w komórkach w celu sprawdzenia, jak

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

Bardziej szczegółowo

Projektowanie systemu krok po kroku

Projektowanie systemu krok po kroku Rozdział jedenast y Projektowanie systemu krok po kroku Projektowanie systemu transakcyjnego jest ciągłym szeregiem wzajemnie powiązanych decyzji, z których każda oferuje pewien zysk i pewien koszt. Twórca

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L, Klasyfikator Jedną z najistotniejszych nieparametrycznych metod klasyfikacji jest metoda K-najbliższych sąsiadów, oznaczana przez K-NN. W metodzie tej zaliczamy rozpoznawany obiekt do tej klasy, do której

Bardziej szczegółowo

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical;

Bardziej szczegółowo

CLUSTERING. Metody grupowania danych

CLUSTERING. Metody grupowania danych CLUSTERING Metody grupowania danych Plan wykładu Wprowadzenie Dziedziny zastosowania Co to jest problem klastrowania? Problem wyszukiwania optymalnych klastrów Metody generowania: k centroidów (k - means

Bardziej szczegółowo

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Aby skorzystać z możliwości RapidMinera w zakresie analizy tekstu, należy zainstalować Text Mining Extension. Wybierz: 1 Po

Bardziej szczegółowo

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

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl Niniejsze zasady dotyczą wszystkich Użytkowników strony internetowej funkcjonującej w domenie http://www.pawlowskisport.pl,

Bardziej szczegółowo

Podstawowe zagadnienia z zakresu baz danych

Podstawowe zagadnienia z zakresu baz danych Podstawowe zagadnienia z zakresu baz danych Jednym z najważniejszych współczesnych zastosowań komputerów we wszelkich dziedzinach życia jest gromadzenie, wyszukiwanie i udostępnianie informacji. Specjalizowane

Bardziej szczegółowo

Hurtownie danych i business intelligence. Plan na dziś : Wprowadzenie do przedmiotu

Hurtownie danych i business intelligence. Plan na dziś : Wprowadzenie do przedmiotu i business intelligence Paweł Skrobanek, C-3 pok. 321 pawel.skrobanek@pwr.wroc.pl Wrocław 2005-2012 Plan na dziś : 1. Wprowadzenie do przedmiotu (co będzie omawiane oraz jak będę weryfikował zdobytą wiedzę

Bardziej szczegółowo

MASKI SIECIOWE W IPv4

MASKI SIECIOWE W IPv4 MASKI SIECIOWE W IPv4 Maska podsieci wykorzystuje ten sam format i sposób reprezentacji jak adresy IP. Różnica polega na tym, że maska podsieci posiada bity ustawione na 1 dla części określającej adres

Bardziej szczegółowo

TP1 - TABELE PRZESTAWNE od A do Z

TP1 - TABELE PRZESTAWNE od A do Z TP1 - TABELE PRZESTAWNE od A do Z Program szkolenia 1. Tabele programu Excel 1.1. Wstawianie tabeli 1.2. Style tabeli 1.3. Właściwości tabeli 1.4. Narzędzia tabel 1.4.1. Usuń duplikaty 1.4.2. Konwertuj

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 19. Perspektywy baz danych 1 Perspektywy baz danych Temporalna baza danych Temporalna baza danych - baza danych posiadająca informację o czasie wprowadzenia lub czasie ważności zawartych

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Instrukcja Użytkownika (Studenta) Systemu Obsługującego Lokalne Archiwum Dokumentów

Instrukcja Użytkownika (Studenta) Systemu Obsługującego Lokalne Archiwum Dokumentów Instrukcja Użytkownika (Studenta) Systemu Obsługującego Lokalne Archiwum Dokumentów Szkoła Główna Handlowa 1/15 System Obsługujący Lokalne Archiwum Dokumentów (SOLAD) jest programem służącym do wprowadzania,

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Załącznik nr 1 Specyfikacja przedmiotu zamówienia Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Słowniczek pojęć Badanie

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Temat 2. Program komputerowy

Temat 2. Program komputerowy Temat 2. Program komputerowy Realizacja podstawy programowej 1. 3) stosuje podstawowe usługi systemu operacyjnego i programów narzędziowych do zarządzania zasobami (plikami) i instalowania oprogramowania;

Bardziej szczegółowo

Scenariusz lekcji matematyki w kl. V.

Scenariusz lekcji matematyki w kl. V. Scenariusz lekcji matematyki w kl. V. T em a t : Powtórzenie wiadomości ułamki zwykłe, dodawanie i odejmowanie ułamków. C z a s z a jęć: 1 jednostka lekcyjna (45 minut). C e l e o g ó l n e : utrwalenie

Bardziej szczegółowo

WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA:

WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA: WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA: zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie zaznaczać liczbę wymierną na osi liczbowej umie

Bardziej szczegółowo

Poziomowany system ssący w systemie Plan-de-CAMpagne

Poziomowany system ssący w systemie Plan-de-CAMpagne Poziomowany system ssący w systemie Plan-de-CAMpagne Współczesne metody zarządzania produkcją jednomyślnie podkreślają zalety produkowania dokładnie tylu wyrobów, ile w danym czasie potrzebują nasi klienci.

Bardziej szczegółowo

Raport oceny kompetencji

Raport oceny kompetencji Symulacje oceniające kompetencje Raport oceny kompetencji Rut Paweł 08-01-2015 Kompetencje sprzedażowe dla efactor Sp. z o.o. Dane osobowe Rut Paweł CEO pawel.rut@efactor.pl more-than-manager.com 2 z 13

Bardziej szczegółowo

Innowacyjny elektroniczny dziennik lekcyjny

Innowacyjny elektroniczny dziennik lekcyjny Innowacyjny elektroniczny dziennik lekcyjny Marcin Tomana (www.tomana.net) marcin@tomana.net XXI Górska Szkoła PTI - Szczyrk 2010 Streszczenie Innowacje wkraczają do szkoły wszelkimi możliwymi sposobami.

Bardziej szczegółowo

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

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ PRACA DYPLOMOWA INŻYNIERSKA Mobilny system wspomagający pracę terminala kontenerowego autor: Bartłomiej Urbanowicz opiekun pracy:

Bardziej szczegółowo

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie: Repozytorium służy do przechowywania plików powstających przy pracy nad projektami we w miarę usystematyzowany sposób. Sam mechanizm repozytorium jest zbliżony do działania systemu plików, czyli składa

Bardziej szczegółowo

Jak ustawić cele kampanii?

Jak ustawić cele kampanii? Jak ustawić cele kampanii? Czym są cele? Jest to funkcjonalność pozwalająca w łatwy sposób śledzić konwersje wygenerowane na Twojej stronie www poprzez wiadomości email wysłane z systemu GetResponse. Mierzenie

Bardziej szczegółowo

Przekierowanie portów w routerze - podstawy

Przekierowanie portów w routerze - podstawy Przekierowanie portów w routerze - podstawy Wyobraźmy sobie, że posiadamy sieć domową i w tej sieci pracują dwa komputery oraz dwie kamery IP. Operator dostarcza nam łącze internetowe z jednym adresem

Bardziej szczegółowo

Plan wynikowy klasa 3

Plan wynikowy klasa 3 Plan wynikowy klasa 3 Przedmiot: matematyka Klasa 3 liceum (technikum) Rok szkolny:........................ Nauczyciel:........................ zakres podstawowy: 28 tyg. 3 h = 84 h (78 h + 6 h do dyspozycji

Bardziej szczegółowo

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Grupy pytań na egzamin inżynierski na kierunku Informatyka Grupy pytań na egzamin inżynierski na kierunku Informatyka Dla studentów studiów dziennych Należy wybrać dwie grupy pytań. Na egzaminie zadane zostaną 3 pytania, każde z innego przedmiotu, pochodzącego

Bardziej szczegółowo

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Test kwalifikacyjny obejmuje weryfikację efektów kształcenia oznaczonych kolorem szarym, efektów: K_W4 (!), K_W11-12, K_W15-16,

Bardziej szczegółowo

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

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu Inżynieria wymagań Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia Część 5 Definicja systemu Opracowane w oparciu o materiały IBM (kurs REQ480: Mastering Requirements Management with Use

Bardziej szczegółowo

Algorytm DGA wykorzystywany w trojanie Emotet

Algorytm DGA wykorzystywany w trojanie Emotet Algorytm DGA wykorzystywany w trojanie Emotet CERT Orange Polska Warszawa 29/12/2014 CERT OPL 29.12.2014 Strona 1 z 6 Wstęp. Trojan Emotet wielokrotnie był już przedmiotem zainteresowania specjalistów.

Bardziej szczegółowo

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Agnieszka Kamińska, Dorota Ponczek MATeMAtyka 3 Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych Zakres podstawowy i rozszerzony Wyróżnione zostały następujące wymagania

Bardziej szczegółowo

PageRank i HITS. Mikołajczyk Grzegorz

PageRank i HITS. Mikołajczyk Grzegorz PageRank i HITS Mikołajczyk Grzegorz PageRank Metoda nadawania indeksowanym stronom internetowym określonej wartości liczbowej, oznaczającej jej jakość. Algorytm PageRank jest wykorzystywany przez popularną

Bardziej szczegółowo

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka

Bardziej szczegółowo

Sterowanie procesem i jego zdolność. Zbigniew Wiśniewski

Sterowanie procesem i jego zdolność. Zbigniew Wiśniewski Sterowanie procesem i jego zdolność Zbigniew Wiśniewski Wybór cech do kart kontrolnych Zaleca się aby w pierwszej kolejności były brane pod uwagę cechy dotyczące funkcjonowania wyrobu lub świadczenia usługi

Bardziej szczegółowo

WPROWADZENIE WYSZUKIWANIE OGŁOSZEŃ

WPROWADZENIE WYSZUKIWANIE OGŁOSZEŃ WPROWADZENIE 1. Cel dokumentu Celem dokumentu jest: Zapoznanie internauty z funkcjonalnością realizowaną przez Bazę Konkurencyjności. Dostarczenie szczegółowych informacji na temat podstron, które znajdują

Bardziej szczegółowo