Klasyfikacja wyników wyszukiwania zasobów internetowych

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

Download "Klasyfikacja wyników wyszukiwania zasobów internetowych"

Transkrypt

1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2012/2013 PRACA DYPLOMOWA INŻYNIERSKA Edward Miedziński Klasyfikacja wyników wyszukiwania zasobów internetowych Promotor prof. nzw. dr hab. inż. Marzena Kryszkiewicz Opiekun pracy mgr inż. Beata Nachyła Ocena: Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Kierunek: Specjalność: Informatyka Inżynieria Systemów Informatycznych Data urodzenia: Data rozpoczęcia studiów: Życiorys Urodziłem się 15 września 1990 roku w Warszawie. W latach uczęszczałem do klasy o profilu matematyczno informatycznym w XXVII Liceum Ogólnokształcącym im. Tadeusza Czackiego w Warszawie. W 2010 roku rozpocząłem studia dzienne na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Informatyka. W roku 2012 odbyłem półroczne praktyki w firmie Capgemini Polska.... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu r. z wynikiem... Ogólny wynik studiów:... Dodatkowe wnioski i uwagi Komisji:

3 STRESZCZENIE Niniejsza praca prezentuje metody dokonywania klasyfikacji wyników wyszukiwania zasobów internetowych. Omówione zostały dwa często używane algorytmy klasyfikacji: Naiwny Klasyfikator Bayesa oraz Maszyna Wektorów Nośnych (SVM). Badania nad zaimplementowanymi algorytmami klasyfikacji zostały wykonane na zbiorach uczących stworzonych dla wybranych typów zasobów. Część praktyczną pracy stanowią zaimplementowane algorytmy wykorzystane w Module Klasyfikacji systemu PSIR oraz utworzone zbiory uczące. Słowa kluczowe: klasyfikacja, uczenie maszynowe, Naiwny Klasyfikator Bayesa, Maszyna Wektorów Nośnych, reprezentacja dokumentów tekstowych, analiza składowych głównych. CLASSIFICATION OF WEB SEARCH RESULTS This thesis describes the methods of classification of web search results. There were discussed two frequently used classification algorithms: Naïve Bayes Classifier and Support Vector Machine (SVM). The research on the implemented classifiers was conducted on learning set created for particular types. Implemented algorithms used in Classification Module of the PSIR system and created learning sets constitute a practical part of this thesis. Keywords: classification, machine learning, Naïve Bayes Classifier, Support Vector Machine, Principal Component Analysis.

4 Spis treści 1 Wstęp Klasyfikacja zasobów Typy klasyfikacji Metody klasyfikacji Porównanie metod klasyfikacji Reprezentacja dokumentów Przekształcanie treści dokumentu Typy reprezentacji wektorowej Klasyfikatory Naiwny Klasyfikator Bayesa Reprezentacja binarna Reprezentacja częstotliwościowa (TF) Maszyna Wektorów Nośnych (SVM) Liniowy klasyfikator SVM SVM z funkcją błędu SVM z funkcją jądra Klasyfikacja dla wielu kategorii Ocena jakości klasyfikacji binarnej Zbiory uczące Implementacja Moduł Klasyfikacji Implementacja Modułu Klasyfikacji Model danych i narzędzia pomocnicze Implementacja klasyfikatora Bayesa Implementacja klasyfikatora SVM Wyniki wykonanych testów Graficzna prezentacja wyników Maszyna wektorów nośnych Naiwny Klasyfikator Bayesa Wyniki testów w systemie PSIR Podsumowanie Bibliografia... 54

5 1 Wstęp Klasyfikacja pełni ważną rolę w wielu systemach zarządzania danymi. Znajduje zastosowanie m. in. w takich dziedzinach jak: analiza baz danych, analiza danych giełdowych czy filtrowanie niechcianych wiadomości . Klasyfikowanie treści stron internetowych ułatwia tworzenie katalogów stron, w których treści posegregowane są tematycznie, co umożliwia łatwe ich przeglądanie. Klasyfikacja w znaczący sposób zwiększa także jakość wyszukiwania informacji w Sieci, poprzez filtrowanie wyników nienależących do określonej kategorii. W niniejszej pracy podjąłem temat klasyfikacji zasobów internetowych, badając dwa używane powszechnie algorytmy klasyfikacji: Naiwny Klasyfikator Bayesa i Maszynę Wektorów Nośnych. Stworzone implementacje klasyfikatorów zastosowane zostały w Module Klasyfikacji systemu PSIR, wykonanego w ramach projektu SYNAT 1. Opisałem także metody tworzenia zbiorów treningowych dla typów zasobów wymaganych w systemie. Głównym celem pracy było stworzenie klasyfikatorów dla Modułu Klasyfikacji systemu PSIR. Wymagało ono zbudowania zbiorów treningowych dla każdego z wymaganych typów zasobów, implementacji badanych algorytmów klasyfikacji oraz zbadania ich przydatności w zadaniu klasyfikacji stron internetowych. Przeprowadzone badania umożliwiły dobranie odpowiednich metod tak, aby osiągać jak najlepsze wyniki klasyfikacji. W rozdziale 2 wyjaśnione zostało pojęcie klasyfikacji zasobów z rozróżnieniem dwóch podejść: kategoryzacji i grupowania. Następnie opisany został podstawowy podział klasyfikacji na typy, pod względem ilości klas, sposobu przyporządkowania zasobu do klasy oraz struktury kategorii. Dalej opisane zostały różne kategorie metod przeprowadzania klasyfikacji. Rozdział kończy krótkie podsumowanie tych metod. Przedmiotem rozdziału 3 jest sposób reprezentowania zasobów w zadaniu klasyfikacji. Szczegółowo opisany został kilkuetapowy proces przekształcania dokumentu do odpowiedniej reprezentacji, którą w tym wypadku jest reprezentacja wektorowa. Przedstawione zostały także trzy popularne metody selekcji cech. Dalej znajduje się opis trzech głównych metod obliczania wartości atrybutów w reprezentacji wektorowej: binarna, częstotliwościowa oraz częstość słów odwrotna częstość dokumentów. Szczegółowy opis badanych w pracy algorytmów znajduje się w rozdziale 4. Przedstawiony został w nim sposób obliczania prawdopodobieństwa przynależności dokumentu do zbioru w Naiwnym Klasyfikatorze Bayesa dla dwóch reprezentacji: binarnej i częstotliwościowej. Dalej znajduje się opis klasyfikatora SVM (Maszyny Wektorów Nośnych). Rozpatrzone zostały trzy jego warianty: liniowy, liniowy z funkcją błędu oraz SVM z funkcją jądra. Podrozdział 4.3 zawiera opis miar, które zostały wykorzystane do oceny klasyfikacji, oraz zależności między nimi. Rozdział 5 zawiera opis metodologii zastosowanej przy budowaniu zbiorów treningowych dla każdego z typów zasobów. Przedstawione zostały źródła danych oraz sposoby wykorzystywania wyszukiwarki internetowej do poszukiwania przykładów uczących. Na końcu rozdziału znajduje się podsumowanie utworzonych zbiorów treningowych. 1 Praca była finansowana przez Narodowe Centrum Badań i Rozwoju w ramach Programu Strategicznego Interdyscyplinarny system interaktywnej informacji naukowej i naukowo technicznej, Umowa SP/I/1/77065/10. 1

6 Implementacja badanych algorytmów klasyfikacji została omówiona w rozdziale 6. Na początku znajduje się opis Modułu Klasyfikacji, który udostępnia utworzone klasyfikatory do wykorzystania przez inne części systemu. Dalsza część rozdziału prezentuje przyjętą architekturę. W kolejnych podrozdziałach objaśnione zostały szczegóły implementacyjne podprojektów: definicji interfejsów, narzędzi pomocniczych, implementacja Naiwnego Klasyfikatora Bayesa, implementacja Maszyny Wektorów Nośnych. Wymienione zostały także wykorzystane w projekcie biblioteki zewnętrzne. Ostatni, 7 rozdział zawiera wyniki przeprowadzonych testów. Na wstępie opisana została metoda analizy składowych głównych, która pozwoliła na prezentację zbiorów treningowych oraz wyników klasyfikacji na wykresach. Następnie zostały przeprowadzone testy klasyfikatora SVM w wersji liniowej z funkcją kary oraz w wersji z funkcją jądra. Dzięki przeprowadzonym testom dobrane zostały odpowiednie wartości parametrów, dla których klasyfikator uzyskiwał najlepsze rezultaty. Dalej opisane i omówione zostały testy Naiwnego Klasyfikatora Bayesa wykonane na tych samych zbiorach co SVM. Przetestowana i opisana została także dodatkowa metoda podejmowania decyzji o wyniku klasyfikacji. Rozdział kończy podsumowanie wyników uzyskanych dla wszystkich opracowanych typów zasobów. 2

7 2 Klasyfikacja zasobów Klasą nazywamy grupę obserwacji posiadających wspólne atrybuty (cechy). Klasyfikacja to proces przydzielania obserwacji do klas, bazując na ich atrybutach. Obserwacjami mogą być dowolne obiekty, które można opisać przy pomocy zbioru cech. Wraz z popularyzacją sieci Internet jako ogólnodostępnego źródła danych, w którym miliony ludzi na całym świecie mogą swobodnie i bez ograniczeń publikować informacje, wzrosła potrzeba ich skutecznego pozyskiwania i przetwarzania. Wzrastająca liczba dokumentów dostępnych w Sieci oraz brak jednolicie zdefiniowanego modelu danych znacznie utrudnia ten proces. Wyszukiwanie potrzebnych informacji oraz filtrowanie tych nieistotnych jest zadaniem trudnym i czasochłonnym. Kategoryzacja i grupowanie dokumentów o podobnej tematyce może znacznie je uprościć i skrócić. Przez kategoryzację dokumentów rozumiemy przyporządkowywanie ich do jednej z określonych kategorii tematycznych, zwanych w tej pracy klasami. Kategorie te najczęściej są stałe, nowe dokumenty przypisywane są do najbardziej odpowiedniej ze znanych klas. Kategoryzacja jest przykładem uczenia z nadzorem (ang. supervised learning), gdyż wymaga dostarczenia na początku wiedzy w postaci tzw. zbioru treningowego, który zawiera przykładowe dokumenty z przypisaniem do odpowiednich klas. Inną metodą podziału dokumentów na klasy jest grupowanie. Nie wykorzystuje ono z góry określonych kategorii, ani nie wymaga dostarczenia zbioru treningowego jest przykładem uczenia bez nadzoru (ang. unsupervised learning). Celem grupowania jest utworzenie klas w taki sposób, aby znajdujące się wewnątrz klasy dokumenty były do siebie jak najbardziej podobne, przy jak najmniejszym podobieństwie do dokumentów z innych klas. Stopień podobieństwa wyliczany jest według określonej miary, którą może to być np. liczba takich samych atrybutów. Liczba klas oraz przynależność dokumentów do nich, w przeciwieństwie do kategoryzacji, zmienia się w sposób dynamiczny. Poprzez klasyfikację rozumiemy zadanie przyporządkowywania dokumentów do klas poprzez zastosowanie jednej z metod: kategoryzacji lub grupowania. Przedmiotem niniejszej pracy jest klasyfikacja zasobów internetowych poprzez ich automatyczną kategoryzację. W tym wypadku klasyfikacja sprowadza się do analizowania przykładów trenujących, którymi są strony internetowe przypisane do odpowiadających im kategorii, zwanych także klasami lub typami zasobów. Celem tej analizy jest stworzenie modelu klasyfikacyjnego, który może być później użyty do przyporządkowywania nowych stron internetowych do odpowiednio zdefiniowanych wcześniej klas. Każdy przykład trenujący opisany jest przez zbiór atrybutów (cech). Na ich podstawie przeprowadzana jest wyżej wspomniana analiza. Proces ten oraz zawartość modelu klasyfikacyjnego zależy od przyjętego algorytmu klasyfikacji. Dalsza część rozdziału zawiera opis typów klasyfikacji, jakie można wyróżnić ze względu na sposób jej przeprowadzania, ilość klas oraz ich strukturę. Następnie omówione zostały metody dokonywania klasyfikacji oraz przedstawione krótkie porównanie tych metod. W kolejnych rozdziałach opisane są wykorzystywane w pracy algorytmy klasyfikacji oraz metody tworzenia zbiorów treningowych. Następnie opisana została implementacja algorytmów oraz wyniki przeprowadzonych testów skuteczności klasyfikacji. 2.1 Typy klasyfikacji W problemie klasyfikacji stron internetowych można wyróżnić dwa główne typy [1]: 3

8 klasyfikacja tematyczna, klasyfikacja funkcjonalna. Klasyfikacja tematyczna koncentruje się wokół rozróżniania stron na podstawie tematu podejmowanego w ich treści. Podejmowanie decyzji czy treść strony dotyczy np. sportu, biznesu czy religii jest przykładem klasyfikacji tematycznej. Klasyfikacja funkcjonalna zajmuje się odróżnianiem stron ze względu pełnioną przez nie funkcję. Przykładem takiej klasyfikacji jest odróżnianie stron osobistych od portali informacyjnych lub sklepów internetowych. Rysunek 1 Przykłady dla różnych typów klasyfikacji Biorąc pod uwagę liczbę klas występujących w problemie rozróżniamy: klasyfikację binarną i wieloklasową [1] (Rysunek 1, a i b). Klasyfikacja binarna ma za zadanie przypisanie zasobu do dokładnie jednej z dwóch klas, natomiast wieloklasowa do jednej z co najmniej trzech klas. Ze względu na liczbę klas, do których można przypisać jeden zasób, 4

9 rozróżniamy klasyfikację jedno-etykietową i wielo-etykietową [1] (Rysunek 1, b i c). W klasyfikacji jedno-etykietowej strona może należeć do dokładnie jednej klasy, w przypadku wielo-etykietowej do dowolnej liczby klas. Klasyfikacja wielo-etykietowa, ze względu na typ przypisania, może być twarda (ang. hard classification) lub miękka (ang. soft classification) [1] Rysunek 1, c i d. Twarda klasyfikacja oznacza, że strona może zostać przypisana do klasy lub nie nie ma stanu pośredniego. W klasyfikacji miękkiej strona jest przyporządkowana do każdej z klas z wyliczonym prawdopodobieństwem. Organizacja kategorii to kolejna cecha według której można wyróżnić dwa typy klasyfikacji: płaską i hierarchiczną [1]. W przypadku płaskiej klasyfikacji kategorie są względem siebie równoważne żadna z nich nie jest nadrzędna względem drugiej. Klasyfikacja hierarchiczna posiada zdefiniowane drzewo kategorii, w którym każda z kategorii może posiadać podkategorie. Przynależność do kategorii podrzędnej jest równoznaczna z przynależnością do wszystkich kategorii nadrzędnych względem niej. Rysunek 1 ilustruje opisane typy klasyfikacji. W ramach niniejszej pracy zajmowałem się metodami dokonywania klasyfikacji funkcjonalnej, binarnej, z płaską strukturą kategorii. 2.2 Metody klasyfikacji Model klasyfikacyjny może zostać utworzony na wiele sposobów. W zależności od przyjętej metody, klasyfikacja nowych zasobów przybiera różne formy. Jeżeli zbiór cech zawiera tylko kilka elementów (dwa lub trzy), klasyfikacja jest w miarę prosta. Np. dla dwóch parametrów wartość każdego z nich można traktować jako współrzędną w dwuwymiarowym układzie współrzędnych. Możliwe jest ręczne ustalenie granicy decyzyjnej poprzez wykorzystanie prezentacji graficznej danych w dwóch wymiarach. Klasyfikacja polega wtedy na sprawdzeniu, w którym obszarze leżą nowe obserwacje. Problem staje się trudniejszy, gdy atrybutów jest dużo więcej. Nie tylko dlatego, że wielowymiarowa przestrzeń jest trudna w wizualizacji. Istnieje wtedy wiele różnych kombinacji wartości atrybutów. Techniki bazujące na przeszukiwaniu przestrzeni atrybutów szybko stają się niewydajne obliczeniowo. Metody wykorzystywane w praktyce najczęściej wprowadzają jakieś uproszczenia w formie heurystyk, dzięki którym możliwe jest znalezienie rozwiązania niekoniecznie optymalnego, ale wystarczająco dobrego i o wiele szybciej. Istnieje wiele szeroko stosowanych metod klasyfikacji. Można je podzielić na kilka głównych kategorii [2]: metody logiczne, metody oparte o sieci neuronowe, metody statystyczne, metody oparte na przykładach, maszyna wektorów nośnych. Metody logiczne Do logicznych metod klasyfikacji zaliczamy głównie drzewa decyzyjne i klasyfikatory oparte na regułach. Drzewa decyzyjne umożliwiają klasyfikację poprzez sortowanie klasyfikowanych obserwacji w oparciu o wartości ich atrybutów. Każdy węzeł drzewa decyzyjnego reprezentuje warunek decyzyjny związany z jednym atrybutem, a każda krawędź odpowiada jednemu z możliwych wyników tego testu. Liście drzewa decyzyjnego repre- 5

10 zentują klasy, do których mogą zostać przyporządkowane obserwacje. Klasyfikowanie nowych obserwacji rozpoczyna się od korzenia i kończy po dotarciu do liścia. Konstruowanie drzewa decyzyjnego jest problemem NP-zupełnym [3]. Pełne drzewo decyzyjne zbudowane dla danego zbioru trenującego jest zwykle modelem nadmiernie dopasowanym do danych uczących [4]. Z tego względu stosowane są heurystyki, które umożliwiają otrzymanie generalizacji danych trenujących. Szczegóły odnośnie konstruowania drzew decyzyjnych znajdują się w [5]. Przykład 2.1 Rysunek 2 przedstawia drzewo decyzyjne dla danych uczących z Tabela 1. Rysunek 2 Drzewo decyzyjne dla danych z Tabela 1 Wartość atrybutu 1. (at. 1) Wartość atrybutu 2. (at. 2) Wartość atrybutu 3. (at. 3) Klasa a1 a2 a3 K1 a1 b2 a3 K1 a1 b2 b3 K2 b1 a2 a3 K2 c1 b2 b3 K2 Tabela 1 Dane treningowe Drzewo decyzyjne może być przekształcone do zbioru reguł poprzez stworzenie reguły dla każdej ścieżki od korzenia do liścia. Reguły mogą zostać uogólnione w przypadku nadmiernego dopasowania drzewa do danych uczących za pomocą odpowiednich algorytmów. Jednym z nich jest algorytm przycinania, opisany w [6]. 6

11 Metody oparte o sieci neuronowe Perceptron jest najprostszym przykładem zastosowania sieci neuronowej w klasyfikacji. Można go opisać następująco: Definicja 1 Dla wektora wartości atrybutów X = (x 1,..., x n ) i odpowiadającego mu wektora wag dla tych atrybutów W = (w 1,..., x n ), gdzie: obliczana jest suma: i {1,,n} w i 1, 1 S = x i w i i {1,,n} która porównywana jest z ustawioną wartością graniczną G. Wynik działania perceptronu jest następujący: S > G 1 S G 0 Najczęściej stosowanym sposobem uczenia perceptronu przy pomocy zbioru treningowego jest zmienianie w pętli wektora wag dotąd, aż ilość błędnie klasyfikowanych przykładów trenujących będzie akceptowanie mała (próg tego błędu jest parametrem perceptronu). Otrzymany wektor wag jest później używany do klasyfikacji. Perceptrony mogą uzyskać zerowy błąd jedynie dla danych liniowo separowalnych. Jeśli dane nie są w pełni liniowo separowalne, nie można znaleźć wektora W, dla którego perceptron prawidłowo sklasyfikuje wszystkie przykłady ze zbioru treningowego. Wielowarstwowe perceptrony (wielowarstwowe sztuczne sieci neuronowe) są w stanie klasyfikować dane, które nie są liniowo separowalne. Składają się one z wielu połączonych ze sobą jednostek (neuronów). Sieci neuronowe szerzej opisane zostały w [7]. Metody statystyczne W przeciwieństwie do sieci neuronowej metody statystyczne charakteryzują się modelem, na podstawie którego wyliczane są prawdopodobieństwa przynależności do każdej klasy. Przykładem metody statystycznej jest Naiwny Klasyfikator Bayesa oraz Sieć bayesowska. Klasyfikator Bayesa bazuje na Twierdzeniu Bayesa [8] o prawdopodobieństwie warunkowym. Algorytm został szczegółowo opisany w rozdziale 4. Sieć bayesowska ilustruje zależności pomiędzy atrybutami bazując na rozkładzie prawdopodobieństwa występowania ich wartości. Rozkład ten modelowany jest przy pomocy skierowanego grafu acyklicznego, w którym wierzchołki reprezentują wartości atrybutów, a łuki związki przyczynowe pomiędzy nimi (warunkowe prawdopodobieństwa ich posiadania). Brak łuku oznacza niezależność pomiędzy wartościami cech. Założeniem sieci bayesowskiej jest niezależność danej cechy od wszystkich jej następników. Sieci bayesowskie dokładniej opisane zostały w [9]. 7

12 Metody oparte na przykładach Kolejną kategorią metod klasyfikacji jest klasyfikacja w oparciu o przykłady. Są to algorytmy leniwego uczenia, gdyż cały proces generalizacji i wnioskowania odbywa się podczas klasyfikacji. Z tego powodu uczenie klasyfikatora przebiega szybko i nie wymaga dużych nakładów obliczeniowych. Jednym z najprostszych przykładów takiego podejścia jest algorytm k-najbliższych sąsiadów. Opiera się on na założeniu, że jeśli przykłady posiadają podobne atrybuty to prawdopodobnie należą do jednej klasy. Przypisanie nowej obserwacji do klasy dokonywane jest na podstawie przynależności do klas jej najbliższych sąsiadów. Parametr k określa, ilu sąsiadów jest branych pod uwagę. Najczęściej występująca wśród nich klasa jest wynikiem klasyfikacji. Istnieje wiele metod obliczania odległości pomiędzy reprezentacjami przykładów. Algorytm został szczegółowo przedstawiony w [10]. Maszyna Wektorów Nośnych Oddzielną kategorię metod klasyfikacji stanowią różne wersje Maszyny Wektorów Nośnych (ang. Support Vector Machine). Algorytm został szczegółowo opisany w rozdziale Porównanie metod klasyfikacji Wszystkie metody klasyfikacji posiadają wady i zalety, które należy uwzględnić podczas wyboru metody dla danego zadania. Porównanie metod klasyfikacji zaczerpnięte zostało z [2]. Zazwyczaj SVM i sieci neuronowe lepiej radzą sobie z wielowymiarowymi danymi i ciągłymi wartościami atrybutów niż pozostałe metody. Z drugiej strony metody logiczne osiągają lepsze rezultaty przy dyskretnych wartościach atrybutów. Sieci neuronowe i SVM wymagają także dużych ilości danych treningowych, aby uzyskać największą dokładność. Naiwny Klasyfikator Bayesa potrzebuje ich znacznie mniej. Algorytm k-najbliższych sąsiadów (KNN) jest bardzo wrażliwy na nieistotne cechy, co wynika ze sposobu w jaki działa: każdy taki atrybut przybliża klasyfikowany przypadek do praktycznie losowej klasy. W przypadku sieci neuronowych nadmiarowe atrybuty mogą spowodować znaczny spadek wydajności przy uczeniu, a wręcz doprowadzić do budowania błędnych modeli. Pod względem szybkości klasyfikacji KNN ze względu na leniwe uczenie wypada najgorzej. Za to uczenie nie wymaga praktycznie żadnych obliczeń polega na zapisaniu przykładów w wygodnej formie. Najgorzej pod względem szybkości uczenia wypadają sieci neuronowe i SVM. W ramach niniejszej pracy dokładnie opisane i przeanalizowane zostały dwie metody klasyfikacji: Naiwny Klasyfikator Bayesa i Maszyna Wektorów Nośnych. 8

13 3 Reprezentacja dokumentów Automatyczna klasyfikacja dokumentów tekstowych wymaga dostarczenia informacji o ich zawartości. Pierwotna postać dokumentu jest najczęściej nieodpowiednia ze względu na brak określonej struktury. Wymagane jest zatem przekształcenie dokumentu do postaci akceptowalnej przez wejście klasyfikatora. W niniejszym rozdziale zostaną omówione metody przeprowadzania takich transformacji oraz najczęściej stosowane typy reprezentacji wektorowej dokumentów. 3.1 Przekształcanie treści dokumentu Transformację dokumentu do reprezentacji akceptowalnej przez klasyfikator należy rozpocząć od wydobycia atrybutów, które dobrze go opisują. Według [11] słowo (ang. term) jest najczęściej najlepszą jednostką, której można użyć do reprezentacji dokumentów tekstowych. Dlatego zawarte w dokumentach słowa będą pełniły rolę ich atrybutów. Ciągły tekst, który stanowi zawartość dokumentu przed transformacją, mimo że zawiera dużo informacji, jest nieprzydatny z punktu widzenia klasyfikacji. Forma, jaką przyjmuje, nie jest w wystarczającym stopniu ustrukturalizowana. Można wymienić kilka cech specyficznych dla wielu tekstów, takich jak: podział na zdania, ich budowa, znaki przestankowe. Jednak algorytm klasyfikacji, ze względu na brak sztywnych reguł rządzących np. budową zdania, nie jest w stanie wydobyć z nich żadnych informacji. Kolejność słów w tekście ma ogromne znaczenie dla zrozumienia jego sensu. Czytając tekst wydobywamy jego przesłanie na podstawie znaczenia słów, z których się składa, oraz kolejności w jakiej te słowa występują. Zachowując informację o kolejności słów w tekście, jesteśmy w stanie odtworzyć jego pierwotną postać. Wiąże się to jednak ze stosowaniem skomplikowanych struktur danych, które byłyby w stanie przechowywać wszystkie te informacje. Używanie takich struktur powodowałoby spory narzut operacji obliczeniowych, który mógłby znacznie spowolnić działanie algorytmów. Konieczne jest zatem uproszczenie treści i usunięcie z niej elementów zbędnych. Najczęściej spotykaną formą reprezentacji dokumentów tekstowych dla zadania klasyfikacji automatycznej jest reprezentacja wektorowa. Liczba współrzędnych wektora reprezentującego dokument tekstowy odpowiada liczbie atrybutów (słów) w słowniku. Wartości tych współrzędnych są liczbami. Słownik jest wyselekcjonowanym zestawem słów występujących w dokumentach należących do zbioru treningowego. Wektor reprezentujący dokument można rozpatrywać jako punkt w przestrzeni n-wymiarowej, gdzie n oznacza wielkość słownika. Zastosowany w tej pracy proces przekształcania dokumentu z pierwotnej postaci do wektora atrybutów składa się z następujących etapów: normalizacja, tokenizacja, stemming, selekcja cech, obliczenie wartości współrzędnych. Normalizacja dokumentu Przetwarzanie treści dokumentów należy rozpocząć od ich normalizacji. Pozwala to na traktowanie wszystkich dokumentów w ten sam sposób i wykonywanie na nich identycz- 9

14 nych operacji. Dokumenty otrzymane do klasyfikacji mogą różnić się między sobą pod wieloma względami. Najczęściej jest to format, w którym dokument został zapisany lub metoda kodowania znaków. Należy wybrać jeden format i jeden sposób kodowania, a następnie przekonwertować wszystkie dokumenty, aby były ze sobą zgodne. Do przechowywania dokumentów tekstowych najlepszym rozwiązaniem wydaje się zwykły plik tekstowy. Podczas wydobywania informacji o słowach występujących w dokumentach nie jest istotne formatowanie tekstu. Przetwarzanie stron internetowych, które pełnią rolę dokumentów w niniejszej pracy, można rozpocząć od usunięcia kodu HTML (ang. HyperText Markup Language). Po tej operacji pozostaje jedynie czysty tekst zawarty pomiędzy znacznikami HTML. Wybranym kodowaniem znaków jest standard UTF-8, czyli jeden z systemów kodowania Unicode. Unicode pozwala na zapisanie znaków używanych w dowolnym języku. Stosując takie kodowanie, unikamy pojawiania się w tekście źle zakodowanych znaków oraz traktowania tych samych słów jako inne. Tokenizacja Kolejną fazą transformacji dokumentu jest wydobycie z niego elementarnych, niepodzielnych składowych. Elementy takie nazywane są żetonami (ang. token stąd nazwa procesu: tokenizacja), ich rolę pełnią zwykle atrybuty dokumentów. W zależności od tego co jest atrybutem w danym przypadku, tokenizacja może przyjmować różne formy. Jeśli atrybutem dokumentu jest słowo, będzie to proces wydobywania słów z tekstu ciągłego. Podczas przeprowadzania tokenizacji tekstu, pewne informacje o nim są bezpowrotnie tracone. Otrzymana lista słów nie zawiera np. znaków przestankowych, które w pierwotnym tekście pełniły ważną rolę w jego znaczeniu. Stopień złożoności modelu ma niebagatelny wpływ na proces tokenizacji. Dla rozbudowanych modeli, zachowujących kontekst występowania wyrazu w zdaniu, konieczne jest wydobycie tych informacji już na tym etapie. W przypadku modelu uproszczonego, podczas tokenizacji tracony jest kontekst, w którym występuje słowo. W zależności od słów sąsiednich, może mieć ono różne znaczenia. Np. słowo tytuł posiada inne znaczenie w zdaniu: Kowalski uzyskał tytuł doktora w ubiegłym roku niż w zdaniu Tytuł pracy magisterskiej musi spełniać kilka formalnych wymogów. Metody zaimplementowane w tej pracy pomijają kontekst słów. Ważnym elementem tego procesu jest przekształcenie wydobytych słów do odpowiedniego, jednolitego formatu. W niniejszej pracy przyjęto, że wszystkie słowa zapisane będą jedynie małymi literami i do tej formy należy je przekształcić. Znika wtedy problem traktowania tego samego słowa jako dwa różne, np. z powodu rozpoczęcia jednego z nich wielką literą. Przetwarzanie tekstu w listę słów powinno zachowywać kolejność ich występowania. Decyzja o tym, czy będzie ona miała znaczenie w ostatecznej reprezentacji dokumentu, zostaje podjęta w kolejnych etapach. Stemming Stemming to proces redukowania słowa do jego rdzenia. Rdzeniem nazywamy główną część wyrazu, po oddzieleniu od niego wszystkich afiksów. W każdym języku tworzenie wyrazów z form podstawowych przebiega inaczej. Stąd, aby zredukować wyraz do jego rdzenia, konieczna jest informacja o języku, z którego ten wyraz pochodzi. 10

15 Powodem, dla którego dokonuje się stemmingu, jest chęć ograniczenia wielkości słownika zbioru uczącego. Mniejsza liczba wyrazów oznacza uproszczenie procesu klasyfikacji oraz jej przyspieszenie. Wyrazy posiadające ten sam rdzeń zwykle są powiązane ze sobą tematycznie i nazywamy je rodziną wyrazów. Np. wyrazy: domowy, domownik, przydomowy, udomowiony, domek, domostwo posiadają wspólny rdzeń dom. Stemming może zostać przeprowadzony na wiele sposobów. Jednym z najpopularniejszych jest przeznaczony dla języka angielskiego algorytm Portera, szerzej opisany w [12]. Dla języka polskiego należy zastosować inny algorytm, np. opisany w [13]. Oba wymienione algorytmy znalazły zastosowanie w pracy. Selekcja cech Selekcja cech to proces wyboru podzbioru słów pojawiających się w zbiorze trenującym oraz używanie tylko ich podczas uczenia. Dokonuje się jej z dwóch głównych powodów. Pierwszym jest zwiększenie efektywności uczenia poprzez zmniejszenie rozmiaru słownika. Jest to szczególnie istotne dla algorytmów, w których uczenie jest złożonym procesem. Drugim powodem jest chęć usunięcia słów nadmiarowych (szumu), aby zwiększyć dokładność klasyfikacji. Słowo, którego obecność powoduje zwiększenie błędu klasyfikacji należy usunąć ze słownika. Np. wyraz mapa jest całkowicie zbędny w słowniku dla klasy Biologia. Nie niesie za sobą żadnej informacji, a wręcz utrudnia klasyfikację. Może się zdarzyć, że dokument należący do klasy Geografia, posiadając słowo mapa, zostanie błędnie zaklasyfikowany do klasy Biologia. Zjawisko takie nazywane jest przetrenowaniem (ang. overfitting). Zachodzi ono, gdy model ma zbyt dużo parametrów w stosunku do rozmiaru danych, na podstawie których był tworzony. Zaczyna wtedy dopasowywać się do przypadkowych błędów w danych uczących i tym samym zanika jego zdolność generalizacji oraz możliwość zastosowania do innych podobnych danych. D - słownik zbioru c klasa k oczekiwany rozmiar słownika (liczba słów) WyborCech(D, c, k) L kolejka priorytetowa dla każdego t D priorytet OcenaAtrybutu(D, c, t) wstawdokolejki(l, t, priorytet) return pobierznajlepsze(l, k) Algorytm 1 Wybór cech na podstawie wartości funkcji oceny Najprostszy sposób wyboru atrybutów przedstawia Algorytm 1, gdzie funkcja OcenaAtrybutu zależy od przyjętej metody wyboru cech. Poniżej zostaną opisane trzy, często używane miary: informacja wzajemna (ang. mutual information) dalej oznaczana MI, χ 2, bazująca na częstotliwości. 11

16 MI między słowem t i klasą c jest miarą informacji, jaką słowo t wnosi do klasyfikacji dokumentów z klasy c, zwiększając jej poprawność. Innymi słowy, MI mierzy ile informacji o c można poznać znając t, czyli o ile poznanie t zmniejsza niepewność o c. Jeśli t i c są niezależne, to ich informacja wzajemna jest zerowa. Z kolei jeśli t jest słowem warunkującym przynależność do klasy c oraz wykluczającym przynależność do innej klasy, to MI jest największe. Metoda obliczania miary MI szerzej opisana jest w [14]. χ 2 w statystyce jest miarą niezależności dwóch zdarzeń. Zdarzenia A i B są niezależne, gdy: P(A, B) = P(A) P(B) W selekcji atrybutów zdarzeniem jest wystąpienie konkretnej wartości atrybutu i wystąpienie klasy. Słowa występujące w dokumencie są szeregowane według: gdzie: X 2 D, c, t = N et e c E et e c 2 E et e e e c t 0, 1 c 0, 1 e t = 1, gdy dokument zawiera słowo t lub 0 w przeciwnym wypadku, e c = 1, gdy dokument jest w klasie c lub 0 w przeciwnym wypadku, N et e c oznacza zaobserwowaną częstotliwość w słowniku, E et e c oznacza zakładaną częstotliwość w słowniku. Przykładowo, E 11 jest średnią częstotliwością słowa t w dokumentach należących do klasy c, zakładając że t i c są niezależne. X 2 mierzy jak bardzo oczekiwana częstotliwość E odbiega od zaobserwowanej N. Wysoka wartość X 2 wskazuje, że t i c są od siebie zależne, co z kolei implikuje wyższe prawdopodobieństwo przynależności dokumentu do klasy c, jeśli zawiera on słowo t. Słowo takie jest bardziej przydatne w zbiorze i nie powinno zostać z niego wykluczone. Ostatnią z wymienionych miar przydatności atrybutu jest jego częstotliwość w zbiorze. Wybierane są te, które pojawiają się najczęściej. Częstotliwość ta może być zdefiniowana na dwa sposoby, jako: liczba dokumentów w klasie c, które zawierają słowo t, liczba wystąpień słowa t w dokumentach z klasy c. Odrzucane są słowa pojawiające się sporadycznie w zbiorze, nie mające znaczenia w procesie klasyfikacji, np. nazwy miesięcy mogą występować w dokumentach dowolnej klasy, ale z niską częstotliwością w każdej klasie. Słowa pojawiające się jedynie kilka razy w zbiorze zawierającym kilkaset dokumentów i kilkanaście tysięcy słów powinny zostać odrzucone, ze względu na małe znaczenie. Mimo że metoda ta jest najprostszą z przedstawionych, najczęściej daje zadowalające efekty, porównywalne z bardziej skomplikowanymi rozwiązaniami. Bardzo dobrą metodą redukcji słów nieistotnych w słowniku, jest usunięcie z niego wyrazów najczęściej występujących w danym języku. Słowa takie mogą pojawiać się dosyć często, dlatego nie zostaną usunięte poprzez redukcję metodą częstotliwościową. Wyrazy takie jak np.: około, powyższy, przez, dodaj, korzyść, popołudnie, mimo że mogą 12

17 występować często w treści dokumentów, są nieistotne z punktu widzenia klasyfikacji, gdyż nie niosą ze sobą żadnej informacji charakterystycznej dla danej klasy. Stosując taki filtr, można w dosyć prosty sposób znacząco zmniejszyć wielkość słownika dla zbioru. Warto rozważyć przy okazji wprowadzenie dodatkowych filtrów, np. na słowa zawierające mniej niż trzy litery. Są to zwykle spójniki, zaimki czy partykuły, których obecność w słowniku nie jest wskazana. 3.2 Typy reprezentacji wektorowej Po wykonaniu opisanych w poprzednim podrozdziale czynności, otrzymujemy zestaw cech, istotnych dla rozpatrywanego zbioru uczącego. Kolejnym krokiem jest przekształcenie każdego z przykładów uczących do wektora cech (reprezentacja wektorowa). W tej pracy wektory reprezentujące dokumenty to wektory równej długości o elementach liczbowych. Istnieją trzy główne typy reprezentacji wektorowej, różniące się sposobem wyliczania wartości dla każdego z atrybutów: binarna, częstotliwościowa (ang. term frequency, w skrócie TF), nazywana także workiem słów (ang. bag of words), częstość słów odwrotna częstość dokumentów (ang. term frequency inverse document frequency, w skrócie TF-IDF). Reprezentacja binarna Dokument tekstowy można traktować jako zbiór słów. Wektor reprezentujący ten dokument uwzględnia wtedy pojawienie się słowa ze słownika w dokumencie lub jego brak. Dla następującego słownika: S = (t 1, t 2,, t n ) gdzie t i dla i {1,..., n} jest słowem, wektor reprezentujący dokument d, przyjmie postać: gdzie: i {1,,n} B d = (a 1, a 2,, a n ) a i = 1, t i d 0, t i d Kolejność wartości atrybutów w wektorze jest zgodna z kolejnością wyrazów w słowniku. Stąd dla konkretnego dokumentu, przekształcenie go do reprezentacji wektorowej powoduje utratę informacji o szyku wyrazów. Informacja ta jest tracona bezpowrotnie i nie można jej odtworzyć. Dokument staje się nieczytelny dla człowieka, ale analizując wyrazy pojawiające się w nim, można stwierdzić z dużym prawdopodobieństwem jaki jest temat podjęty w jego treści. Jest to istotne w przypadku zadania klasyfikacji, dlatego taka reprezentacja, mimo utraty dużej ilości informacji, nadal jest użyteczna. Reprezentacja częstotliwościowa W reprezentacji binarnej liczba wystąpień słowa w dokumencie nie jest brana pod uwagę, jest to jedynie wektor zer i jedynek. Rozszerzenie tej reprezentacji o dodatkową informację, jaką jest częstość wystąpień wyrazu w dokumencie powoduje zróżnicowanie 13

18 ważności atrybutów. Jedyną zmianą w modelu worka słów w porównaniu z reprezentacją binarną, jest wartość atrybutu, która odpowiada częstości jego wystąpień w dokumencie. Wektor reprezentujący dokument przyjmuje postać: TF d = (f 1, f 2,, f n ) i {1,,n} f i = c i c k k={1,,n } gdzie c i to liczba wystąpień słowa t i w reprezentowanym dokumencie d. Zaletą takiego rozwiązania jest odróżnienie słów bardziej reprezentatywnych od tych, które pojawiają się w dokumencie sporadycznie. Warto zauważyć, że słowa popularne w danym języku często występują także w pojedynczym dokumencie, a są one nieistotne dla klasyfikacji. Dlatego ważne jest przeprowadzenie odfiltrowania tych wyrazów ze słownika na etapie selekcji cech. Częstość słów odwrotna częstość dokumentów Zwykła reprezentacja częstotliwościowa opisana powyżej posiada jedną wadę: wszystkie słowa, które pojawiają się jednakowo często w dokumentach z różnych klas, posiadają takie same wartości. To, czy w skali całego zbioru występują często nie jest odzwierciedlone. Np. słowo uniwersytet w zbiorze stron internetowych uczelni wyższych pojawiać się będzie w prawie każdym przypadku. W celu faworyzowania atrybutów najważniejszych w obrębie danego dokumentu, najwyższe wartości powinny otrzymywać słowa występujące możliwie najczęściej w dokumencie i najrzadziej w całym zbiorze. Należy pomnożyć wartości otrzymane dla reprezentacji częstotliwościowej przez miarę odwrotnej częstości dokumentów (IDF) każdego ze słów. Miara ta może być zdefiniowana dla każdego słowa jako stosunek liczby wszystkich dokumentów w zbiorze do liczby dokumentów zawierających ten wyraz: gdzie: IDF(t i ) = D d j D c ij > 0 D to zbiór dokumentów, c ij to liczba wystąpień słowa t i w dokumencie d j. Ostatecznie wektor TFIDF reprezentujący dokument d ma postać: TFIDF d = (s 1, s 2,, s n ) i {1,,n } s i = c i c k k={1,,n} IDF(t i ) gdzie c i to liczba wystąpień słowa t i w reprezentowanym dokumencie d. TFIDF zawiera najwięcej informacji o zbiorze spośród zaprezentowanych modeli. Stosowany jest najczęściej przy obliczaniu współczynnika podobieństwa między dokumentami lub ocenie dokumentu w wyszukiwarkach internetowych. 14

19 4 Klasyfikatory W niniejszym rozdziale opisane zostaną algorytmy klasyfikacji dokumentów tekstowych, które zostały zaimplementowane w ramach mojej pracy dyplomowej oraz metody oceny skuteczności klasyfikacji. Omówione algorytmy klasyfikacji to: 1. Naiwny Klasyfikator Bayesa 2. Maszyna Wektorów Nośnych (SVM - Support Vector Machine) Definicja 2. Klasyfikatorem nazywamy program dokonujący klasyfikacji obiektów zgodnie z określonym algorytmem, na podstawie dostarczonych podczas uczenia informacji. Zadanie klasyfikacji można sprowadzić do przypisania wartości boolowskiej każdej parze D i, C j D C, gdzie D to zbiór dokumentów, a C zbiór kategorii (klas). Klasyfikacja polega wtedy na zdefiniowaniu funkcji: φ: D C 0, 1 (4.1) Wartość funkcji φ jest obliczana przez klasyfikator podczas jego uczenia. Klasyfikator otrzymuje zestaw dokumentów należących do D, z których każdy jest przypisany do klasy z C. Wynikiem tego procesu jest model, używany w późniejszej klasyfikacji. Postać modelu zależy od przyjętego algorytmu. 4.1 Naiwny Klasyfikator Bayesa Naiwny Klasyfikator Bayesa to jeden z prostszych probabilistycznych klasyfikatorów używanych dla dokumentów tekstowych. Klasyfikacja polega na obliczeniu prawdopodobieństwa przynależności dokumentu d i do klasy C j, czyli P C j d i. Dokument przypisywany jest do tej klasy, dla której prawdopodobieństwo to jest największe. Definicja 3. P C j d i jest prawdopodobieństwem warunkowym zdarzenia C j (przynależności do klasy C j ) pod warunkiem zajścia zdarzenia d i (posiadania atrybutów dokumentu d i ). Zgodnie z Twierdzeniem Bayesa [8], może ono zostać zapisane jako: P C j d i = P d i C j P C j P d i (4.2) P d i oznacza prawdopodobieństwo pojawienia się dokumentu d i. Dla każdej klasy jest takie samo (nie zależy w żaden sposób od rozpatrywanej klasy), dlatego można je pominąć. Wtedy maksymalizacja prawdopodobieństwa P C j d i jest równoważna maksymalizacji iloczynu P d i C j P C j. P C j, czyli prawdopodobieństwo przynależności dowolnego dokumentu do klasy C j, określa jaką część całego zbioru dokumentów stanowią te należące do C j. Wartość tego prawdopodobieństwa nie jest znana, dlatego będzie ona parametrem klasyfikatora. Na początku można przyjąć: 15

20 P C j = 1 C (4.3) Dla klasyfikacji binarnej będzie to 0,5. Następnie wartość ta może być dobierana tak, aby zwiększać dokładność klasyfikacji. Problem obliczenia prawdopodobieństwa P C j d i sprowadza się zatem do obliczenia P d i C j, czyli prawdopodobieństwa warunkowego zdarzenia d i (posiadania cech dokumentu d i ) pod warunkiem zajścia zdarzenia C j (przynależności do klasy C j ). Może ono być rozumiane jako prawdopodobieństwo tego, że jeśli dokument d i należy do klasy C j, to wartość jego atrybutów pokrywa się z wartościami charakterystycznymi dla innych dokumentów z tej klasy. Algorytm Naiwnego Klasyfikatora Bayesa wymaga założenia, że wartości atrybutów w danej klasie są niezależne od wartości pozostałych atrybutów. Jest to założenie najczęściej błędne, jednak jego wprowadzenie w znaczący sposób przyczynia się do uproszczenia obliczeń. Stąd też pochodzi nazwa naiwny. Dokument d i reprezentowany jest przez wektor wartości swoich atrybutów: d i = a 1, a 2, a 3,, a n (4.4) Proces przekształcania dokumentu do tej postaci został opisany w rozdziale 3. Dzięki założeniu o niezależności atrybutów od siebie, prawdopodobieństwo P d i C j można zapisać jako: P d i C j = P a 1, a 2, a 3,, a n C j = P a k C j n k=1 (4.5) Wartość P a k C j jest obliczana inną metodą dla reprezentacji binarnej niż dla częstotliwościowej (opis reprezentacji w rozdziale 3.2) Reprezentacja binarna W przypadku reprezentacji binarnej, P a k C j jest to stosunek liczby dokumentów z klasy C j, które posiadają atrybut a k, do liczby wszystkich dokumentów w klasie C j Reprezentacja częstotliwościowa (TF) Niech n kl oznacza liczbę wystąpień atrybutu a k w dokumencie d l. Prawdopodobieństwo P a k C j można określić jako stosunek liczby wystąpień a k w dokumentach z klasy C j do liczby wystąpień wszystkich atrybutów w klasie C j. P a k C j = n l=1 n kl m n k=1 l=1 n kl (4.6) Warto rozważyć sytuację, gdy atrybut a i klasyfikowanego dokumentu d i nie występuje w żadnym z dokumentów z klasy C j. Wtedy: 16

21 P a k C j = 0 a co za tym idzie: P d i C j = 0 Dokument może więc zostać zdyskwalifikowany na podstawie wartości jednego atrybutu. W celu zapobiegnięcia takiej sytuacji stosuje się estymację Laplace a. Metoda ta polega na dodaniu 1 do każdej wartości licznika oraz 2 do każdej wartości mianownika P a k C j. Dzięki temu rozwiązany zostaje problem zerowego prawdopodobieństwa przynależności dokumentu do klasy. 4.2 Maszyna Wektorów Nośnych (SVM) Bardziej złożonym klasyfikatorem jest Maszyna Wektorów Nośnych (SVM - Support Vector Machine). Jego uczenie polega na znalezieniu hiperpłaszczyzny rozdzielającej punkty należące do dwóch klas, zachowując przy tym maksymalny margines błędu. W dalszej części rozdziału rozpatrywane będą trzy warianty klasyfikatora SVM: 1. liniowy (dla klas liniowo separowalnych) 2. liniowy z funkcją błędu (dla klas nie w pełni liniowo separowalnych) 3. SVM z funkcją jądra Definicja 4. Niech T będzie zbiorem treningowym zawierającym n punktów postaci: T = d 1, y 1, d 2, y 2,, d n, y n (4.7) gdzie dla i 1,, n, d i jest m wymiarowym wektorem atrybutów dokumentu, a y i 1, 1 binarną etykietą klasy, do której należy d i. Reprezentacja danych (binarna lub częstotliwościowa) nie zmienia algorytmu uczenia, jak w przypadku Naiwnego Klasyfikatora Bayesa. Zmiana reprezentacji polega jedynie na uwzględnieniu częstości wystąpień atrybutu w przypadku reprezentacji częstotliwościowej, lub nie uwzględnieniu jej dla reprezentacji binarnej Liniowy klasyfikator SVM W tym wariancie zakładamy, że punkty odpowiadające wektorom atrybutów dokumentów, należące do podanych klas są liniowo separowalne, czyli że możliwe jest poprowadzenie między nimi prostej (w przypadku gdy punkty są dwuwymiarowe) lub hiperpłaszczyzny, która separuje wektory należące do różnych klas (gdy punkty mają więcej niż dwa wymiary). Zadaniem klasyfikatora podczas uczenia jest zdefiniowanie funkcji decyzyjnej postaci: f d = sgn w d b (4.8) gdzie wektor w jest wektorem normalnym do hiperpłaszczyzny H oddzielającej punkty należące do różnych klas (patrz Rysunek 3). Hiperpłaszczyzna H opisana jest wzorem: H: w d + b = 0 (4.9) 17

22 Rysunek 3 Hiperpłaszczyzna H: w a + b = 0 rozdzielająca punkty należące do dwóch klas Wektorami nośnymi są punkty leżące najbliżej H, a celem algorytmu jest takie umiejscowienie H, aby znajdowała się jak najdalej od najbliższych punktów z obu klas (maksymalizacja m patrz Rysunek 3). Hiperpłaszczyzny, na których leżą wektory nośne (H1 i H2) są równo oddalone od H a ich odległość od siebie wynosi 2 w. Maksymalizacja m jest zatem równoważna z minimalizacją w, przy uwzględnieniu założenia, że pomiędzy H1 a H2 nie występują żadne punkty z T: d i w + b 1 dla y i = 1 d i w + b 1 dla y i = 1 (4.10) co można zapisać jako: i y i w d i + b 1 (4.11) min w można sprowadzić do min 1 w 2 (oba problemy są równoważne) dzięki czemu 2 możliwe będzie przeprowadzenie optymalizacji kwadratowej (Quadratic Programming optimization). W tym momencie problem przedstawia się następująco: min 1 2 w 2 przy założeniu: i y i w d i + b 1 (4.12) Kolejnym etapem minimalizacji jest dobranie mnożników Lagrange a α tak, aby spełnione były założenia. Otrzymujemy funkcjonał zwany Lagrangianem (gdzie i α i 0): L w, b, α 1 2 w 2 α i y i w d i + b N i=1 N + α i i=1 (4.13) Problem polega na rozwiązaniu zadania optymalizacji metodą Lagrange a, czyli znalezieniu takich wartości współczynników w i b, które minimalizują (4.13), oraz α, które mak- 18

23 symalizuje (4.13). Różniczkując powyższe równanie po w i b (uwzględniając warunek i α i 0) i przyrównując je do 0 otrzymujemy dualny problem Wolfe a: L w, b, α w N = 0 w = α i y i d i i=1 (4.14) L w, b, α b N = 0 α i y i = 0 (4.15) i=1 Podstawiając (4.14) i (4.15) do (4.13) otrzymujemy (po przekształceniach) nowe równanie, zależne jedynie od α, które należy zmaksymalizować: gdzie: L α N i=1 α i 1 2 αt Hα H = y 1 y 1 d 1 d 1 y 1 y n d 1 d n y n y 1 d n d 1 y n y n d n d n N i α i 0, α i y i = 0 i=1 (4.16) (4.16) to wypukły problem optymalizacji kwadratowej, do którego rozwiązania można użyć odpowiedniego solvera QP. Dzięki otrzymanemu w ten sposób wektorowi α, po podstawieniu do (4.14), uzyskujemy wektor w. Punkty, dla których α i > 0 są wektorami nośnymi. Pozostało jeszcze obliczenie parametru b. Z nierówności (4.11) wynika, że każdy wektor nośny d s musi spełniać równanie (leży na granicznej hiperpłaszczyźnie): Po podstawieniu (4.14) za w, otrzymamy: y s w d s + b = 1 (4.17) y s m S α m y m d m d s + b = 1 (4.18) S jest zbiorem indeksów wektorów nośnych, czyli indeksów i, dla których α i > 0. Zgodnie z (4.10) y s 2 = 1, więc po pomnożeniu obu stron równania przez y s otrzymamy: b = y s m S α m y m d m d s (4.19) Zamiast wyboru jednego wektora dla wzoru (4.19), dużo lepszym rozwiązaniem jest obliczenie średniej wartości b dla wszystkich wektorów nośnych: 19

24 b = 1 N S y s α m y m d m d s s S m S (4.20) Obliczone wartości w oraz b definiują hiperpłaszczyznę rozdzielającą rozpatrywane klasy. Klasyfikacja nowego punktu określonego wektorem atrybutów d, polega na podstawieniu w, b oraz d do wzoru (4.8) SVM z funkcją błędu Rysunek 4 Przykład klas nie w pełni separowalnych liniowo W praktyce rzadko zdarza się, że możliwe jest bezbłędne odseparowanie punktów należących do poszczególnych klas część punktów może w znacznym stopniu odbiegać od reszty. Konieczne jest więc dopuszczenie do sytuacji, gdy punkty pojawiają się po niewłaściwych stronach hiperpłaszczyzn H1 i H2 (patrz Rysunek 4). W tym celu należy odpowiednio zmodyfikować warunki (4.10), wprowadzając zmienną relaksacyjną ξ i : d i w + b 1 ξ i dla y i = 1 d i w + b 1 + ξ i dla y i = 1 i ξ i 0 (4.21) W wyniku czego, warunek z (4.11) przedstawia się następująco: i y i w d i + b 1 ξ i i ξ i 0 (4.22) Pojawienie się takiego nieprawidłowego punktu powinno być w pewien sposób karane, a wielkość kary musi wzrastać wraz ze wzrostem błędu. W celu zmniejszenia liczby błędnych klasyfikacji, rozsądnym podejściem jest modyfikacja (4.12) w następujący sposób: 20

25 N min 1 2 w 2 + C ξ i i=1 gdy: i y i w d i + b 1 ξ i (4.23) C jest współczynnikiem, który należy interpretować jako kompromis pomiędzy wysokością kary dla punktów nie spełniających założeń, a szerokością marginesu. Im większa jest wartość C, tym mniej akceptowalne są punkty z wyższymi wartościami zmiennych relaksacyjnych, a tym samym zachodzi konieczność zmniejszania marginesu. Dla C =, separacja klas jest optymalna, ale margines może być węższy. Przekształcając (4.23) do postaci Lagrangianu: N N L w, b, ξ, α, β 1 2 w 2 + C ξ i α i y i w d i + b 1 + ξ i i=1 i=1 N β i ξ i i=1 (4.24) Wyrażenie (4.24), tak jak poprzednio, należy zminimalizować przy użyciu w, b, oraz ξ i oraz zmaksymalizować przez współczynniki α i. Z uwagi na dodatkowe ograniczenia związane z ξ, we wzorze (4.24) pojawia się wektor mnożników β, dla którego konieczne jest spełnienie warunku: i β i 0. Różniczkując, jak w (4.14) i (4.15), po w, b, oraz ξ, uzyskujemy równania: L w, b, ξ, α, β w N = 0 w = α i y i d i i=1 (4.25) L w, b, ξ, α, β b N = 0 α i y i = 0 (4.26) i=1 L w, b, ξ, α, β ξ i = 0 C = α i + β i (4.27) Podstawiając otrzymane wartości do (4.24) uzyskujemy wyrażenie podobne do (4.16). Jedyną różnicą jest zakres, jaki może przyjmować α i. Wiemy, że i β i 0 oraz (4.27), co implikuje: i α i < C. Zatem problemem do rozwiązania przez solver QP jest: max gdzie H jak w (4.16) oraz: N α i i=1 1 2 αt Hα (4.28) i 0 α i C, α i y i = 0 Parametr b jest obliczany zgodnie z formułą (4.20), z tą różnicą, że zbiór wektorów nośnych w tym przypadku ogranicza się do posiadających indeks, dla którego spełniony jest warunek: 0 α i C. N i=1 21

26 4.2.3 SVM z funkcją jądra Klasyfikator SVM może zostać użyty także do konstruowania nieliniowych powierzchni separujących. Dzięki zastosowaniu nieliniowego mapowania punktów danych do przestrzeni o większej liczbie wymiarów, uzyskujemy przestrzeń liniowo separowalną, w której możliwe jest użycie algorytmu SVM. Mapowanie to nazywamy transformacją Φ. Otrzymana liniowo separująca hiperpłaszczyzna odpowiada nieliniowej powierzchni separującej w oryginalnej przestrzeni (patrz Rysunek 5). Rysunek 5 Transformacja punktów za pomocą funkcji jądra Φ W nowej przestrzeni, powiększonej o dodatkowy wymiar, rozwiązujemy następujące równanie (przy założeniu i α i 0): N L α α i i=1 1 2 i,j α i α j y i y j Φ d i Φ d j (4.29) Jest to jedyne miejsce, gdzie występuje transformacja Φ. W praktyce nie musimy znać jej jawnej postaci. Wystarczy, że znamy funkcję jądra K d i, d j, zdefiniowaną następująco: Zabieg taki nazywa się kernel trick. K d i, d j = Φ d i Φ d j (4.30) Jedyną różnicą w algorytmie klasyfikacji SVM, przy zastosowaniu funkcji jądra, jest inna postać macierzy H: H = y 1 y 1 K d 1, d 1 y 1 y n K d 1, d n y n y 1 K d n, d 1 y n y n K d n, d n (4.31) Istnieje wiele znanych funkcji jądra. Oto niektóre z nich: liniowa (dla liniowo separowalnych przestrzeni) K d i, d j = d i d j (4.32) wielomianowa rzędu d 22

27 wynik klasyfikacji K d i, d j = d i d j + a d (4.33) radialna funkcja bazowa (RBF Radial Basis Function) d i d 2 j 2σ 2 (4.34) K d i, d j = e funkcja sigmoidalna K d i, d j = tanh ad i d j b (4.35) Klasyfikacja dla wielu kategorii SVM umożliwia klasyfikację z uwzględnieniem wielu klas, jednak osiąga to przy użyciu wielu klasyfikatorów binarnych. Najczęstszymi metodami wykonania takiej redukcji są strategie: jeden przeciw wszystkim powstają klasyfikatory binarne rozróżniające każdą z klas od reszty, klasyfikowany dokument jest przypisywany do tej klasy, która osiągnie najwyższy wynik funkcji wyjściowej, jeden na jednego dla każdej pary klas powstaje klasyfikator binarny, klasyfikowany dokument jest przypisywany do tej klasy, która zwycięży w największej liczbie pojedynków jeden na jednego. 4.3 Ocena jakości klasyfikacji binarnej W celu zbadania skuteczności utworzonego klasyfikatora, należy przeprowadzić testy z wykorzystaniem zbiorów: uczącego (zwanego także treningowym) i testowego. Zarówno zbiór uczący jak i testowy powinien posiadać prawidłowo zdefiniowane przyporządkowania danych do klas. Podczas testów nauczony wcześniej na zbiorze trenującym klasyfikator dokonuje przypisania danych ze zbioru testowego do wybranej klasy. Na podstawie otrzymanych wyników i informacji o prawidłowej przynależności, wyliczane są miary, określające jakość zarówno algorytmu jak i wyuczonego modelu. Przyjmijmy, że dokonywana jest klasyfikacja binarna dla dwóch klas: pozytywnej i negatywnej. Wyniki można opisać wtedy przy pomocy następujących oznaczeń: przynależność do klasy pozytywna negatywna pozytywna TP FP negatywna FN TN Tabela 2 Oznaczenia wyników klasyfikacji TP (true positive) liczba prawidłowych klasyfikacji danych z klasy pozytywnej, TN (true negative) liczba prawidłowych klasyfikacji danych z klasy negatywnej, FP (false positive) liczba nieprawidłowych klasyfikacji danych jako pozytywne, 23

28 FN (false negative) liczba nieprawidłowych klasyfikacji danych jako negatywne. Dla bezbłędnej klasyfikacji wartości FP oraz FN powinny wynosić 0, a TP oraz TN być maksymalne. Najczęściej stosowanymi miarami określającymi jakość w przypadku klasyfikacji binarnej są: Dokładność (Accuracy), Precyzja (Precision), Czułość (Sensitivity/Recall) oraz F-miara (F-measure). Dokładność określa, jaki ułamek przypadków testowych został zaklasyfikowany prawidłowo. Wyraża się ją wzorem: A = TP + TN TP + TN + FP + FN (4.36) Dokładność jest miarą użyteczną, kiedy klasy mają zbliżoną wielkość. Rozważmy jednak przypadek, gdy liczba elementów w zbiorze pozytywnym jest 99 razy mniejsza niż w zbiorze negatywnym. Klasyfikator zawsze dający odpowiedź negatywną, będzie miał Dokładność równą 99%, mimo że nie zaklasyfikował poprawnie żadnego z elementów zbioru pozytywnego. Precyzja to stosunek prawidłowo sklasyfikowanych elementów zbioru pozytywnego do wszystkich elementów uznanych za przypadki pozytywne: P = TP TP + FP (4.37) Analogiczną miarę można obliczyć dla drugiej klasy (negatywnej). Wysoka Precyzja świadczy o restrykcyjnej klasyfikacji jeśli klasyfikator uznaje przypadek za pozytywny, to najczęściej jest to prawidłowa decyzja. Sama Precyzja niewiele mówi o skuteczności klasyfikatora. 100% Precyzję można uzyskać klasyfikując najbardziej pewny przypadek jako pozytywny, a resztę jako negatywne. Czułość klasyfikacji można określić jako jej kompletność, czyli stopień w jakim przypadki należące do danej klasy (np. pozytywnej) zostały sklasyfikowane poprawnie. Oblicza się ją przy pomocy wzoru: S = TP TP + FN (4.38) Uzyskanie wysokiej kompletności dla jednej klasy, np. pozytywnej, jest zadaniem trywialnym wystarczy klasyfikować wszystkie przypadki jako pozytywne. Jaki widać, obie miary: Precyzja i Czułość, stosowane oddzielnie nie zawsze dają wiarygodne wyniki. Problem ten można rozwiązać stosując miarę, która będzie kompromisem pomiędzy ich wartościami. Najczęściej stosowana jest F-miara, będąca średnią ważoną precyzji i czułości. Wyraża się wzorem: F = 1 + β 2 P S β 2 P + S (4.39) Dla β = 1, równanie (4.39) przyjmuje postać średniej harmonicznej i w takiej formie zwykle jest stosowane. 24

29 Na postawie przestawionych metryk, stosując je zgodnie z przeznaczeniem, można w miarę trafnie ocenić skuteczność klasyfikatora, a co za tym idzie również jego przydatność w procesie klasyfikacji. 25

30 5 Zbiory uczące Definicja 5. Zbiorem uczącym nazywamy zestaw wzorcowych przykładów poprawnie przypisanych do odpowiadających im klas. Na podstawie zbioru uczącego klasyfikator tworzy model, przy pomocy którego dokonuje późniejszej klasyfikacji nowych przykładów. Uczenie maszynowe i jego przydatność w danym zastosowaniu zależy w dużej mierze od doboru właściwego zbioru uczącego, dobrze opisującego modelowaną klasę. Ważne jest zawarcie w nim elementów charakterystycznych, posiadających atrybuty typowe dla kategorii. Tworzenie dobrego zbioru uczącego jest procesem złożonym i wieloetapowym. Proces ten jest przedmiotem niniejszego rozdziału. Klasyfikatory utworzone przeze mnie w ramach pracy dyplomowej, używane są w Module Klasyfikacji zasobów systemu PSIR, będącego częścią projektu SYNAT. Typy zasobów, dla których utworzone zostały zbiory uczące określone zostały przez wymagania projektowe. Są to następujące kategorie: uniwersytety, wydziały uniwersytetów, publikacje naukowe, konferencje naukowe, biblioteki cyfrowe, instytuty naukowe uniwersytetów. Zadaniem modułu jest klasyfikacja stron internetowych należących do powyższych kategorii. Dla każdego z tych typów utworzone zostały dwa zbiory: pozytywny i negatywny. Przez zbiór pozytywny dla przykładowego typu Uniwersytet, rozumiemy zestaw oficjalnych stron internetowych uniwersytetów. Do zbioru negatywnego może należeć dowolna strona internetowa, nie będąca stroną uniwersytetu. W rzeczywistości klasyfikator będzie otrzymywał strony tematycznie powiązane ze sobą, co wynika z zastosowania wyszukiwarki internetowej w projekcie. Wyszukiwarki zwykle zwracają w wynikach wyszukiwania strony najbardziej odpowiadające zapytaniu, czyli o zbliżonej tematyce. Dlatego dużo lepszą praktyką jest zawarcie w zbiorze negatywnym stron podobnych tematycznie do tych ze zbioru pozytywnego. Dla typu Uniwersytet do zbioru negatywnego zaliczyć można np. stronę internetową uczelnianej drużyny sportowej, profil uczelni w serwisie społecznościowym lub artykuł o uniwersytecie w internetowej encyklopedii. Takie podejście zwiększa skuteczność klasyfikacji przypadków znajdujących się na granicy zbiorów, czyli takich, które posiadają atrybuty zarówno zbioru pozytywnego jak i negatywnego. Z uwagi na fakt, że najbardziej rozpowszechnionym w Internecie językiem jest język angielski, strony internetowe należące do zbiorów uczących są anglojęzyczne. Dzięki temu zbiory są bardziej liczne, a klasyfikacja dokładniejsza. Sposób tworzenia zbioru pozytywnego i negatywnego dla każdego typu jest przedmiotem dalszej części rozdziału. Uniwersytety Zbiór przypadków pozytywnych dla typu Uniwersytet obejmuje oficjalne strony amerykańskich uniwersytetów. Lista adresów URL została pobrana z [15]. Jest to indeks obejmujący ponad 1800 adresów stron internetowych uczelni, z których duża część jest już nieaktywna, ale ponad 800 aktualnie działających adresów utworzyło zbiór treningowy. 26

31 Zbiór negatywny został wyselekcjonowany w taki sposób, aby zawierał strony odnoszące się do uniwersytetów, ale nie będące ich oficjalnymi serwisami. Nie było możliwości zdobycia gotowego zbioru (jak w przypadku pozytywnego). Przyjęta metodyka tworzenia zbioru negatywnego dla wszystkich typów zasobów była podobna. Przy pomocy wyszukiwarki Google dla każdego uniwersytetu ze zbioru pozytywnego zostały znalezione strony odnoszące się do niego. Przykładowo, dla Uniwersytetu Harvarda, zapytanie do wyszukiwarki może wyglądać następująco: "Harvard University" W wynikach wyszukiwania znajdzie się, z pewnością, także oficjalna strona Harvardu, dlatego konieczne jest jej wykluczenie. Możliwe, że w wynikach pojawią się także adresy innych uczelni, które można odfiltrować już na etapie wyszukiwania, poprzez modyfikację zapytania: "Harvard University" site:edu Tak otrzymane wyniki zostały dodane do zbioru przykładów negatywnych. Zwykle dla jednego zapytania interfejs wyszukiwania zwracał ok. 5 wyników. Konieczne było przyjęcie założenia, że każda strona uczelni w Stanach Zjednoczonych posiada adres w domenie edu, co w zdecydowanej większości przypadków jest prawdą. Rozsądnym rozwiązaniem, w celu zapewnienia różnorodności zbioru, było także odfiltrowanie stron, które mogą pojawić się w wynikach wielu zapytań. Obecność tych stron w zbiorze spowodowałaby, że tylko te strony zaliczane byłyby jako negatywne. Przykładem takiej strony może być Wikipedia czy Facebook (wiele uczelni posiada swój Fanpage lub wpis w Wikipedii). Filtr ten można założyć analogicznie jak w przypadku stron w domenie edu. Pozyskane w ten sposób zbiory zostały wykorzystane w procesie uczenia klasyfikatora. Wcześniej warto jednak sprawdzić czy wszystkie strony działają oraz czy możliwe jest pobranie ich treści. W trakcie takiego sprawdzania może okazać się, że w zbiorze znalazły się serwisy, które do ładowania treści wykorzystują skrypty JavaScript, co w znacznym stopniu utrudnia ich automatyczne pobieranie. Część adresów może posiadać przekierowania, dlatego należy znaleźć ich adres końcowy. Wszystkie te czynności można wykonać automatycznie przy pomocy odpowiednich skryptów (Perl, Python, PHP). Następnie można przejść do wyczyszczenia listy adresów z duplikatów i, z tak przygotowanym zbiorem uczącym, przystąpić do trenowania klasyfikatora. Wydziały uniwersytetów Zbiór pozytywny dla wydziałów uniwersytetów został utworzony na podstawie zbioru pozytywnego typu Uniwersytet. Większość stron wydziałów spełnia poniższe warunki: w tytule strony głównej posiada zwrot Department of, adres jest w domenie uniwersytetu. Dzięki takim założeniom, w celu odnalezienia adresów stron internetowych wydziałów Uniwersytetu Harwarda, można było zdefiniować zapytanie do wyszukiwarki w następującej postaci: "department of" site:harvard.edu Następnie odfiltrowany został adres strony głównej uniwersytetu i jej podstrony oraz usunięte duplikaty, adresy nieaktywne i przekierowania. 27

32 Zbiór negatywny powstał w sposób analogiczny do zbioru negatywnego typu Uniwersytet, czyli poprzez zadanie odpowiedniego zapytania do wyszukiwarki, np.: "Department of Physics" "Harvard University" site:edu Otrzymane wyniki zapytań dla każdego z uniwersytetów, pozwoliły na utworzenie zbiorów o liczności pozwalającej na wykorzystanie ich w roli zbiorów treningowych. Publikacje naukowe Przez stronę internetową publikacji naukowej rozumiana jest strona zawierająca jej abstrakt. Abstrakty publikowane są zwykle na stronach wydawców, więc zbiór pozytywny składa się ze stron przykładowych publikacji na stronach kilku popularnych wydawnictw naukowych. Są to następujący wydawcy: 1. Springer [16], 2. ACS Publications [17], 3. Science Publications [18], 4. USGS Publications Warehouse [19], 5. UCLA Department of Atmospheric and Oceanic Sciences [20], 6. Deep Foundations Institute [21], 7. Atlantic Oceanographic and Meteorological Laboratory [22]. Zdecydowanie trudniejszym zadaniem było zbudowanie zbioru negatywnego. W tym przypadku należało zastanowić się, jakie strony będą trafiały do klasyfikacji. Typowa sytuacja to wyszukiwanie przez użytkownika informacji o publikacji, na przykład na podstawie podanego tytułu. Zadaniem klasyfikatora będzie odróżnienie stron, które odnoszą się do publikacji (np. w bibliografii artykułu) od strony wydawcy, zawierającej o niej więcej informacji. Cel taki został osiągnięty poprzez użycie wyszukiwarki internetowej do znalezienia dla każdej publikacji stron, które odnosiły się do nich, ale nie były ich stronami. Przykładowe zapytanie dla publikacji pt. Biodiesel Fuel Production from Algae as Renewable Energy, wydanej w Science Publications [18], jest następujące: "Biodiesel Fuel Production from Algae as Renewable Energy" -site:thescipub.com Konferencje naukowe Adresy stron konferencji naukowych zostały zaczerpnięte z bazy WikiCFP [23]. Jest to baza tzw. Call For Papers, czyli powiadomień o zbliżających się konferencjach naukowych. Można znaleźć tam informacje o temacie, dacie, miejscu oraz, to co najważniejsze w kontekście tworzenia zbioru treningowego, adres oficjalnej strony wydarzenia. Zbiór negatywny został utworzony w sposób bardzo zbliżony do innych typów. Przykładowe zapytanie do wyszukiwarki internetowej to: "Soft Computing and Pattern Recognition" -site: W zapytaniu odfiltrowany został adres ostatniej konferencji z serii Soft Computing and Pattern Recognition ( W wynikach wyszukiwania pojawiają się jednak strony poprzednich edycji konferencji (z roku 2012, 2011, itd.). Mają one zwykle wspólną domenę, więc problem ten można rozwiązać poprzez jej wyłączenie, w tym wypadku: site: 28

33 Nie jest to rozwiązanie w 100% skuteczne, dlatego w wynikach zapytań często pojawiały się strony konferencji. Konieczne było ich ręczne usuwanie, w którym pomocny okazał się klasyfikator. Strony wstępnie zaliczone do zbioru negatywnego, które podczas sprawdzianu krzyżowego zostały oznaczone przez klasyfikator jako pozytywne, były sprawdzane ręcznie. Takie rozwiązanie pozwoliło w miarę szybko zwiększyć poprawność zbiorów treningowych. Biblioteki cyfrowe Zbiór pozytywny został zaczerpnięty z katalogu bibliotek cyfrowych, dostępnego pod adresem [24]. Zawiera on 750 adresów anglojęzycznych bibliotek cyfrowych podzielonych na pięć kategorii: sztuka i nauki humanistyczne, biznes, zdrowie i medycyna, nauka i technologia, nauki społeczne. Zbiór jest zatem zróżnicowany pod względem tematycznym, co ma istotny wpływ na skuteczność klasyfikacji. Utworzenie zbioru negatywnego wymagało przeanalizowania tego, jakie strony będą trafiać do klasyfikacji przy docelowym wykorzystaniu klasyfikatora. W większości przypadków będą to wyniki zapytań o biblioteki cyfrowe z konkretnej dziedziny. Przykładowe zapytanie użytkownika może wyglądać następująco: medical digital library Wśród wyników, oprócz bibliotek cyfrowych, pojawiają się adresy stron tradycyjnych bibliotek. Jeśli w tytule występują oba słowa: digital oraz library, zwykle jest to biblioteka cyfrowa, w przeciwnym wypadku stronę najczęściej można włączyć do zbioru negatywnego. Z tej obserwacji wynika metoda tworzenia tego zbioru, która polega na wyszukiwaniu stron przy pomocy dwóch zapytań: digital -library library digital Pierwsze zapytanie zwraca adresy stron związanych z technologiami cyfrowymi, drugie serwisy internetowe tradycyjnych bibliotek. Instytuty naukowe uniwersytetów Ostatni zbiór treningowy obejmuje jednostki badawcze działające przy polskich uczelniach wyższych, które w niniejszej pracy nazywane są instytutami. Strony internetowe większości z nich są w domenie uczelni, w ramach której działają. Umożliwia to znalezienie ich adresów przy pomocy wyszukiwarki internetowej, szukając instytutów dla każdej z uczelni oddzielnie. W tym celu została pobrana lista polskich uczelni wyższych z Wikipedii [25]. Strony należące do tego zbioru są polskojęzyczne. Przykładowe zapytanie zadawane w celu odnalezienia adresów stron instytutów: instytut site:pw.edu.pl W wynikach tego zapytania otrzymujemy adresy wszystkich instytutów działających w ramach Politechniki Warszawskiej. 29

34 Do zbioru negatywnego zaliczone zostały pozostałe instytuty badawcze działające w Polsce (takie jak np. Instytut Meteorologii i Gospodarki Wodnej), czyli organizacje zawierające w nazwie słowo instytut, ale nie będące jednostkami działającymi przy uczelni wyższej. Ich adresy zostały znalezione przy pomocy następującego zapytania: instytut -site:edu.pl Typ zasobu Zbiór pozytywny Zbiór negatywny uniwersytet wydział uniwersytetu publikacja naukowa konferencja naukowa biblioteka cyfrowa instytut naukowy Tabela 3 Wielkości zbiorów treningowych Tabela 1. przedstawia liczność zbiorów treningowych zebranych dla poszczególnych typów zasobów. 30

35 6 Implementacja Część praktyczna niniejszej pracy, oprócz stworzenia zbiorów treningowych opisanych w rozdziale 5, obejmowała implementację algorytmów klasyfikacji, o których mowa w rozdziale 4. Zaimplementowane algorytmy klasyfikacji wraz ze zdefiniowaną konfiguracją klasyfikatora (parametrami charakterystycznymi dla danego algorytmu klasyfikacji) oraz zbiorem treningowym, zwane dalej klasyfikatorami, są częścią Modułu Klasyfikacji systemu PSIR, stworzonego w ramach projektu SYNAT. Wynikiem uczenia klasyfikatora jest model klasyfikacyjny, używany później do klasyfikacji. Rysunek 1. przedstawia architekturę systemu PSIR. W dalszej części rozdziału opisany zostanie Moduł Klasyfikacji oraz implementacja badanych algorytmów. Rysunek 6 Schemat architektury modułu zasobów internetowych systemu PSIR 6.1 Moduł Klasyfikacji Moduł Klasyfikacji jest używany w systemie PSIR do klasyfikowania stron internetowych dostarczanych przez agenty zadań, przy użyciu wcześniej utworzonych klasyfikatorów. O tym, który algorytm klasyfikacji i z jakimi parametrami zostanie użyty do klasyfikacji danego typu zasobu decyduje oddzielny moduł eksperymentów [26]. Moduł Klasyfikacji składa się z trzech części: dostawcy domyślnej konfiguracji dostarcza informację o algorytmie i konfiguracji klasyfikatora, który został wybrany domyślnie do klasyfikacji zasobów podanego typu, informacje te są zapisane w pliku konfiguracyjnym modułu, dostawcy danych treningowych dostarcza dane uczące z systemu dla podanego typu zasobów, zarządcy klasyfikatorów główna część modułu, ma za zadanie dostarczenie gotowego modelu klasyfikacyjnego dla określonego typu zasobu. Zarządca klasyfikatorów używa dostawcy danych treningowych do dostarczenia danych uczących dla klasyfikatora. Algorytm oraz jego konfiguracja, jeśli nie są podane w żądaniu wykonania klasyfikacji, pochodzą z dostawcy domyślnej konfiguracji. Agenty zadań korzystają z klasyfikacji zasobów poprzez zewnętrzny interfejs modułu. Oddziela on Moduł Klasyfikacji od reszty systemu, dzięki czemu wewnętrzna implemen- 31

36 tacja jest całkowicie niezależna od implementacji pozostałych modułów. Klasyfikacji zasobów można dokonać w czterech trybach: pojedynczy zasób z domyślną konfiguracją dla danego typu, lista zasobów z domyślną konfiguracją dla danego typu, pojedynczy zasób z podaną konfiguracją dla danego typu, lista zasobów z podaną konfiguracją dla danego typu. Konfiguracja klasyfikatora obejmuje zarówno wybór algorytmu klasyfikacji, jak i zestaw parametrów specyficzny dla implementacji każdego z nich. Parametry te mogą określać np. metody przetwarzania danych wejściowych, wartości funkcji kar lub sposób wyliczania wartości atrybutów. 6.2 Implementacja Modułu Klasyfikacji Moduł Klasyfikacji został zaimplementowany w języku Java, przy użyciu typów generycznych. Dzięki temu możliwe jest używanie tych samych klas podstawowych do implementacji wielu klasyfikatorów dla różnych typów danych. Dużą zaletą takiego rozwiązania jest sprawdzanie poprawności stosowania klas już w czasie kompilacji. Znika też konieczność rzutowania obiektów w czasie klasyfikacji w nowo implementowanym klasyfikatorze. Utworzenie nowej implementacji klasyfikatora, kompatybilnej z Modułem Klasyfikacji, wymaga spełnienia kilku warunków. Każdy klasyfikator jest oddzielnym projektem Java. Zależności pomiędzy projektami, których schemat przedstawia Rysunek 7, są zarządzane przez Apache Maven [27]. Rysunek 7 Schemat zależności pomiędzy projektami klasyfikatorów Wymagana jest implementacja trzech interfejsów, których deklaracje zawarte są w projekcie classificator-base: ClassificatorInterface implementuje go główna klasa algorytmu, ClassificatorFactoryInterface implementuje go klasa fabryki, ClassificatorParametersInterface implementowany przez klasę zawierającą parametry klasyfikatora, każdy parametr musi być typem prostym lub wyliczeniowym. Interfejs klasyfikatora przedstawia się następująco: 32

37 public interface ClassificatorInterface<D, T> { public Boolean teach(map<? extends D,? extends T> learningset); public ClassificationResult<T> classify(d site); public List<? extends ClassificationResult<T>> classify(list<? extends D> site); } public void storetofile(string path) throws ClassificatorException; Generyczne typy D oraz T to odpowiednio: typ reprezentujący klasyfikowany zasób (np. strona internetowa) oraz typ rezultatu klasyfikacji. Klasyfikator posiada cztery publiczne metody: teach służącą do uczenia klasyfikatora z użyciem podanych przykładów treningowych, classify metody klasyfikacji, dostępne w dwóch wariantach: o dla jednego zasobu, o dla listy zasobów, storetofile metoda służąca do zapisywania modelu klasyfikacyjnego do pliku, w celu jego późniejszego wykorzystania bez przeprowadzania procesu uczenia. Ponadto, klasyfikator musi zwracać jako wynik metody classify obiekt klasy ClassificationResult (lub listę obiektów w przypadku klasyfikacji wielu zasobów). 6.3 Model danych i narzędzia pomocnicze Projekt classification-utils zawiera klasy modelu danych oraz klasy pomocnicze, używane w przetwarzaniu dokumentów. W systemie PSIR klasyfikowanymi zasobami są strony internetowe. Pojedyncza strona jest reprezentowana przez obiekt klasy Website, która zawiera wszystkie istotne, z punktu widzenia klasyfikacji, informacje o niej, takie jak: adres URL, treść, język oraz mapę wyrazów. Język wykrywany jest przy użyciu biblioteki Langdetect [28] na podstawie treści strony. Tworzenie mapy wyrazów jest głównym zadaniem klasy Website. Jest ona wykorzystywana podczas klasyfikacji jako źródło informacji o liczbie wystąpień wyrazu na stronie. Proces przetwarzania treści strony (opisany szczegółowo w rozdziale 3.1) oraz tworzenia mapy wyrazów obejmuje następujące etapy: usunięcie tagów HTML za pomocą biblioteki jsoup [29], pozostają jedynie wyrazy znajdujące się pomiędzy nimi, w treści strony, przy pomocy metod klasy Parser, dokonywana jest tokenizacja treści strony, na podstawie wykrytego języka oraz listy najczęściej występujących wyrazów w tym języku, wykluczane są wyrazy częste, czyli mało charakterystyczne dla strony; w obecnej implementacji listy zdefiniowane są dla języka polskiego, angielskiego i niemieckiego, każdy wyraz przy pomocy bibliotek Stempel [30] (dla języka polskiego) i Lucene [31] (dla pozostałych, obsługiwanych języków) poddawany jest stemmingowi, wyrazy są dodawane do mapy, każdemu z nich odpowiada obiekt klasy TermData, zawierający m. in. informację o liczbie wystąpień wyrazu w dokumencie, 33

38 z mapy wyrazów usuwane są wyrazy nie spełniające warunków zapisanych w filtrach, opisanych poniżej. W implementacji klasyfikatorów wprowadzony został mechanizm filtrowania słów. Każdy filtr implementuje interfejs Predicate: public interface Predicate { boolean test(string word, TermData termdata); } Metoda test zwraca wartość true, jeśli wyraz spełnia warunek pozostawienia w zbiorze. Można definiować nowe filtry, co umożliwia ponowne wykorzystanie klasy Website przy implementacji innych algorytmów klasyfikacji. Klasa Predicates zawiera predefiniowane filtry, wykorzystywane obecnie w klasyfikatorach: notsingleword wyraz musi pojawić się w dokumencie więcej niż jeden raz, notshortword wyraz musi mieć więcej niż 3 litery, notnumber wyraz nie może być liczbą, notsingledocument wyraz musi występować w więcej niż 3 dokumentach (używany dla zbiorów stron, opisanych poniżej). Do reprezentowania zbiorów stron używana jest klasa WebsiteCollection. Przetwarza ona listę obiektów klasy Website na mapę wyrazów, która wygląda analogicznie jak w przypadku pojedynczej strony. Dla zbioru stron, w obiekcie klasy TermData, dla każdego wyrazu przechowywana jest informacja o liczbie wystąpień w całym zbiorze. Oprócz mapy wyrazów i filtrów, w klasie WebsiteCollection znajdują się informacje o liczbie dokumentów i wyrazów w całym zbiorze. Taka reprezentacja danych pozwala na wygodnie wydobywanie informacji o zbiorach i dokumentach podczas uczenia oraz klasyfikacji. Używanie opisanych wyżej klas nie jest konieczne przy implementowaniu nowego klasyfikatora, ale ze względu na łatwą rozbudowę i możliwość dodawania elementów, może w znaczący sposób to ułatwić. 6.4 Implementacja klasyfikatora Bayesa Implementacja klasyfikatora Bayesa znajduje się w projekcie classificatorbayes. Składają się na nią trzy klasy: BayesClassificator implementuje ClassificatorInterface, jej obiekt reprezentuje instancję klasyfikatora, BayesClassificatorFactory klasa fabryki implementująca interfejs ClassificatorFactoryInterface, BayesClassificatorParameters zawiera parametry klasyfikatora, implementuje interfejs ClassificatorParametersInterface. Tworzenie nowej instancji odbywa w oparciu o wzorzec fabryki, poprzez metodę getinstance lub getfromfile klasy BayesClassificatorFactory. Metoda getinstance przyjmuje jako parametr obiekt klasy BayesClassificatorParameters, który zawiera zdefiniowane wartości parametrów algorytmu. W obecnej implementacji klasyfikator posiada jedynie jeden parametr format reprezentacji dokumentu (patrz rozdział 3.2). Obiekt parametrów klasyfikatora można utworzyć przy pomocy 34

39 metody parseconfigurationstring, która za argument przyjmuje obiekt klasy String w formacie zgodnym z Apache CLI [32], zawierający nazwy i wartości odpowiednich parametrów. Przy pomocy metody getfromfile, podając ścieżkę do pliku można wczytać gotowy, wcześniej zapisany klasyfikator, który nie wymaga już uczenia. Uczenie klasyfikatora Bayesa następuje poprzez wywołanie metody teach, która tworzy dwa obiekty klasy WebsiteCollection jeden dla zbioru pozytywnego i jeden dla negatywnego (patrz rozdział 5). Mapy słów utworzone w tych zbiorach zawierają wystarczające informacje potrzebne do przeprowadzenia klasyfikacji algorytmem Bayesa. Do obliczania prawdopodobieństwa przynależności dokumentu do zbiorów została użyta klasa BigDecimal, która pozwala na operacje na bardzo małych liczbach oraz ich przechowywanie. Klasyfikacja przebiega w różny sposób dla każdego formatu reprezentacji danych. Dla reprezentacji binarnej (patrz rozdział 4.1.1) prawdopodobieństwa liczone są następująco: S klasyfikowana strona P zbiór przykładów pozytywnych N zbiór przykładów negatywnych Prawdopodobieństwa przynależności: BPP S do P (format binarny) BPN S do N (format binarny) FPP S do P (format częstotliwościowy) FPN S do N (format częstotliwościowy) Dla każdego wyrazu t z S: BPP *= (liczba dokumentów z P zawierających t + 1)/(rozmiar P + 2) BPN *= (liczba dokumentów z N zawierających t + 1)/(rozmiar N + 2) Przez rozmiar zbioru rozumiemy liczbę dokumentów w nim zawartych. W przypadku reprezentacji częstotliwościowej (TF), algorytm przyjmuje następującą postać: Dla każdego wyrazu t z S: FPP *= (liczba wystąpień t w P + 1)/(liczba wyrazów w P + 2) FPN *= (liczba wystąpień t w N + 1)/(liczba wyrazów w N + 2) Wynik klasyfikacji jest pozytywny, jeśli BPP > BPN (lub analogicznie FPP > FPN). Do implementacji klasyfikatora Bayesa został wprowadzony jeszcze jeden tryb podejmowania decyzji o wyniku klasyfikacji, wykorzystujący opisane powyżej prawdopodobieństwa. Metoda ta wykorzystuje fakt uzyskiwania, w większości przypadków, wyższej precyzji (patrz rozdział 4.3) przy stosowaniu reprezentacji binarnej, natomiast w przypadku reprezentacji częstotliwościowej wyższa jest czułość klasyfikatora Bayesa. Decyzja o wyniku klasyfikacji podejmowana jest na podstawie czterech prawdopodobieństw: BPP prawdopodobieństwo przynależności do zbioru pozytywnego obliczone dla reprezentacji binarnej, BPN prawdopodobieństwo przynależności do zbioru negatywnego obliczone dla reprezentacji binarnej, 35

40 FPP prawdopodobieństwo przynależności do zbioru pozytywnego obliczone dla reprezentacji częstotliwościowej, FPN prawdopodobieństwo przynależności do zbioru negatywnego obliczone dla reprezentacji częstotliwościowej. Klasyfikator Bayesa ma tendencję do uzyskiwania wysokiej precyzji ze względu na niską liczbę błędnych klasyfikacji przypadków jako pozytywne (klasyfikator jest bardziej restrykcyjny). Z kolei klasyfikator w wersji TF uzyskuje wysoką czułość, co spowodowane jest małą liczbą błędnych klasyfikacji przypadków z klasy pozytywnej. Dlatego decyzja klasyfikacyjna podejmowana jest w następujący sposób: BPP > BPN true FPP < FPN false (6.1) W pierwszej kolejności brany jest pod uwagę wynik klasyfikacji binarnej i stosowana jest pierwsza z reguł (6.1), co jest to podyktowane małą liczbą błędnych decyzji dla klasy pozytywnej w tej wersji klasyfikatora. Jeśli reguła pierwsza nie jest spełniona stosowana jest reguła druga. Wyższe prawdopodobieństwo przynależności do zbioru negatywnego skutkuje podjęciem decyzji negatywnej, co jest wynikiem niskiej liczby błędnych przyporządkowań do klasy negatywnej. Pozostaje rozpatrzenie sytuacji, gdy żaden z powyższych warunków nie jest spełniony. W takim przypadku wybierana jest decyzja pewniejsza, czyli ta, w której stosunek odpowiednich prawdopodobieństw jest większy: BPP BPN > FPN FPP true BPP BPN < FPN FPP false (6.2) Warunki z (6.2) można zapisać jako jedno wyrażenie, którego wynik jest decyzją klasyfikacyjną w przypadku nie spełnienia żadnego z warunków (6.1): BPN BPP < FPP FPN 6.5 Implementacja klasyfikatora SVM Projekt classificator-svm zawiera implementację klasyfikatora SVM. Opis algorytmu znajduje się w rozdziale 4.2. Jego struktura jest analogiczna do projektu classificator-bayes. Parametry definiowane w klasie SvmClassificatorParameters są następujące: doctype wybór reprezentacji dokumentu (binarna lub TF), svmtype do wyboru są dwa powszechnie używane typy klasyfikatora SVM: C-SVC oraz NU-SVC. Różnica między nimi polega w parametrze określającym wartość kary dla punktów niepoprawnie odseparowanych. Dla typu C-SVC jest to parametr C (gdzie C 0), natomiast dla NU-SVC współczynnik kary nu przyjmuje wartość z przedziału 0, 1. Gwarantuje przy tym wskaźnik błędu nie większy od nu oraz odsetek wektorów nośnych nie mniejszy od nu wszystkich punktów (np. dla nu = 0,5 wskaźnik błędu nie będzie większy niż 50%, ale wektory nośne będą stanowić co najmniej 50% przykładów), 36

41 kerneltype funkcja jądra (liniowa, wielomianowa, RBF, sigmoidalna patrz rozdział 4.2.3), degree stopień wielomianu (parametr stosowany tylko w przypadku wielomianowej funkcji jądra), coef0 dodatkowy parametr dla funkcji jądra, występuje w równaniu (4.33) jako a, natomiast w równaniu (4.35) jako b, C wartość kary dla typu C-SVC (patrz rozdział 4.2.2), nu wartość kary dla typu NU-SVC. Uczenie klasyfikatora SVM rozpoczyna się od stworzenia słownika wyrazów występujących w obu zbiorach: pozytywnym i negatywnym. Słownik poddawany jest filtrowaniu (wybór atrybutów). Następnie dla każdego z przykładów tworzony jest wektor x, zawierający wartości atrybutów, które odpowiadają wyrazom ze słownika oraz przypisywana jest wartość przyporządkowania do klasy oznaczona y. W reprezentacji binarnej x reprezentowany jest przez wektor zer i jedynek, dla częstotliwościowej jest to wektor częstości słowa ze słownika na stronie. Do przypadków pozytywnych przypisywana jest wartość y = 1, natomiast do negatywnych y = 1. Ze względów wydajnościowych, do uczenia klasyfikatora został wykorzystany algorytm SMO (Sequential minimal optimization) [33]. Implementacja SMO została wydzielona do oddzielnego pakietu, którego interfejs stanowi klasa SVM. Najważniejszymi metodami interfejsu zewnętrznego klasy SVM są: svmtrain przyjmuje jako argumenty wektory wartości atrybutów i przyporządkowań do klas przykładów uczących (zbiór treningowy) oraz parametry klasyfikatora, zwraca wytrenowany model, svmpredictprobability używana w metodzie classify, przyjmuje wektor wartości atrybutów klasyfikowanej strony oraz utworzony podczas uczenia model, zwraca wartość odpowiadającą przyporządkowanej klasie (1 dla pozytywnej i 1 dla negatywnej). Najwyższą wydajność algorytm SMO uzyskuje dzięki optymalnemu doborowi kolejnych par mnożników Lagrange a (patrz rozdział 4.2). Zastosowana została heurystyczna procedura wyboru dwóch par wektorów danych i odpowiadających im mnożników Lagrange a, która gwarantuje poprawę wartości funkcji celu w każdym kroku optymalizacji. Algorytm Platta [33] zakłada przeprowadzenie optymalizacji α 1 i α 2 na podstawie aktualnie wyliczonych wartości mnożników, które spełniają warunki ograniczeń. Do odnalezienia właściwych na danym etapie uczenia mnożników, zastosowane zostały dwie pętle przeszukujące dane: zewnętrzna i wewnętrzna. Zewnętrzna ma za zadanie wyselekcjonowanie pierwszego mnożnika α 1 a pętla wewnętrzna drugiegoα 2 tak, że funkcja celu się maksymalizuje. Pętla zewnętrzna przebiega przez wszystkie pary danych uczących wybierając te, dla których 0 < α i < C. Następnie sprawdzane są warunki (4.26) dla wybranych przypadków i wybierany pierwszy, dla którego warunki są naruszone. Mnożnik Lagrange a odpowiadający tak wybranemu przypadkowi staje się równy α 1. Po określeniu mnożników α 1 pętla wewnętrzna przeszukuje wszystkie przypadki, dla których 0 < α i < C poszukując takiego, dla którego przyrost wartości funkcji celu jest największy. Na tak wyselekcjonowanych dwóch przypadkach następuje optymalizacja obu mnożników α 1 i α 2. W obiekcie klasy ClassificationResult, reprezentującym wynik klasyfikacji, oprócz decyzji o przyporządkowaniu strony do klasy, znajdują się informacje o obliczo- 37

42 nych prawdopodobieństwach przynależności do klasy pozytywnej i negatywnej. Umożliwia to rozróżnienie w docelowym systemie klasyfikacji bardziej pewnych od tych, które mają większe prawdopodobieństwo pomyłki. Możliwe jest również wysłanie szczegółowych informacji o modelu, takich jak: ilość wektorów nośnych, ich indeksy w zbiorze treningowym oraz ustawione podczas uczenia wartości parametrów. 38

43 7 Wyniki wykonanych testów Testowanie zaimplementowanych algorytmów klasyfikacji ma na celu dobranie odpowiednich parametrów dla danego zadania klasyfikacji, którym w naszym przypadku będzie klasyfikacja zasobów określonego typu (rozdział 5) tak, aby uzyskać jak największą skuteczność klasyfikatora. Miary ocen skuteczności klasyfikacji zostały omówione w rozdziale 4.3. Na podstawie wykonanych testów można określić przydatność zarówno samego algorytmu, jak i zbioru danych treningowych. Przeprowadzone symulacje pozwoliły na wprowadzenie zmian w parametrach klasyfikatorów, tym samym poprawiając wyniki osiągane podczas klasyfikacji. Przekształcenia zbiorów uczących, testy mające na celu znalezienie odpowiednich parametrów klasyfikacji, wyliczenia miar ocen oraz wszelkie wykresy przedstawione w niniejszym rozdziale zostały wykonane przy użyciu bibliotek zawartych w pakietach języka R [34]. Dużą zaletą języka R jest łatwość tworzenia wykresów prezentujących uzyskane wyniki, bez konieczności ich przetwarzania oraz w jakości pozwalającej na publikację. Wyniki testów szczegółowo zostaną przeanalizowane dla dwóch typów: Instytut i Uniwersytet. Dla pozostałych zostaną przedstawione jedynie liczbowe wyniki miar skuteczności. 7.1 Graficzna prezentacja wyników W celu lepszego zobrazowania wyników klasyfikacji, zostaną one przedstawione na dwuwymiarowym wykresie, razem z hiperpłaszczyznami separującymi dane z różnych klas. Hiperpłaszczyzny takie nazywane są granicami decyzyjnymi. Wymiary wektorów reprezentujących dane uczące i testowe odpowiadają liczbom ich atrybutów. Każdy przykład w zadaniu klasyfikacji zasobów internetowych ma zwykle po kilkaset atrybutów, a co za tym idzie tyle samo współrzędnych w odpowiadającym mu wektorze. Przy prezentacji przykładów trenujących i testowych na wykresie powstaje problem reprezentacji punktu n-wymiarowego (gdzie n 2) w przestrzeni dwuwymiarowej. Konieczne jest wykonanie redukcji wymiarów. Metody redukcji wymiarów umożliwiają reprezentację wektorów w przestrzeni o zadanym wymiarze, niższym niż w przypadku pierwotnych danych. Redukcja wymiarów została dokonana poprzez analizę składowych głównych [35] (PCA, ang. Principal Components Analysis). Analiza składowych głównych służy do wyznaczenia nowych współrzędnych, których jak najmniejszy podzbiór będzie zawierał możliwie dużo informacji o zmienności w całym zbiorze danych. Nowo utworzony zbiór współrzędnych będzie tworzył bazę ortogonalną w przestrzeni cech. Współrzędne są wybierane w taki sposób, aby pierwsza odwzorowywała jak najwięcej zmienności w danych (wariancja wśród przykładów musi być jak największa wzdłuż tego wymiaru). Każda kolejna współrzędna wyznaczana jest w taki sposób, aby była ortogonalna do poprzednich i ukazywała jak najwięcej pozostałej zmienności. Celem opisanej metody składowych głównych jest znalezienie takiej transformacji układu współrzędnych, która umożliwi ograniczenie wymiarowości wektorów do dwóch wymiarów najlepiej opisujących dane i przedstawienie ich na wykresie. W pakietach języka R dostępnych jest kilka implementacji PCA. Najpopularniejsze z nich to prcomp oraz princomp z pakietu stats. Różnią się one metodami wyko- 39

44 rzystywanymi do znalezienia zredukowanego wektora, przy czym jego właściwości dla obu funkcji są takie same (maksymalna wariancja z zachowaniem wzajemnej ortogonalności). Do przetworzenia zbiorów danych zastosowałem zalecaną w dokumentacji pakietu stats [36] funkcję prcomp, natomiast ich prezentację na wykresie umożliwiła funkcja plot. Jej wynikiem jest wykres przedstawiający liczbę atrybutów reprezentowanych przez każdą ze składowych głównych. Rysunek 8 przedstawia taki wykres dla zbioru uczącego typu Uniwersytet (patrz rozdział 5) dla reprezentacji binarnej i częstotliwościowej. Rysunek 8 Liczba atrybutów reprezentowanych przez kolejne składowe główne W obu przypadkach pierwsze dwie składowe główne razem reprezentują podobną liczbę współrzędnych wektorów z oryginalnej reprezentacji. Działanie redukcji wymiarów przy pomocy składowych głównych dobrze obrazuje wykres wykonany techniką biplot. Pozwala ona na przedstawienie macierzy danych i opisujących je zmiennych na tym samym wykresie, w sposób, który opisuje ich wzajemne zależności. Na wykresach typu biplot obserwacje zaznaczone są jako punkty, natomiast współrzędne wektorów początkowych, od których zależą wartości współrzędnych w nowej reprezentacji, jako wektory o wspólnym początku. Przykład 7.1 Rysunek 9 przedstawia wykres wykonany techniką biplot przy pomocy funkcji biplot zawartej w pakiecie stats. W celu poprawienia czytelności wykresu, ilość obserwacji i wektorów została ograniczona. 40

45 Rysunek 9 Reprezentacja obserwacji 1-5 opisanych atrybutami A1-A5, za pomocą PC1 i PC2 Z wykresu można odczytać w prosty sposób zależności pomiędzy składowymi głównymi a atrybutami prezentowanych danych: wartość PC1 jest najbardziej uzależniona od atrybutów A1, A2 oraz A5, wartość PC2 zależy głównie od atrybutu A4, atrybut A3 ma podobny wpływ zarówno na PC1 jak i PC Maszyna wektorów nośnych Klasyfikator SVM w wersji z jądrem liniowym i funkcją kary, opisany w rozdziale 4.2.2, wymaga określenia wielkości kary dla punktów znajdujących się po niewłaściwej stronie hiperpłaszczyzny separującej. Parametr ten można dobrać poprzez wykonanie sprawdzianu krzyżowego i porównanie otrzymanych błędów dla różnych wartości C. Testy przeprowadzono dla wersji C-SVC klasyfikatora SVM. Ze względu na podobne wyniki i wnioski testy dla klasyfikatora nu-svc nie zostały zamieszczone w pracy. Rysunek 10 przedstawia rozkład danych ze zbioru uczącego dla typu Instytut. 41

46 Rysunek 10 Zbiór danych uczących dla typu Instytut Wartość parametru C została wybrana poprzez wykonanie pięciokrotnych testów krzyżowych (z proporcjami: 70% zbiór uczący, 30% testowy) dla wartości z przedziału 2 15, 2 10 z postępem logarytmicznym (2 15, 2 14, ). Rysunek 11 Wartość wskaźnika błędu dla różnych wartość C Rysunek 11 przedstawia wartość błędu uzyskaną przy różnych wartościach funkcji kary. Zgodnie z nim, najlepszą dokładność klasyfikator uzyskuje dla C 10 3, Od przyjętej wartości parametru C zależy przebieg hiperpłaszczyzny separującej oraz wartość marginesu błędu. 42

47 Rysunek 12 Hiperpłaszczyzny separujące dla różnych wartości C Rysunek 12 przedstawia przebiegi płaszczyzn separujących dane z różnych klas, w zależności od wartości parametru C. Bardzo mała wartość C (rysunek po lewej) powoduje, że margines jest szeroki, mimo że wewnątrz marginesu i po niewłaściwej stronie hiperpłaszczyzny znajduje się wiele punktów. Z kolei dla bardzo dużego C (po prawej), margines staje się minimalny, a hiperpłaszczyzna uzyskuje takie nachylenie, aby być jak najbliżej daleko leżących punktów ze zbioru pozytywnego, kosztem niewłaściwego podziału punktów leżących blisko hiperpłaczyzny. Obie, skrajne wartości parametru C, powodują uzyskanie niskiej dokładności podczas klasyfikacji. Przyjmując C = 1, dokładność obliczona metodą 100-krotnej kroswalidacji dla zbioru danych typu Instytut wynosi odpowiednio: 96,9% dla reprezentacji częstotliwościowej, 97,2% dla reprezentacji binarnej. Liniowy klasyfikator SVM uzyskał lepsze wyniki dla klasy Instytut niż dla klasy Uniwersytet. Można wnioskować na tej podstawie, że dane dla klasy Instytut są w większym stopniu liniowo separowalne niż dane dla klasy Uniwersytet. Rysunek 13 Zbiór danych uczących dla typu Uniwersytet Rysunek 13 przedstawia zbiór danych, który nie jest liniowo separowalny. W tym przypadku klasyfikator o liniowym jądrze uzyskuje gorsze wyniki. Dla takiego zbioru należy zastosować inną funkcję jądra. Najczęściej wykorzystywanym nieliniowym ją- 43

48 drem jest RBF (patrz równanie (4.35)), nazywane także jądrem gaussowskim. Funkcja jądra RBF dla danego x to sferyczna funkcja Gaussa z wartością oczekiwaną x i odchyleniem standardowym σ, gdzie σ jest parametrem klasyfikatora. Rysunek 14 przedstawia granice decyzyjne klasyfikatora SVM z funkcją jądra RBF dla danych ze zbioru uczącego typu Uniwersytet. Rysunek 14 Granice decyzyjne klasyfikatora SVM z funkcją jądra RBF Na rysunku wektory nośne (SV) są oznaczone zamalowanymi figurami, odpowiednimi dla obu zbiorów. Znajdują się one na krzywych wyznaczających granice pomiędzy obszarami o innych wartościach funkcji decyzyjnej. Wektory nośne wyznaczają przebieg tych krzywych. Tym razem granica decyzyjna nie jest prostą przebiegającą pomiędzy punktami obydwu zbiorów, a krzywą zamkniętą, wewnątrz której znajduje się większość przykładów pozytywnych. Takie rozwiązanie gwarantuje wyższą dokładność i mniejszą liczbę błędnych przyporządkowań niż w przypadku jądra liniowego. Funkcja jądra RBF wymaga dodatkowego parametru σ. Należy zatem określić wartości dla dwóch parametrów: C kary dla punktów leżących po nieprawidłowej stronie granicy decyzyjnej, σ parametru sterującego szerokością wykresu funkcji Gaussa. Parametry zostały dobrane w podobny sposób jak C w przypadku liniowej funkcji jądra. Została przeprowadzona pięciokrotna walidacja krzyżowa (z proporcjami: 70% zbiór uczący, 30% testowy) uwzględniająca zmiany obydwu parametrów, a następnie porównano wyniki testów. Zakresy testowanych z postępem logarytmicznym wartości parametrów były następujące: C 2 3, 2 14 σ 2 19,

49 Rysunek 15 przedstawia wartości współczynnika błędu dla badanych zakresów parametrów C i σ. Rysunek 15 Wskaźnik błędu dla różnych wartości parametrów C i Przeprowadzone testy wykazały, że najlepsze wyniki klasyfikator uzyskuje dla C > 10 2 przy σ 10 6, Przyjmując C = 10 3 oraz σ = 10 5, dokładność obliczona metodą 100-krotnej kroswalidacji dla zbioru danych typu Uniwersytet wynosi odpowiednio: 96,1% dla reprezentacji częstotliwościowej, 96,6% dla reprezentacji binarnej. Funkcja klasyfikująca powinna przyjmować wartości zbliżone do 1 dla przykładów pozytywnych i 1 dla negatywnych. Warto przeanalizować to, jakie wartości przyjmuje w praktyce. Rysunek 16 przedstawia rozkład wartości funkcji klasyfikującej z powyższymi parametrami w zbiorze testowym typu Uniwersytet, dla binarnego formatu danych wejściowych. Rysunek 16 Gęstość prawdopodobieństwa wartości funkcji klasyfikującej dla C = 10 3 i σ =

50 Z wykresu wynika, że prawie wszystkie przykłady pozytywne uzyskują wartości z przedziału 0,5 ; 1,2, z czego najwięcej przyjmuje wartość ok. 0,9. Decyzja o przyporządkowaniu do klasy podejmowana jest na podstawie tej wartości. Granicą decyzyjną, czyli wartością funkcji klasyfikującej, która rozdziela obie klasy, standardowo jest 0. Tak ustalona granica decyzyjna, w tym przypadku, spowoduje prawidłowe przyporządkowanie wszystkich przykładów pozytywnych. Jednak przykłady negatywne nieco komplikują sytuację. Większość z nich, co prawda, przyjmuje wartość zbliżoną do 1, ale inne często występujące wartości są większe od 0. W tym wypadku wartość granicy decyzyjnej wynosząca 0 spowoduje złe przyporządkowanie wielu przykładów negatywnych. Konieczne jest zatem takie jej dobranie, aby jak najbardziej ograniczyć liczbę błędnych klasyfikacji. Rysunek 17 przedstawia zależność pomiędzy wartością granicy decyzyjnej a dokładnością klasyfikacji dla powyższego przypadku. Rysunek 17 Dokładność klasyfikacji w zależności od wartości granicy decyzyjnej Zgodnie z powyższym wykresem dokładność klasyfikacji jest najwyższa dla granicy decyzyjnej wynoszącej 0,5. Dla tej wartości wykresy gęstości prawdopodobieństwa dla przypadków pozytywnych i negatywnych przecinają się (patrz Rysunek 16). Powyżej niej więcej jest przypadków pozytywnych, a poniżej negatywnych. Stąd też jest najbardziej odpowiednią wartością dla granicy decyzyjnej. Warto zaznaczyć, że zmiana ta zdecydowanie zmniejsza ilość przypadków negatywnych zaklasyfikowanych jako pozytywne (FP), kosztem zwiększenia pozytywnych przypisanych jako negatywne (FN). Zgodnie ze wzorami (4.38) i (4.39), zwiększeniu ulega precyzja kosztem czułości (kompletności). W kontekście zadania klasyfikacji zasobów w systemie PSIR [26], dużo ważniejsze jest zaklasyfikowanie wszystkich przykładów pozytywnych poprawnie, nawet jeśli spowoduje to dużo błędnych klasyfikacji przykładów negatywnych. Zadaniem klasyfikatora jest odfiltrowanie jak największej liczby nieistotnych zasobów, reszta jest sprawdzana ręcznie. 7.3 Naiwny Klasyfikator Bayesa Naiwny Klasyfikator Bayesa (NKB) nie posiada tak wielu parametrów sterujących procesem uczenia i klasyfikacji oraz nie jest tak skomplikowany jak Maszyna Wektorów Nośnych. Nie oznacza to jednak, że jest dużo mniej skuteczny. Klasyfikacja w NKB dokonywana jest przy użyciu wyliczonych, na podstawie przykładów uczących, prawdopodobieństw należenia atrybutów do zbioru pozytywnego i negatywnego. Model NKB skła- 46

51 da się z odpowiednio wyznaczonych dla każdego atrybutu współczynników na podstawie danych uczących, oddzielnie dla zbioru negatywnego i pozytywnego. Rysunek 18 przedstawia gęstości prawdopodobieństw występowania wartości dwóch składowych głównych zbiorów uczących dla typu Instytut. Rysunek 18 Rozkład wartości składowych głównych dla typu Instytut Są to, w zasadzie, wystarczające informacje do przeprowadzenia klasyfikacji. W powyższym przykładzie, dla umożliwienia prezentacji graficznej, zbiór atrybutów został ograniczony do dwóch składowych głównych. W rzeczywistości model zawiera prawdopodobieństwa dla wszystkich atrybutów, których np. w przypadku zbioru uczącego typu Instytut jest ponad 600. Otrzymane granice decyzyjne stosowane przez nauczony klasyfikator Bayesa przedstawia Rysunek 19. Rysunek 19 Granice decyzyjne klasyfikatora Bayesa dla typu Instytut Obszary decyzyjne wyznaczone przez klasyfikator (Rysunek 19), wynikają wprost z wykresów gęstości prawdopodobieństw (Rysunek 18). Wyniki uzyskane przez klasyfikator Bayesa metodą pięciokrotnej kroswalidacji (70% przykładów stanowił zbiór uczący, 30% zbiór testowy) dla danych typu Instytut są gorsze o ok. 1 punkt procentowy od wyników klasyfikatora liniowego SVM i prezentują się następująco: 95,5% dla reprezentacji częstotliwościowej, 96% dla reprezentacji binarnej. 47

52 Analizowany zbiór jest w miarę prosty w klasyfikacji. Klasy pozytywna i negatywna są praktycznie liniowo separowalne, więc granice decyzyjne nie są skomplikowanymi krzywymi. Zdecydowanie trudniejszym w klasyfikacji zbiorem jest zbiór dla typu Uniwersytet. Rysunek 20 przedstawia gęstości prawdopodobieństw występowania wartości dwóch składowych głównych w zbiorach pozytywnym i negatywnym typu Uniwersytet. Rysunek 20 Rozkład wartości składowych głównych dla typu Uniwersytet Już na podstawie analizy wykresów (Rysunek 20) można stwierdzić, że klasyfikacja danych z tego zbioru jest zadaniem bardziej skomplikowanym. Wysokie zagęszczenie przykładów zarówno pozytywnych jak i negatywnych na większej części zakresu pierwszej składowej głównej powoduje, że składowa ta słabo rozróżnia obie klasy. Dopiero druga składowa wyraźnie akcentuje jakie wartości przyjmują przykłady pozytywne. Rysunek 21 przedstawia granice decyzyjne, jakimi posługuje się klasyfikator. Rysunek 21 Granice decyzyjne klasyfikatora Bayesa dla typu Uniwersytet Obszar odpowiadający zbiorowi przykładów pozytywnych przypomina ten nakreślony przez klasyfikator SVM z jądrem RBF. Zbliżone, choć niewiele gorsze od SVM, są także wyniki uzyskane przez NKB dla tego zbioru: 93% dla reprezentacji częstotliwościowej, 95% dla reprezentacji binarnej. 48

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium JAVA Zadanie nr 2 Rozpoznawanie liter autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z problemem klasyfikacji

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Data Mining Wykład 6. Naiwny klasyfikator Bayes a Maszyna wektorów nośnych (SVM) Naiwny klasyfikator Bayesa.

Data Mining Wykład 6. Naiwny klasyfikator Bayes a Maszyna wektorów nośnych (SVM) Naiwny klasyfikator Bayesa. GLM (Generalized Linear Models) Data Mining Wykład 6 Naiwny klasyfikator Bayes a Maszyna wektorów nośnych (SVM) Naiwny klasyfikator Bayesa Naiwny klasyfikator Bayesa jest klasyfikatorem statystycznym -

Bardziej szczegółowo

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

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska. SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska INFORMACJE WSTĘPNE Hipotezy do uczenia się lub tworzenia

Bardziej szczegółowo

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

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

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18 Eksploracja Danych wykład 4 Sebastian Zając WMP.SNŚ UKSW 10 maja 2017 Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja 2017 1 / 18 Klasyfikacja danych Klasyfikacja Najczęściej stosowana (najstarsza)

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

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

Agnieszka Nowak Brzezińska Wykład III

Agnieszka Nowak Brzezińska Wykład III Agnieszka Nowak Brzezińska Wykład III Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność) Bardziej opisowe

Bardziej szczegółowo

Agnieszka Nowak Brzezińska Wykład III

Agnieszka Nowak Brzezińska Wykład III Agnieszka Nowak Brzezińska Wykład III Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność) Bardziej opisowe

Bardziej szczegółowo

Pattern Classification

Pattern Classification Pattern Classification All materials in these slides were taken from Pattern Classification (2nd ed) by R. O. Duda, P. E. Hart and D. G. Stork, John Wiley & Sons, 2000 with the permission of the authors

Bardziej szczegółowo

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

UCZENIE MASZYNOWE III - SVM. mgr inż. Adam Kupryjanow

UCZENIE MASZYNOWE III - SVM. mgr inż. Adam Kupryjanow UCZENIE MASZYNOWE III - SVM mgr inż. Adam Kupryjanow Plan wykładu Wprowadzenie LSVM dane separowalne liniowo SVM dane nieseparowalne liniowo Nieliniowy SVM Kernel trick Przykłady zastosowań Historia 1992

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

5. Analiza dyskryminacyjna: FLD, LDA, QDA

5. Analiza dyskryminacyjna: FLD, LDA, QDA Algorytmy rozpoznawania obrazów 5. Analiza dyskryminacyjna: FLD, LDA, QDA dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Liniowe funkcje dyskryminacyjne Liniowe funkcje dyskryminacyjne mają ogólną

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV Klasyfikatory: k-nn oraz naiwny Bayesa Agnieszka Nowak Brzezińska Wykład IV Naiwny klasyfikator Bayesa Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną

Bardziej szczegółowo

Metody Sztucznej Inteligencji II

Metody Sztucznej Inteligencji II 17 marca 2013 Neuron biologiczny Neuron Jest podstawowym budulcem układu nerwowego. Jest komórką, która jest w stanie odbierać i przekazywać sygnały elektryczne. Neuron działanie Jeżeli wartość sygnału

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Adrian Horzyk

Adrian Horzyk Metody Inteligencji Obliczeniowej Metoda K Najbliższych Sąsiadów (KNN) Adrian Horzyk horzyk@agh.edu.pl AGH Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

Algorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi.

Algorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi. Spis treści 1 Wstęp: generatywne algorytmy uczące 2 Gaussowska analiza dyskryminacyjna 2.1 Gaussowska analiza dyskryminacyjna a regresja logistyczna 3 Naiwny Klasyfikator Bayesa 3.1 Wygładzanie Laplace'a

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska DRZEWO REGRESYJNE Sposób konstrukcji i przycinania

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

166 Wstęp do statystyki matematycznej

166 Wstęp do statystyki matematycznej 166 Wstęp do statystyki matematycznej Etap trzeci realizacji procesu analizy danych statystycznych w zasadzie powinien rozwiązać nasz zasadniczy problem związany z identyfikacją cechy populacji generalnej

Bardziej szczegółowo

Algorytmy klasyfikacji

Algorytmy klasyfikacji Algorytmy klasyfikacji Konrad Miziński Instytut Informatyki Politechnika Warszawska 6 maja 2015 1 Wnioskowanie 2 Klasyfikacja Zastosowania 3 Drzewa decyzyjne Budowa Ocena jakości Przycinanie 4 Lasy losowe

Bardziej szczegółowo

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

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006 SAS wybrane elementy DATA MINING Część III Seweryn Kowalski 2006 Algorytmy eksploracji danych Algorytm eksploracji danych jest dobrze zdefiniowaną procedurą, która na wejściu otrzymuje dane, a na wyjściu

Bardziej szczegółowo

AUTOMATYKA INFORMATYKA

AUTOMATYKA INFORMATYKA AUTOMATYKA INFORMATYKA Technologie Informacyjne Sieć Semantyczna Przetwarzanie Języka Naturalnego Internet Edytor Serii: Zdzisław Kowalczuk Inteligentne wydobywanie informacji z internetowych serwisów

Bardziej szczegółowo

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a TEMATYKA: Krzywe Bézier a Ćwiczenia nr 7 DEFINICJE: Interpolacja: przybliżanie funkcji za pomocą innej funkcji, zwykle wielomianu, tak aby były sobie równe w zadanych punktach. Poniżej przykład interpolacji

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

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

7. Maszyny wektorów podpierajacych SVMs

7. Maszyny wektorów podpierajacych SVMs Algorytmy rozpoznawania obrazów 7. Maszyny wektorów podpierajacych SVMs dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Maszyny wektorów podpierajacych - SVMs Maszyny wektorów podpierających (ang.

Bardziej szczegółowo

Metody probabilistyczne klasyfikatory bayesowskie

Metody probabilistyczne klasyfikatory bayesowskie Konwersatorium Matematyczne Metody Ekonomii narzędzia matematyczne w eksploracji danych First Prev Next Last Go Back Full Screen Close Quit Metody probabilistyczne klasyfikatory bayesowskie Wykład 8 Marcin

Bardziej szczegółowo

Wnioskowanie bayesowskie

Wnioskowanie bayesowskie Wnioskowanie bayesowskie W podejściu klasycznym wnioskowanie statystyczne oparte jest wyłącznie na podstawie pobranej próby losowej. Możemy np. estymować punktowo lub przedziałowo nieznane parametry rozkładów,

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji Michał Witczak Data Mining 20 maja 2012 r. 1. Wstęp Dostarczone zostały nam 4 pliki, z których dwa stanowiły zbiory uczące

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

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2011-10-11 1 Modelowanie funkcji logicznych

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.0 Nr ćwiczenia: 12, 13 Temat: Cel ćwiczenia: Wymagane przygotowanie

Bardziej szczegółowo

1 Układy równań liniowych

1 Układy równań liniowych II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie

Bardziej szczegółowo

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Analiza głównych składowych- redukcja wymiaru, wykł. 12 Analiza głównych składowych- redukcja wymiaru, wykł. 12 Joanna Jędrzejowicz Instytut Informatyki Konieczność redukcji wymiaru w eksploracji danych bazy danych spotykane w zadaniach eksploracji danych mają

Bardziej szczegółowo

Metody selekcji cech

Metody selekcji cech Metody selekcji cech A po co to Często mamy do dyspozycji dane w postaci zbioru cech lecz nie wiemy które z tych cech będą dla nas istotne. W zbiorze cech mogą wystąpić cechy redundantne niosące identyczną

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY METODY INŻYNIERII WIEDZY WALIDACJA KRZYŻOWA dla ZAAWANSOWANEGO KLASYFIKATORA KNN ĆWICZENIA Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dopasowywanie modelu do danych

Dopasowywanie modelu do danych Tematyka wykładu dopasowanie modelu trendu do danych; wybrane rodzaje modeli trendu i ich właściwości; dopasowanie modeli do danych za pomocą narzędzi wykresów liniowych (wykresów rozrzutu) programu STATISTICA;

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa, Andrzej Rutkowski Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2018-10-15 Projekt

Bardziej szczegółowo

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

Zad. 3: Układ równań liniowych 1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

8. Drzewa decyzyjne, bagging, boosting i lasy losowe Algorytmy rozpoznawania obrazów 8. Drzewa decyzyjne, bagging, boosting i lasy losowe dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Drzewa decyzyjne Drzewa decyzyjne (ang. decision trees), zwane

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe PB, 2009 2010 Sztuczna Inteligencja Tematy projektów Sieci Neuronowe Projekt 1 Stwórz projekt implementujący jednokierunkową sztuczną neuronową złożoną z neuronów typu sigmoidalnego z algorytmem uczenia

Bardziej szczegółowo

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. doc. dr Beata Pułska-Turyna Zakład Badań Operacyjnych Zarządzanie B506 mail: turynab@wz.uw.edu.pl mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. Tel.: (22)55 34 144 Mail: student@pgadecki.pl

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe. Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe. zajecia.jakubw.pl/nai Literatura: S. Osowski, Sieci neuronowe w ujęciu algorytmicznym. WNT, Warszawa 997. PODSTAWOWE ZAGADNIENIA TECHNICZNE AI

Bardziej szczegółowo

Klasyfikacja metodą Bayesa

Klasyfikacja metodą Bayesa Klasyfikacja metodą Bayesa Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski warunkowe i bezwarunkowe 1. Klasyfikacja Bayesowska jest klasyfikacją statystyczną. Pozwala przewidzieć prawdopodobieństwo

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

Hierarchiczna analiza skupień

Hierarchiczna analiza skupień Hierarchiczna analiza skupień Cel analizy Analiza skupień ma na celu wykrycie w zbiorze obserwacji klastrów, czyli rozłącznych podzbiorów obserwacji, wewnątrz których obserwacje są sobie w jakimś określonym

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Klasyfikator liniowy Wstęp Klasyfikator liniowy jest najprostszym możliwym klasyfikatorem. Zakłada on liniową separację liniowy podział dwóch klas między sobą. Przedstawia to poniższy rysunek: 5 4 3 2

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

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

SVM: Maszyny Wektorów Podpieraja cych

SVM: Maszyny Wektorów Podpieraja cych SVM 1 / 24 SVM: Maszyny Wektorów Podpieraja cych Nguyen Hung Son Outline SVM 2 / 24 1 Wprowadzenie 2 Brak liniowej separowalności danych Nieznaczna nieseparowalność Zmiana przetrzeń atrybutów 3 Implementacja

Bardziej szczegółowo

Analiza składowych głównych

Analiza składowych głównych Analiza składowych głównych Wprowadzenie (1) W przypadku regresji naszym celem jest predykcja wartości zmiennej wyjściowej za pomocą zmiennych wejściowych, wykrycie związku między wielkościami wejściowymi

Bardziej szczegółowo

Układy równań liniowych

Układy równań liniowych Układy równań liniowych Niech K będzie ciałem. Niech n, m N. Równanie liniowe nad ciałem K z niewiadomymi (lub zmiennymi) x 1, x 2,..., x n K definiujemy jako formę zdaniową zmiennej (x 1,..., x n ) K

Bardziej szczegółowo

Schemat programowania dynamicznego (ang. dynamic programming)

Schemat programowania dynamicznego (ang. dynamic programming) Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Wykład 5. Metoda eliminacji Gaussa

Wykład 5. Metoda eliminacji Gaussa 1 Wykład 5 Metoda eliminacji Gaussa Rozwiązywanie układów równań liniowych Układ równań liniowych może mieć dokładnie jedno rozwiązanie, nieskończenie wiele rozwiązań lub nie mieć rozwiązania. Metody dokładne

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

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

mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych.

mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych. mgr inż. Magdalena Deckert Poznań, 30.11.2010r. Metody przyrostowego uczenia się ze strumieni danych. Plan prezentacji Wstęp Concept drift i typy zmian Algorytmy przyrostowego uczenia się ze strumieni

Bardziej szczegółowo

Metody klasyfikacji danych - część 1 p.1/24

Metody klasyfikacji danych - część 1 p.1/24 Metody klasyfikacji danych - część 1 Inteligentne Usługi Informacyjne Jerzy Dembski Metody klasyfikacji danych - część 1 p.1/24 Plan wykładu - Zadanie klasyfikacji danych - Przeglad problemów klasyfikacji

Bardziej szczegółowo

Analiza metod wykrywania przekazów steganograficznych. Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl

Analiza metod wykrywania przekazów steganograficznych. Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl Analiza metod wykrywania przekazów steganograficznych Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl Plan prezentacji Wprowadzenie Cel pracy Tezy pracy Koncepcja systemu Typy i wyniki testów Optymalizacja

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Semantyczne podobieństwo stron internetowych

Semantyczne podobieństwo stron internetowych Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Marcin Lamparski Nr albumu: 184198 Praca magisterska na kierunku Informatyka Semantyczne podobieństwo stron internetowych Praca wykonana

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA SYSTEMY ROZMYTE Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium

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

Zmienne zależne i niezależne

Zmienne zależne i niezależne Analiza kanoniczna Motywacja (1) 2 Często w badaniach spotykamy problemy badawcze, w których szukamy zakresu i kierunku zależności pomiędzy zbiorami zmiennych: { X i Jak oceniać takie 1, X 2,..., X p }

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

Agnieszka Nowak Brzezińska

Agnieszka Nowak Brzezińska Agnieszka Nowak Brzezińska jeden z algorytmów regresji nieparametrycznej używanych w statystyce do prognozowania wartości pewnej zmiennej losowej. Może również byd używany do klasyfikacji. - Założenia

Bardziej szczegółowo

Wstęp do przetwarzania języka naturalnego. Wykład 11 Maszyna Wektorów Nośnych

Wstęp do przetwarzania języka naturalnego. Wykład 11 Maszyna Wektorów Nośnych Wstęp do przetwarzania języka naturalnego Wykład 11 Wojciech Czarnecki 8 stycznia 2014 Section 1 Przypomnienie Wektoryzacja tfidf Przypomnienie document x y z Antony and Cleopatra 5.25 1.21 1.51 Julius

Bardziej szczegółowo

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0 Słowem wstępu Część rodziny języków XSL Standard: W3C XSLT 1.0-1999 razem XPath 1.0 XSLT 2.0-2007 Trwają prace nad XSLT 3.0 Problem Zakładane przez XML usunięcie danych dotyczących prezentacji pociąga

Bardziej szczegółowo

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

Bardziej szczegółowo

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1 Weryfikacja hipotez statystycznych KG (CC) Statystyka 26 V 2009 1 / 1 Sformułowanie problemu Weryfikacja hipotez statystycznych jest drugą (po estymacji) metodą uogólniania wyników uzyskanych w próbie

Bardziej szczegółowo

SPOTKANIE 2: Wprowadzenie cz. I

SPOTKANIE 2: Wprowadzenie cz. I Wrocław University of Technology SPOTKANIE 2: Wprowadzenie cz. I Piotr Klukowski Studenckie Koło Naukowe Estymator piotr.klukowski@pwr.edu.pl 17.10.2016 UCZENIE MASZYNOWE 2/27 UCZENIE MASZYNOWE = Konstruowanie

Bardziej szczegółowo

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory; Wykłady 8 i 9 Pojęcia przestrzeni wektorowej i macierzy Układy równań liniowych Elementy algebry macierzy dodawanie, odejmowanie, mnożenie macierzy; macierz odwrotna dr Mariusz Grządziel 15,29 kwietnia

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

Co to jest grupowanie

Co to jest grupowanie Grupowanie danych Co to jest grupowanie 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Szukanie grup, obszarów stanowiących lokalne gromady punktów Co to jest grupowanie

Bardziej szczegółowo

Uczenie sieci radialnych (RBF)

Uczenie sieci radialnych (RBF) Uczenie sieci radialnych (RBF) Budowa sieci radialnej Lokalne odwzorowanie przestrzeni wokół neuronu MLP RBF Budowa sieci radialnych Zawsze jedna warstwa ukryta Budowa neuronu Neuron radialny powinien

Bardziej szczegółowo

1 Klasyfikator bayesowski

1 Klasyfikator bayesowski Klasyfikator bayesowski Załóżmy, że dane są prawdopodobieństwa przynależności do klasp( ),P( 2 ),...,P( L ) przykładów z pewnego zadania klasyfikacji, jak również gęstości rozkładów prawdopodobieństw wystąpienia

Bardziej szczegółowo

Klasyfikacja LDA + walidacja

Klasyfikacja LDA + walidacja Klasyfikacja LDA + walidacja Dr hab. Izabela Rejer Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Plan wykładu 1. Klasyfikator 2. LDA 3. Klasyfikacja wieloklasowa 4. Walidacja

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Metody klasyfikacji i rozpoznawania wzorców. Najważniejsze rodzaje klasyfikatorów

Metody klasyfikacji i rozpoznawania wzorców.  Najważniejsze rodzaje klasyfikatorów Metody klasyfikacji i rozpoznawania wzorców www.michalbereta.pl Najważniejsze rodzaje klasyfikatorów Dla określonego problemu klasyfikacyjnego (tzn. dla danego zestawu danych) należy przetestować jak najwięcej

Bardziej szczegółowo

Asocjacyjna reprezentacja danych i wnioskowanie

Asocjacyjna reprezentacja danych i wnioskowanie Asocjacyjna reprezentacja danych i wnioskowanie Wykorzystane technologie JetBrains PyCharm 504 Python 35 Struktura drzewa GRAPH PARAM PARAM ID1 ID2 ID_N params params params param_name_1: param_value_1

Bardziej szczegółowo

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie Wprowadzenie Konstrukcja binarnych drzew klasyfikacyjnych polega na sekwencyjnym dzieleniu podzbiorów przestrzeni próby X na dwa rozłączne i dopełniające się podzbiory, rozpoczynając od całego zbioru X.

Bardziej szczegółowo

Rozpoznawanie obrazów

Rozpoznawanie obrazów Rozpoznawanie obrazów Laboratorium Python Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest implementacja liniowego zadania

Bardziej szczegółowo

Systemy uczące się wykład 1

Systemy uczące się wykład 1 Systemy uczące się wykład 1 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 5 X 2018 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej

Bardziej szczegółowo

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład 5 Sztuczne sieci neuronowe (SSN) 8 grudnia 2011 Plan wykładu 1 Biologiczne wzorce sztucznej sieci neuronowej 2 3 4 Neuron biologiczny Neuron Jest podstawowym budulcem układu nerwowego. Jest komórką,

Bardziej szczegółowo

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcja homograficzna. Definicja. Funkcja homograficzna jest to funkcja określona wzorem f() = a + b c + d, () gdzie współczynniki

Bardziej szczegółowo