PRACA DYPLOMOWA INŻYNIERSKA
|
|
- Joanna Laskowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2014/2015 PRACA DYPLOMOWA INŻYNIERSKA Jakub Piotr Strzałek Podsystem zarządzania i testowania klasyfikatorów do weryfikacji dokumentów tekstowych Opiekun pracy dr inż. Piotr Andruszkiewicz Ocena: Podpis Przewodniczącego Komisji Egzaminu Dyplomowego
2 Kierunek: Specjalność: Informatyka Inżynieria Systemów Informatycznych Data urodzenia: Data rozpoczęcia studiów: Życiorys Nazywam się Jakub Piotr Strzałek, urodziłem się 23 października 1991 roku w Radzyniu Podlaskim. W 2010 roku ukończyłem I Liceum Ogólnokształcące w Radzyniu Podlaskim. W lutym roku 2011 rozpocząłem studia na wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Informatyka, wybierając w toku studiów specjalizacją Inżynieria Systemów Informatycznych. W roku 2014 rozpocząłem, a w kolejnym roku ukończyłem, praktyki w firmie Pentacomp Systemy Informatyczne S.A.... 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 Praca podejmuje problem utworzenia spójnego interfejsu aplikacji internetowej umożliwiającego zarządzanie procesem w kontekście różnych podsystemów klasyfikacji. Prezentuje podstawowe informacje dotyczące metod klasyfikacji, w szczególności w kontekście naiwnego klasyfikatora Bayesa oraz maszyny wektorów nośnych. Ponadto zaprezentowane zostały wyniki wykonanych badań dla zbiorów uczących zasobów internetowych. Słowa kluczowe: klasyfikacja, uczenie maszynowe, Naiwny Klasyfikator Bayesa, Maszyna Wektorów Nośnych, reprezentacja dokumentów tekstowych, miary klasyfikacji CLASSIFIERS MANAGING AND TESTING SUBSYSTEM FOR TEXT DATA VERIFICATION The following work discusses the difficulty of creating a coherent interface of an internet application, which will allow the management of the processes in the context of various subsystems classification. Furthermore it presents basic information regarding methods of classification, focusing especially on the naive Bayes classifier and the support vector machine. Moreover this work presents research results on the web search data. Keywords: classification, machine learning, Naive Bayes Classifier, Support Vector Machine, classification measures
4 Spis treści 1 Wstęp Eksploracja danych Techniki eksploracji Klasyfikacja Typy klasyfikacji Etapy klasyfikacji Dane i podział na zbiory Reprezentacja danych Reprezentacja pełna Reprezentacje unigramowe Inne reprezentacje Testowanie Wynik klasyfikacji Miary Klasyfikatory Naiwny klasyfikator Bayesa Opis modelu Maszyna wektorów nośnych Liniowo separowalny SVM z funkcją błędu SVM z funkcją jądra Implementacja Technologia Opis zależności pomiędzy technologiami Architektura Warstwa prezentacji Warstwa logiki Baza danych i plików Funkcje programu Przeprowadzanie testów Prezentacja wyników przeprowadzonego testu / 65
5 5.3.3 Zapis wyniku testu do bazy danych Generowanie i zapis raportu z testów Wczytywanie programu klasyfikacji Modyfikacja oraz eksport zbioru przypadków testowych Wczytywanie i zapisywanie zbiorów testowych Interfejs programów klasyfikacji Szczegóły implementacji po stronie serwera Opis interfejsu Ograniczenia i uwagi Testy Zbiór testowy Opis przeprowadzania testów Wyniki Maszyna wektorów nośnych analiza reprezentacji Klasyfikator Bayes analiza reprezentacji Porównanie klasyfikatorów Miary Wnioski Podsumowanie...59 Załącznik A / 65
6 Nota terminologiczna Element zbioru testowego który jest poddawany procesowi klasyfikacji nazwany został zamiennie obserwacją lub dokumentem. Termin przypisanie został użyty zamiennie z określeniem klasyfikacja. Naiwny Klasyfikator Bayesa oraz maszyna wektorów nośnych wielokrotnie skrótowo zostały nazywane klasyfikatorem Bayes oraz SVM. 6 / 65
7 1 Wstęp Klasyfikacja oraz ocena klasyfikacji jest bardzo często stosowana w projektach mających na celu stworzenie modelu przy pomocy gotowych zbiorów testowych. Wykorzystywana jest w projektach wymagających przetwarzanie dużej ilości danych, która z uwagi na ograniczenia możliwości człowieka, analizowana jest przez komputery. Polega na znalezieniu zależności oraz dokonania wyboru odpowiedniej klasy, do której należy analizowany przypadek. Tematem pracy jest utworzenie strony internetowej pełniącej funkcję interfejsu do testowania procesu klasyfikacji. Program przewiduje możliwe podłączenie gotowego projektu implementującego klasyfikator oraz modyfikację zbiorów testowych wykorzystywanych przy uczeniu oraz testowaniu klasyfikatorów. W rozdziale 2 wyjaśniony jest proces eksploracji danych oraz stosowanych technik. Wyróżnione zostały różne techniki podzielone ze względu na cel eksploracji danych. Rozdział 3 skupia się na procesie klasyfikacji oraz jego sposobach realizacji. Opisane zostały poszczególne etapy oraz ogólny sposób realizacji tego procesu. Omówiono również reprezentację danych, jej interpretację w kontekście procesu klasyfikacji, oraz wstęp teoretyczny do samego procesu testowania. W rozdziale 4 opisano metody klasyfikacji. Większość z nich zostało omówionych w sposób ogólnikowy, poza naiwną klasyfikacją Bayesa oraz maszyną wektorów nośnych, w oparciu o które zostały przeprowadzone testy oraz weryfikacje poprawnego działania aplikacji. W rozdziale 5 przedstawiono szczegółowe informacje dotyczące samego projektu w tym szczegóły implementacji oraz wykorzystanych technologii. Dodatkowo omówiono interfejs użytkownika oraz opisano wymagania, API i sposób konfiguracji dotyczący programu klasyfikacji. W rozdziale 6 zawarto informację o wykonanych testach, głównie w kontekście samego programu klasyfikacji. Przedstawiono zbiór testowy, sposób jego uzyskania oraz wyniki i analizę otrzymanych rezultatów testowania. Załącznik A opisuje instrukcję krok po kroku w celach instalacji systemu oraz jego uruchomienia. 7 / 65
8 2 Eksploracja danych Eksploracja danych jest procesem automatycznego odkrywania nietrywialnych, dotychczas nieznanych, potencjalnie użytecznych reguł, zależności. Głównym zadaniem eksploracji jest zarządzanie dużymi zbiorami danych oraz wydobywanie z nich przydatnych informacji oraz wiedzy [1]. Termin duże zbiory danych zazwyczaj odnosi się do informacji, które ze względu na swoją specyfikę (różnorodność oraz duży rozmiar) trudno jest analizować oraz przetwarzać. Mimo wszystko ich analiza jest bardzo wartościowa i prowadzi do uzyskania nowej wiedzy. Odkrywane w procesie eksploracji danych wzorce mają formę głównie wykresów oraz reguł logicznych. Eksplorację można ująć jako analizę danych, problemów trudnych do przeprowadzenia przez człowieka, ze względu na swój rozmiar. Dodatkowo celem jest zrozumienie samych pozyskanych informacji oraz mechanizmów z nimi związanych. Pojęcie eksploracji danych oraz odkrywania wiedzy rozpowszechniło się razem z rozwojem technologii bazodanowych w latach 80' 90', kiedy to zaczęły powstawać hurtownie danych. Jedną z branży, które były zainteresowane rozwojem oraz jego wspieraniem była analiza biznesowa (ang. Business Intelligence). Istnieje wiele techniki stosujących eksplorację danych. Poniżej przedstawione główne z nich. Specjalnie została pominięta technika klasyfikacji, która szczegółowo zostanie omówiona w rozdziale Techniki eksploracji Zgodnie z ogólną definicją, techniki eksploracji danych są to metody, których głównym celem jest odnalezienie ogólnych własności obiektów. Znalezione opisy obiektów mogą mieć postać jednej z dwóch reguł: reguła dyskryminacji, reguła charakteryzacji. Pierwsza z nich polega na porównaniu i znalezieniu różnic analizowanej danej z elementami porównywanymi [1]. Druga reguła, w przeciwieństwie do pierwszej, polega na podsumowaniu głównych cech elementów należących do jednej klasy. Wynik może zostać przedstawiony w różnych formach np. tabeli, wykresu kołowego lub słupkowego. 8 / 65
9 Odkrywanie asocjacji Zbiór metod obejmujących odkrywanie interesujących zależności, korelacji pomiędzy danymi. Zidentyfikowane w ten sposób korelacje noszą nazwę asocjacji [2]. Polega na sprawdzeniu, które atrybuty są ze sobą powiązane. Metody te często występują pod nazwą analizy koszyka sklepowego (ang. market basket analysis). Zebrana wiedza zapisywana jest w formie reguł: Jeżeli poprzednik to następnik, podawana razem z miarami opisującymi prawdopodobieństwa zajścia zależności (wsparcie oraz ufność). Grupowanie Polega na gromadzeniu (ang. clustering) rekordów (danych) w zbiory zawierające podobne obiekty [3]. Każdy z takich zbiorów nazywany jest grupą. Dane zebrane w jedną grupę posiadają względem siebie podobne cechy, nie są jednak dopasowywane i przypisywane do żadnej z klas. Algorytmy grupowania próbują zmaksymalizować stopień podobieństwa danych. Często są realizowane jako wstępny etap procesu eksploracji danych. Predykcja Głównym zadaniem predykcji jest określenie na podstawie istniejących i zgromadzonych do tej pory danych przewidywanego wyniku. Przykładem może być określenie liczby ofiar śmiertelnych w wyniku wypadków drogowych dla hipotetycznego wprowadzenia zmiany maksymalnej dozwolonej prędkości. 9 / 65
10 3 Klasyfikacja Załóżmy, że został zdefiniowany zbiór obserwacji, w którym każda z nich posiada określone cechy. Odwzorowanie obserwacji w zbiór predefiniowanych klas nazywamy klasyfikacją [4]. Proces ten można zapisać jako funkcję: F :O P (K) (3.1) Rysunek 1: Klasyfikacja jako funkcja. Symbolem O oznaczono zbiór obserwacji, zaś elementami tego zbioru są odpowiednio o 1, o 2 oraz o 3. Do zbioru klas należy k 1, k 2 oraz k 3. W zapisie (3.1) zbiór obserwacji oznaczono jako literą O, zaś symbolem P(K) oznaczono zbiór wszystkich podzbiorów klas. Każda z obserwacji jest interpretowana jako wektor n-wymiarowy, w którym każdy wymiar reprezentuje wartość poszczególnego argumentu. Możemy więc zapisać dowolną obserwację jako: o=(o 1, o 2, o 3... o n ) (3.2) Algorytmy klasyfikacji rozróżnia się na podstawie możliwości podziału hiperpłaszczyzny. Załóżmy, że chcemy przedstawić dane testowe na hiperpłaszczyźnie n-wymiarowej. Każda dana reprezentuje punkt. Klasyfikację możemy interpretować jako: x F (x)=x X P(K ) i X V i (3.3) 10 / 65
11 Klasyfikator dzieli hiperpłaszczyznę na części, oznaczone jako V i, które są parami rozłączne. Często, w kontekście tak przedstawionej interpretacji problemu klasyfikacji, używa się pojęcia liniowej separowalności, opisującej czy możliwy jest podział zbioru punktów przestrzeni za pomocą hiperpłaszczyzny tak, aby były spełnione wyżej opisane warunki [5]. W niniejszej pracy skupimy się na klasyfikacji stron internetowych. 3.1 Typy klasyfikacji W przypadku klasyfikacji zasobów internetowych [6], możemy wyróżnić następujące schematy podziałów: 1. Liczność zbioru klasy. W przypadku liczności zbioru klas sam proces ma sens dla zbioru większego od jednego. Proces, w którym możliwe są do przypisania tylko dwie klasy, nazywamy klasyfikacją binarną. Występuje to często w przypadku np. sprawdzania czy obserwacja jest określonego typu czy też nie. Jeżeli zbiór takich klas jest liczniejszy, wtedy występuje klasyfikacja wieloklasowa. 2. Ilość klas powiązanych z obserwacją. Powyższe sformułowanie może być mylące, gdyż przypisanie jest realizowane dla obserwacji, a nie odwrotnie. Jednak faktem jest, że istnieje rodzaj klasyfikacji, nazywany klasyfikacją wielo-etykietowaną, w którym obserwacja może być przypisana do więcej niż jednej klasy. Analogicznie, jeżeli zakładamy, że dokument może posiadać tylko jedną przypisaną klasę, mówimy o klasyfikacji jedno-etykietowanej. 3. Stopień przynależności do klasy. Zazwyczaj przynależność do klasy określana jest binarnie, innymi słowy, albo obserwacja należy do danej klasy, albo nie. W takim przypadku używa się sformułowania twarda klasyfikacja. Istnieją jednak przypadki, w którym określa się stopień przynależności do klas, wtedy jest to tzw. miękka klasyfikacja. 4. Relacje względem klasy. Ujmując inaczej, czy istnieje jakaś hierarchia wewnątrz zbioru klas. Przykładem klasyfikacji hierarchicznej może być problem przypisania konkretnego zwierzęcia do gatunku. Zarówno klasa jamnik jak i owczarek niemiecki są związane z klasą pies. Klasyfikację, w której nie zachodzą takie relacje, nazywamy płaską. Warto wspomnieć, że klasyfikator wykorzystywany w projekcie oraz w testach, zgodnie z powyższymi definicjami, można zapisać jako binarny, jedno-etykietowy, twardy oraz płaski. 3.2 Etapy klasyfikacji Klasyfikacja danych to proces dwuetapowy. Pierwszy etap dotyczy konstrukcji modelu, kolejny zaś zawiera wszystkie działania wykorzystujące utworzony klasyfikator. Konstrukcje możemy podzielić na dwa dodatkowe kroki. W pierwszym, nazywanym krokiem uczenia bądź treningu [1], 11 / 65
12 klasyfikator jest budowany na podstawie uprzednio zdefiniowanego zestawu danych. Klasyfikator analizuje udostępnione dane. Kolejny krok nazywany jest krokiem testów. Na tym poziomie gotowy model jest testowany i sprawdzany, czy klasy przyporządkowane przy użyciu modelu są zbieżne z góry określonymi przez dostarczone dane. Klasyfikacja Kontrukcja modelu Korzystanie z klasyfikatora Trening Rysunek 2: Podział klasyfikacji na etapy Testowanie 3.3 Dane i podział na zbiory Dane przeznaczone do nauki klasyfikatora dzielone są na dwa zbiory. Pierwszy zbiór służy jako treningowy w omawianym już kroku trenowania, drugi zaś ma na celu testowanie i weryfikację poprawności. Występuje tutaj uczenie nadzorowane (ang. supervised learning) [7]. Algorytm klasyfikacji Dane trenujące Nazw isko Wiek Dochód Decyzja Dąbrow ski Pozytyw na Kow alski Now ak Pozytyw na Negatyw na Wiśniew ski Pozytyw na Model Rysunek 3: Krok uczenia klasyfikatora. Na podstawie diagramów zamieszczonych w [1] 12 / 65
13 Każda dana jest reprezentowana jako n-wymiarowy wektor, identycznie jak obserwacja. Elementy tego wektora nazywa się cechami. Na podstawie cech ustalane są reguły nazywane modelem. Model Dane testowe Nowe dane Nazw isko Wiek Dochód Decyzja Kamiński Kow alczyk Negatyw na Negatyw na Woźniak Pozytyw na Wójcik Pozytyw na Szymański Decyzja? Pozytyw na Rysunek 4: Krok testowania klasyfikatora. Na podstawie diagramów zamieszczonych w [1] Pierwszy krok można utożsamiać z nauką przypisania asocjacji danych do klasy. Takie przypisanie może mieć formę reguły, drzewa decyzyjnego bądź zapisu matematycznego, w zależności od wybranego przez nas algorytmu. W drugim kroku występuje weryfikacja przypisań z gotowym zbiorem rozwiązań. 3.4 Reprezentacja danych W niniejszym projekcie wykorzystano program klasyfikacji stron www. Problemem w przypadku klasyfikacji stron internetowych jest sposób reprezentacji danych. Każda strona www przedstawiona jest w formacie HTML (ang. HyperText Markup Language). W takim formacie część danych jest ustrukturyzowana, lecz w formie niewygodnej dla analizy z punktu widzenia klasyfikacji. Powodem tego są znaczniki HTML, które wprowadzają w dużej mierze jedynie informacje o formatowaniu danych, a nie samej jej treści. Dla większości programów klasyfikacji, reprezentacja HTML nie jest odpowiednia i nie oddaje istotnych informacji. W tym celu należy zmienić sposób reprezentacji dokumentu, na bardziej czytelny. Przede wszystkim dąży się do tego, aby zminimalizować zbędne dane oraz zmaksymalizować istotne informacje dla konkretnego problemu [8] Reprezentacja pełna Jednym z rozwiązań jest zastosowanie tzw. reprezentacji pełnej, innymi słowy przechowanie dokładnego miejsca wystąpienia słowa oraz wszystkich jego wystąpień. W ten sposób można z dużą dokładnością odtworzyć stan pierwotny dokumentu. Jednak istnieją powody, dla których 13 / 65
14 taka reprezentacja jest niewystarczająca. Ze względu na przechowywanie niepotrzebnych danych, zazwyczaj utrudniona jest analiza samych dokumentów. Powoduje to spadek wydajności algorytmów Reprezentacje unigramowe W przypadku, gdy nie interesuje nas w żadnym stopniu położenie wyrazu, można zastosować typ reprezentacji unigramowej (ang. unigram model). Podstawową jednostką takiej struktury jest słowo (ang. term). Zawarte w dokumencie słowa pełnią rolę atrybutów. Dokument przedstawiony jest jako wektor, w którym przechowywana jest informacja dotycząca wystąpienia konkretnych słów [9]. Inna nazwa to worek słów (ang. bag of words). Liczba wymiarów takiego wektora jest równa liczbie różnych słów występujących w tekście. Występują dwa rodzaje takiej reprezentacji: binarna jedyna informacja przechowywana to fakt, czy dane słowo zaistniało w tekście czy też nie, częstotliwościowa liczona jest ilość wystąpień danego słowa w tekście. W projekcie wykorzystałem obie te reprezentacje, których wpływ na skuteczność klasyfikacji został przeanalizowany i przedstawiony w rozdziale Inne reprezentacje Reprezentacja n-gramowa W przeciwieństwie do unigramowej, reprezentacja n-gramowa przechowuje informację dotyczącą wzajemnej kolejności słów w dokumencie. Zawiera ona dane o częstości występowania sekwencji, o długości n wyrazów. Ze względu na wykładniczy wzrost wymiaru wektorów, stosowana zazwyczaj dla n nieprzekraczającego trzy. Zauważmy, że reprezentację unigramową można interpretować jako n- gramową gdzie n=1. Reprezentacja γ-gramowa Polega na złożeniu modelu n-gramowego z unigramowym. W przeciwieństwie do obydwu tych reprezentacji, które przechowywały informacje tylko o sekwencjach n wyrazowych, γ-gramowa zawiera zarówno sekwencje o długości n, jak i krótsze. Innymi słowy, przechowuje sekwencje nie dłuższe niż n. Reprezentacja pozycyjna Reprezentacja pozycyjna znacząco wyróżnia się na tle wyżej przedstawionych. Dokument jest dzielony na określonej wielkości części. Dla każdej części oblicza się częstość wystąpienia słów. Pozwala to otrzymać funkcję rozkładu słów w różnych przedziałach dokumentu. Należy zauważyć, że w skrajnych przypadkach otrzymamy znane reprezentacje. Jeżeli ilość przedziałów będzie równa ilości słów, otrzymamy reprezentacje pełną. Jeżeli będzie istniał tylko jeden przedział, wtedy otrzymamy reprezentację unigramową. 14 / 65
15 3.5 Testowanie Poniżej zostały przedstawione podstawy teoretyczne, wymagane do zrozumienia przebiegu badań wybranych metod klasyfikacji w rozdziale Wynik klasyfikacji Wynik klasyfikacji Przynależność do klasy Pozytywna Negatywna Pozytywna Prawdziwie pozytywna Fałszywie pozytywna Negatywna Fałszywie negatywna Prawdziwie negatywna Tabela 1: Rodzaje możliwych wyników przypisania elementu do klasy dla klasyfikacji binarnej Testowanie klasyfikatorów polega na porównaniu wyników dostarczonych przez skonstruowany klasyfikator (poddany treningowi) z wartościami oczekiwanymi, dostarczonymi zbiorami danych. Należy wspomnieć, że rozpatrujemy w tym przypadku klasyfikację binarną. Dla większej liczby klas należy rozważyć mikro-uśrednianie oraz makro-uśrednianie [10]. Dla każdego przypadku klasyfikacji możemy otrzymać cztery możliwe wyniki: prawdziwie pozytywny (ang. true positive), prawdziwie negatywny (ang. true negative), fałszywie pozytywny (ang. false positive) oraz fałszywie negatywny (ang. false negative). Dwa pierwsze rezultaty są zgodne z wynikami oczekiwanymi, z kolei dwa kolejne nie. Tabelę 1 można rozszerzyć o dodatkową wartość możliwego wyniku klasyfikacji, mianowicie: brak klasyfikacji. W przypadku, gdy w procesie klasyfikacji trudno określić przynależność obserwacji, można oznaczyć ją jako niesklasyfikowaną. Dodaje to zatem do powyższej puli czterech możliwych wyników przyporządkowania konkretnego testu dwie nowe wartości: nie sklasyfikowany pozytywny (ang. not classified positive) oraz, analogicznie, nie sklasyfikowany negatywny (ang. not classified negative). W kolejnych rozdziałach niniejszej pracy symbolami TP, TN, FP oraz FN zostanie oznaczona ilość testów zakończonych wynikiem odpowiednio prawdziwie pozytywnym, prawdziwie negatywnym, fałszywie pozytywnym oraz fałszywie negatywnym Miary Klasyfikację można ocenić poprzez szczegółowe zliczenie ilości poszczególnych wyników na podstawie oceny każdego z przykładów ze zbioru danych przeznaczonych do testów. Nie rozwiąże to jednak w wielu przypadkach problemu definitywnego stwierdzenia jak dobry jest klasyfikator w porównaniu do innego. Logicznym spostrzeżeniem jest fakt, że liczba prawdziwie pozytywnych oraz prawdziwie negatywnych przypisań powinna być możliwie jak najwyższa. W celu łatwiejszej oceny klasyfikacji wprowadzono różne miary. Poniżej opisano sposób ich obliczania oraz krótki opis [11]. 15 / 65
16 Dokładność Wyraża w jakim stopniu klasyfikacja jest poprawna (stosunek pozytywnie udzielonych wyników do ilości wykonanych testów): TP+TN A= TP+TN+ FP+ FN (3.5.1) Precyzja Informuje jak dużo przypadków rozpatrzonych przez klasyfikator pozytywnie jest w rzeczywistości zgodna z poprawną klasą. Nazywana czasami Pozytywnie Przewidywaną Wartością: P= TP TP+FP (3.5.2) Czułość Ilość przypadków, które powinny zostać sklasyfikowane pozytywnie można wyrazić poprzez: TP+ FN (3.5.3) Czułość opisuje stosunek pozytywnie rozpatrzonych przypadków do oczekiwanej ich ilości: S= TP TP+FN (3.5.4) F-miara W związku z tym, że sama informacja o precyzji i czułości nie daje wystarczająco dużo informacji, często korzysta się z F-miary, będącej średnią ważoną z precyzji i czułości. We wzorze pojawia się dodatkowy parametr β: F=(1+β 2 ) P S β 2 (P+S) (3.5.5) Negatywna przewidywana wartość Wyraża stosunek pozytywnie sklasyfikowanych negatywnych przypadków, do liczby ich przypisań: NPV = TN TN +FN (3.5.6) 16 / 65
17 4 Klasyfikatory Budowanie modelu zależy od wyboru algorytmu tworzącego klasyfikator. Istnieje szereg metod pozwalających na budowanie modelu. Głównie dzielimy je na [12]: 1. metody logiczne, 2. metody oparte o sieci neuronowe, 3. metody statystyczne, 4. metody oparte na przykładach, 5. maszyna wektorów nośnych. Metody logiczne Główne algorytmy wchodzące w skład tych metod to drzewa decyzyjne oraz klasyfikacje oparte na regułach. Model oparty na regułach cechuje się wyrażeniami zapisanymi jako Dysjunkcyjna Postać Normalna (ang. disjunctive normal form, DNF). Matematycznie można to zapisać jako: ( X 1 X 2... X n ) ( X n+1 X n+2... X 2 n )... (X (k 1) n+1 X (k 1) n+2... X kn ) (4.1) W powyższym przykładzie k występuje jako liczba dysjunkcji, zaś n to liczba koniunkcji w poszczególnej dysjunkcji. Celem jest skonstruowanie najkrótszej reguły, opisującej poprawnie każdą klasyfikację ze zbioru treningowego. Zbyt długa reguła może być sygnałem, że algorytm zamiast próby znalezienia korelacji pomiędzy danymi, próbuje zapamiętać wszystkie dane. Metody oparte o sieci neuronowe Metoda ta zostanie omówiona w przypadku pojedynczej warstwy perceptronów oraz w przypadku wielu warstw perceptronów. Przykładem najprostszej sieci neuronowej jest pojedynczy perceptron. Zależność pomiędzy danymi wejściowymi, a wyjściowymi możemy zapisać w poniższy sposób: y= i x i w i (4.2) Symbolem x oznaczono wartości wejściowe, z kolei symbolem w wagi tych wartości. Sumujemy kolejno iloczyn wartości i wagi tego wejścia, następnie otrzymaną wartość y należy porównać do wartości progowej oznaczonej poniżej symbolem e: 17 / 65
18 f (x)= y<e: 0 y e: 1 (4.3) Najczęstszym sposobem wykorzystywania powyższego modelu jest wywołanie algorytmu dla każdego przykładu ze zbioru trenującego. W wyniku wywołania otrzymamy wektor wag, który powinien być poprawny dla każdego przykładu ze zbioru trenującego. Istotny jest schemat aktualizacji wag. Przykładem jest algorytm WINNOW [13], który zachowuje się w niżej opisany sposób: Jeżeli y' = 0 i y=1 { Dla każdego x i = 1 w i := w i * α } Jeżeli y' = 1 i y = 0 { Dla każdego x i = 1 w i := w i * β } Algorytm 1: Algorytm WINNOW W powyższym algorytmie symbol α to zmienna o wartości większej od 1, zaś symbol β to zmienna o wartości od 0 do 1, y' reprezentuje wartość wyliczoną przez model, zaś y to wartość oczekiwana. WINNOW jest przykładem eksponencjalnego algorytmu aktualizacji. Jednowarstwowe sieci perceptronów miały zasadniczą wadę, nie potrafiły poradzić sobie z klasyfikacją inną niż liniowo separowalna. Jest to jedna z przyczyn zastosowania wielu warstw, ponieważ wielowarstwowe sieci są w stanie poradzić sobie z tym problemem. Składają się one z dużej liczby połączonych ze sobą neuronów, zwanymi również jednostkami. Dzielone są na 3 części: jednostki wejściowe otrzymują informacje wejściowe, jednostki wyjściowe zwracają wynik, jednostki ukryte położenie pomiędzy dwoma pierwszymi warstwami jednostek. 18 / 65
19 x1 = 0 v11 = -1 w11 = 0.9 y1 = 1.66 v21 = 0 w21 = -1.2 v12 = 0.1 w12 = -0.2 x2 = 1 v22 = 0.8 w22 = 0.6 y2 = 0.32 Rysunek 5: Struktura wielowarstwowej sieci neuronów. Symbolem koła oznaczono jednostki wejściowe, kwadratu jednostki ukryte i wreszcie jednostki wyjściowe oznaczono trójkątem. Wzorowane na rysunku zamieszczonym w [12] Metody statystyczne Metody statystyczne zazwyczaj wykorzystują gotowy model, który stosuje odpowiednie prawdopodobieństwo, z jakim dane obserwacje należą do określonej klasy. Opiera się on w dużej mierze na liniowej analizie dyskryminacji [14], polegającej w dużym uogólnieniu na znalezieniu liniowych złożeń cech, które w najlepszy sposób rozdzielają klasy obiektów. Stosowana jest dla wartości ciągłych. Najbardziej znanym algorytmem stosowanym jest sieć Bayesowska, jak i jej uproszczenie naiwny klasyfikator Bayesa, który zostanie omówiony szczegółowo w następnych rozdziałach. Sama sieć Bayesowska stosuje acykliczny graf skierowany, w którym każdy węzeł (wierzchołek) grafu powiązany jest z określoną cechą. Krawędzie grafu reprezentują probabilistyczne relacje między cechami. Zatem krawędź pomiędzy wierzchołkiem A, a wierzchołkiem B może być identyfikowana jako zależność pomiędzy dwoma wartościami (wartość B zależy od wartości A). W takim przypadku wierzchołek A jest określany jako rodzic wierzchołka B, wierzchołek B jako dziecko wierzchołka A. Jeżeli dowolne dwa węzły nie posiadają między sobą krawędzi, oznacza to, że są względem siebie niezależne [15]. Ze względu na strukturę każdy węzeł jest opisany tabelą prawdopodobieństwa warunkowego (ang. conditional probability tables). Najczęstszym problemem jest sama struktura, która może być jawnie zdefiniowana, np. przez eksperta, bądź nieznana. Zadanie nauki sieci Bayesowch dzielimy na dwa etapy: 1. nauka struktury, 2. determinacja parametrów. 19 / 65
20 P(Od = T) P(Od = F) P(Wy = T) P(Wy = F) Odwodnienie Wysoka temperatura P(Prz = T) P(Prz = F) Przebyty udar Osłabienie Od Wy P(T Od,Wy) P(F Od,Wy) T T T F F T F F Udar P(T Prz,Os) P(F Prz,Os) Diagram 1: Sieć Bayesowa reprezentująca prawdopodobieństwo wystąpienia udaru. Podobny przykład został omówiony w [15]. Prz T T F F Os T F T F Metody oparte na przykładach Zbiór tych metod najczęściej łączy się z algorytmami uczenia leniwego (ang. lazy learning). Uczenie leniwe charakteryzuje się brakiem modelu oraz generowaniem wyniku klasyfikacji bezpośrednio z danych. Do tej pory były omawiane algorytmy uczenia gorliwego (ang. eager learning), które zakładały utworzenie modelu i na jego podstawie określenie przynależności do klasy danych. Przykładem algorytmu opartym na przykładach jest k najbliższych sąsiadów (ang. k nearest neighbours knn). Zakłada on, że dane należące do tej samej klasy mają podobne wartości cech oraz są położone stosunkowo blisko w przestrzeni. Algorytm można zapisać w pseudokodzie następująco [12]: Dla każdej x ze zbioru testów znajdź k najbliższych instancji ze zbioru trenującego zwróć najczęściej przypisaną do tych instancji klasę jako klasę x Algorytm 2: Algorytm ogólny knn Algorytm knn zakłada interpretację graficzną procesu klasyfikacji. Istotne jest zdefiniowanie pojęcia odległości, posługując się odpowiednią metryką. 20 / 65
21 Rysunek 6: Prezentacja działania algorytmu knn dla k = 5. Zauważmy, że dana dla której dokonywana jest klasyfikacja (trójkąt) zgodnie z algorytmem została zaklasyfikowana do tej samej klasy co dane oznaczone gwiazdą (w otoczeniu znajdują się 4 gwiazdy i jedno koło) 4.1 Naiwny klasyfikator Bayesa Jest to jeden z najprostszych przykładów klasyfikacji opierający się na prostym probabilistycznym modelu [16]. Uogólniając, metoda ta polega na obliczeniu dla każdej obserwacji prawdopodobieństwa jej przynależności do konkretnej klasy. Następnie obserwację przypisuje się do tej klasy, gdzie prawdopodobieństwo jest najwyższe. Olbrzymią wadą tego modelu jest założenie o całkowitej niezależności argumentów zawartych w dokumencie. Jest to główna przyczyna przemawiająca za naiwnym charakterem tego modelu Opis modelu Symbolem D oznaczmy zbiór obserwacji. Dodatkowo załóżmy, że obserwacje zostały ponumerowane. Zatem d i będzie dokumentem i elementem zbioru D. Analogicznie możemy zapisać zbiór klas C oraz element tego zbioru c j. Twierdzenie Bayesa Przynależność obserwacji d i do klasy c j możemy zapisać jako prawdopodobieństwo c j pod warunkiem d i lub prościej P(c j d i ). W celu obliczenia tego prawdopodobieństwa możemy skorzystać z twierdzenia Bayesa: 21 / 65
22 P(c j d i )= P(d i c j)p (c j ) P(d i ) (4.1.1) W następnych nagłówkach zostanie przedstawiony wzór wyliczania poszczególnych elementów równania. Wyliczanie P(d i ) Funkcja (4.1.1) wyraża prawdopodobieństwo wystąpienia wybranego dokumentu. Dla problemu klasyfikacji możemy przyjąć, że każdy dokument ma takie samo prawdopodobieństwo wystąpienia. Zauważmy wtedy, że przy ocenie P(c j d i ) dla wybranego dokumentu mianownik będzie ten sam, zatem na potrzebę tej analizy wzór można uprościć i przedstawić go w wygodnej, nieco zmienionej, formie: Wyliczanie P(c j ) P(c j d i )= P(d c )P (c ) i j j =P (d P(d i ) i c j )P(c) (4.1.2) Kolejny element to prawdopodobieństwo wystąpienia klasy c j. Jest to argument modyfikowalny, podawany jako parametr w przypadku tworzenia klasyfikatora. Można go oszacować (np. poprzez obliczenie, jaką część w dostarczonym zbiorze danych stanowią obserwacje klasy c j ) albo określić jakąś wartość. Początkowo można przyjąć, że każdy dokument występuje z takim samym prawdopodobieństwem: P(c j )= 1 C (4.1.3) Wyliczanie P(d i c j ) W celu wyliczenia ostatniej wartości, będziemy musieli skorzystać z założenia o niezależności atrybutów. Wtedy d i możemy przedstawić jako: Korzystając z powyższego równania: d i =(a 1,a 2,...,a n ) (4.1.4) n P(d i c j )=P(a 1,a 2,...,a n c j )= P (a k c j ) (4.1.5) k=1 Obliczenie członu P(a k c j ) dla każdego atrybutu dokumentu d i zależy już od reprezentacji jaką przyjmiemy. 22 / 65
23 4.2 Maszyna wektorów nośnych Ta metoda odwołuje się do podanej w poprzednich punktach graficznej interpretacji procesu klasyfikacji. W przypadku tego algorytmu zostaną rozpatrzone trzy jego warianty [17]: 1. liniowo separowalny, 2. liniowo separowalny z funkcją błędu, 3. z funkcją jądra. Ogólnie maszyna wektorów nośnych stara się rozwiązać problem znalezienia hiperpłaszczyzny, która rozróżnia, przy zachowaniu marginesu błędu, punkty należące do innych klas. Należy wspomnieć, że maszyna wektorów nośnych (ang. Support Vector Machine - SVM) stosuje się do klasyfikacji binarnej. W przeciwieństwie do innych metod, gdzie 1 oznaczało należenie do jednej klasy, a 0 do innej, tutaj występuje oznaczenie 1 oraz -1. Zatem elementy zbioru treningowego możemy interpretować jako para wektora atrybutów dokumentu oraz oznaczenie przynależności do klasy: T ={(d 1, y 1 ),(d 2, y 2 ),...,(d n, y n )} (4.2.1) Istnieją strategie umożliwiające rozszerzenie przypisywania danych do wielu klas, poprzez stosowanie różnych klasyfikacji binarnych [18]. Najczęściej używane strategie to: 1. jeden przeciwko wszystkim (ang. One-vs-All) Dla każdego elementu ze zbioru klas zostaje przeprowadzona klasyfikacja binarna, w której klasę pozytywną utożsamia się z przynależnością danej do klasy, a negatywną z brakiem tej przynależności. Zostaje wybrana klasa z największym wynikiem. 2. jeden przeciwko jednemu (ang. One-vs-One) Dla każdej pary elementów ze zbioru klas zostaje przeprowadzona klasyfikacja binarna, w której klasę pozytywną utożsamia się z przynależnością danej do pierwszego elementu pary, a z klasą negatywną przynależnością do drugiego elementu pary. Wybrana zostaje klasa z największą liczbą zwycięstw. 3. korekta błędu kodu wyjściowego (ang. Error Correcting Output Code) Polega na powiązaniu procesu klasyfikacji z macierzą M { 1,0,1 } k l, w której każdy wiersz reprezentuje odpowiednio zakodowaną klasę. Dla każdego l wykonywane jest wnioskowanie, w którym dokonywane jest przekształcenie binarne. W końcowym etapie obliczane jest słowo, które przy użyciu odpowiednich wzorów pozwala na wyliczenie przyporządkowanej klasy Liniowo separowalny Do innych algorytmów liniowych, wymienionych już w niniejszej pracy, należą np. naiwny klasyfikator Bayesa, który poszukuje rozwiązania optymalnego względem własnych kryteriów oraz 23 / 65
24 jednowarstwowa sieć perceptronów, która odnajduje jakiekolwiek rozwiązanie. Graficznie ich rozwiązania można interpretować jako hiperpłaszczyzna rozdzielająca dane należące do różnych klas. SVM liniowo separowalny również odnajduje hiperpłaszczyznę rozdzielającą dane, jednak dodatkowo zakłada się, że będzie zawierała maksymalny margines. Rysunek 7: Hiperpłaszczyzna dzieląca dane z maksymalnym marginesem (czarna linia). Na rysunek naniesiono hiperpłaszczyznę (biała linia), która również rozdziela dane, jednocześnie nie spełniając warunku o maksymalnym marginesie. Czerwone linie często nazywane są wektorami wsparcia Oczywiście istnieje szereg problemów klasyfikacji, dla których nie można znaleźć hiperpłaszczyzny, stąd warunek o liniowej separowalności. Wymaganie maksymalnego możliwego marginesu pojawia się ze względu na możliwe błędy klasyfikacji w przypadku obserwacji znajdującej się blisko hiperpłaszczyzny [19]. Czym większy będzie znaleziony margines, tym mniej podejmowanych jest decyzji z dużym ryzykiem błędu. Zapis algebraiczny W ogólnym przypadku klasyfikację liniową można zapisać dla dwuwymiarowego procesu w następujący sposób (patrz Rysunek 7): w 1 x 1 +w 2 x 2 =b 24 / 65
25 Obserwacja należy do jednej z klas, jeżeli: w 1 x 1 +w 2 x 2 >b Analogicznie obserwacja należy do innej klasy, jeżeli: w 1 x 1 +w 2 x 2 b W powyższym przykładzie x 1 oraz x 2 to wektor atrybutów dokumentu, z kolei w 1, w 2 oraz b to odpowiednie wagi. Uogólniając do problemów n-wymiarowych: w T x b=0 Zmienną w możemy traktować jako wektor normalny do hiperpłaszczyzny. W poprzednim punkcie oznaczyliśmy wynik przyporządkowania jako należący do zbioru {-1,1}, gdzie 1 oznacza należenie do jednej klasy, a -1 do drugiej. Zatem stwórzmy funkcję: F :R n { 1,1 } W tym celu można zastosować funkcję signum [20] i przedstawić równanie hiperprzestrzeni w następującej postaci: f ( x)=sign( w T x b) (4.2.2) Na rysunku 7 oznaczono niebieską linią margines. Odnaleziona hiperpłaszczyzna jest klasyfikacją SVM, jeżeli spełnia warunki: 1. Hiperpłaszczyzna musi być funkcją opisaną w (4.2.2). Przyjmijmy, że wynik funkcji będziemy oznaczali zmienną y. Powyższą obliczoną funkcję możemy zapisać w uproszczonej formie. Zauważmy, że każdy element zbioru treningowego T spełnia jeden z poniższych warunków d i w+b 1dla y i =1 d i w+b 1 dla y i = 1 (4.2.3) co można zapisać także jako: i y i (d i w+b) 1 (d i, y i ) T (4.2.4) 2. Margines musi być maksymalny. Odległość między dwoma wektorami wsparcia wynosi 2 w, którą możemy zapisać jako 25 / 65
26 minimalizację w 2. W celu zastosowania optymalizacji kwadratowej (ang. Quadratic Programming Optimization), przekształćmy problem minimalizacji równoważny minimalizacji w 2 2. Podsumowując: w 2 na problem min w 2 2 pod warunkiem i y i (d i w T +b) 1 Jest to tak zwany problem optymalizacji ograniczonej (ang. constrained optimization problem), który można rozwiązać stosując mnożnik Lagrange'a. Możemy zdefiniować dwie funkcje f oraz g i reprezentujące funkcję celu oraz warunku. Wtedy dostaniemy: f (w)= 1 2 wt w (ponieważ w 2 =w T w ) g i (w,b)= y i (d i w T +b) 1 0 co podstawiając do definicji otrzymamy funkcjonał, zwany Lagrangianem: N L(w,b,α)=f (w) α i g i (w, b) i=1 Dodatkowo ze względu na nierówność warunku g i (w,b) 0 zakładamy, że i α i 0. Podstawiając funkcje: L(w,b, α )= 1 N w 2 wt i=1 Obliczając pochodne cząstkowe po w oraz b otrzymujemy: N α i y i (d i w T +b)+ α i (4.2.5) i=1 N L(w,b,α ) =w α w i y i d i =0 i=1 N (4.2.6) w= α i y i d i i=1 L(w,b,α ) b N = i=1 α i d i =0 (4.2.7) Podstawiając (4.2.6) do (4.2.5) otrzymujemy: 26 / 65
27 L(α)= 1 2 i=1 N N j=1 N α i α j y i y j d T i d j + i=1 N α i b α i y i (4.2.8) i=1 Zauważmy, że na mocy (4.2.7) możemy uprościć (4.2.8) poprzez wyzerowanie odpowiedniego czynnika: L(α)= 1 2 i=1 N N j=1 N α i α j y i y j d T i d j + α i (4.2.9) i=1 W obecnej formie Lagrangian jest zależny jedynie od argumentu α, co znacząco upraszcza funkcję. W tej sytuacji należy jeszcze raz rozwiązać problem optymalizacji, tym razem jednak w kontekście nowo wyliczonej funkcji, zatem: N N j=1 max L(α )= 1 2 i=1 pod warunkiem N α i 0, i=1 N α i α j y i y j d T i d j + α i i=1 α i d i =0 (4.2.10) Wyliczenie powyższej optymalizacji jest zadaniem złożonym, często wykonywanym przez tzw. QP solvery. Wynikiem ich obliczeń jest wektor α, który następnie może być użyty do obliczenia wektora w przy użyciu wymienionego już wzoru (4.2.6). W celu obliczenia parametru b należy zauważyć fakt, że dla wszystkich wektorów wsparcia zachodzi warunek: co można wykorzystać w równaniu (4.2.3) otrzymując: α i 0 (4.2.11) y s (d s w+b)=1 (4.2.12) Symbolem s oznaczmy prostą, będącą wektorem wsparcia. Podstawiając (4.2.6) otrzymujemy: N y s ( α i y i d i d s +b)=1 (4.2.13) i=1 Zauważmy, że indeksami i są tylko wektory będące wektorami nośnymi ze względu na (4.2.11). Wykorzystując fakt, że y i przyjmuje tylko wartości -1 lub 1, uzyskujemy własność y s 2 =1 i mnożąc stronami (4.2.13) otrzymujemy: 27 / 65
28 N b= y s i=1 α i y i d i d s (4.2.14) SVM z funkcją błędu W rzeczywistości warunek liniowej separowalności w wielu przypadkach nie jest spełniony dla problemu klasyfikacji. Możemy jednak zmodyfikować obliczenia wyprowadzone w poprzednim punkcie poprzez wprowadzenie dodatkowej zmiennej relaksacyjnej ξ i [21]. ξ 1 ξ 2 ξ 3 Rysunek 8: Klasyfikator SVM z uwzględnieniem funkcji błędu ξi Rysunek 8 przedstawia graficzną ilustrację problemu klasyfikacji. Jak można zaobserwować niektóre punkty zostały niewłaściwie zaklasyfikowane, jednak stosując funkcję błędu można w prosty sposób zniwelować te skutki. Wprowadźmy zmiany do (4.2.3) otrzymując: d i w+b 1 ξ i dla y i =1 d i w+b 1+ξ i dla y i = 1 i ξ i 0 (4.2.15) Podobnie jak poprzednio (4.2.4) spróbujmy ustalić warunek w celach znalezienia ekstremum, zatem: i y i ( d i w+b) 1 ξ i i ξ i 0 (4.2.16) 28 / 65
29 Pozostaje już tylko modyfikacja samej funkcji, w ramach której będziemy szukać ekstrema. Należy wprowadzić dodatkowy czynnik, będący próbą zmniejszenia liczby błędnych klasyfikacji. Możemy to przedstawić jako: min( 1 N 2 w 2 +C ξ i ) (4.2.17) i=1 Współczynnik C jest parametrem modyfikowalnym, interpretowanym jako stopień zależności pomiędzy wysokością kary dla punktów, niespełniających założeń, a szerokością marginesu. Zatem im większa jest wartość tego parametru tym mniej akceptowalne są odchylenia (punkty z większą wartością zmiennej relaksacyjnej). Wyliczając mnożnik Lagrangiana dla (4.2.17) dla założeń (4.2.16) otrzymujemy: L(w,b, ξ, α,β)= 1 N w+c 2 wt i=1 N ξ i i=1 N α i [ y i (d i w T +b) 1+ξ i ] β i ξ i (4.2.18) i=1 Ze względu na warunek zawarty w (4.2.16) należało dodać dodatkowy atrybut β i, który musi spełnić warunek i β i 0. Podobnie jak w poprzednim punkcie, różniczkujemy po w, b oraz dodatkowo ξ otrzymując: L(w,b, ξ, α, β) w N =w α i y i d i =0 i= 1 N (4.2.19) w= α i y i d i i=1 L(w,b, ξ, α, β) b N = α i d i =0 (4.2.20) i=1 L(w,b, ξ, α, β) =C N α ξ i N β i N=0 α i +β i =C (4.2.21) Równania (4.2.19) oraz (4.2.20) nie różnią się od tych uzyskanych przy optymalizacji bez zmiennej relaksacyjnej. Z równania (4.2.21) możemy wywnioskować, że: 29 / 65
30 α i +β i =C i α i 0 i α i <C i β i 0 (4.2.22) Zatem podobnie jak w (4.2.10) problem do rozwiązania wygląda następująco: N N j=1 max L(α )= 1 2 i=1 pod warunkiem 0 α i C, i=1 α i α j y i y j d T N i d j + α i i=1 N α i d i =0 (4.2.23) Różnica wynika tylko z (4.2.22). Parametr b obliczany jest podobnie jak w (4.2.14) oczywiście z wyjątkiem indeksów, które nie spełniają zależności 0 α i C. Zauważmy, że przy założeniu C otrzymujemy problem analogiczny do omówionego w poprzednim rozdziale SVM z funkcją jądra Istnieje jeszcze inny sposób sprowadzenia problemu nieliniowej klasyfikacji do postaci liniowej. Poprzez dodanie nowego wymiaru oraz zdefiniowanie funkcji, która dokona mapowania punktów, możemy uzyskać przestrzeń liniowo separowalną. Mapowanie to nazywamy transformacją Φ. Φ Rysunek 9: Transformacja punktów za pomocą Φ. Na rysunku kolorem błękitnym oznaczono punkty w ramach których wykonano transformację. Punkty po transformacji oznaczono kolorem czerwonym. Nowe równanie możemy zapisać, korzystając z (4.2.9) jako: L(α )= 1 2 i= 1 N N j=1 N α i α j y i y j Φ(d i ) T Φ(d j )+ α i (4.2.24) i =1 Przekształcenie Φ jest bardzo skomplikowane. W tym celu zdefiniujmy funkcję jądra K: 30 / 65
31 K (d i, d j )=Φ(d i ) T Φ(d j ) (4.2.25) Celem jej wprowadzenie jest uwikłanie wprowadzania bezpośrednio Φ. Taką metodę nazywamy trikiem jądra (ang. kernel trick). Często spotykane funkcje jądra mają następującą postać: liniowa: wielomianowa rzędu p: K (d i, d j )=d i T d j (4.2.26) K (d i, d j )=(d i T d j +a) p (4.2.27) radialna funkcja bazowa (ang. radial basis function) z szerokością σ: sigmoidalna: K (d i, d j )=e d i d j 2 2 σ 2 (4.2.28) K (d i, d j )=tanh( κd i T d j +θ) (4.2.29) 31 / 65
32 5 Implementacja W niniejszym rozdziale zostaną omówione szczegóły związane z systemem implementującym interfejs aplikacji testującej programy klasyfikacji. Został on zaprojektowany z myślą o stworzeniu systemu umożliwiającego podłączanie dowolnego programu implementującego różne algorytmy klasyfikacji, a następnie wyświetlanie wyników ich wywołania w czytelnej i przyjaznej dla użytkownika formie. W celu uproszczenia pracy z takimi programami, powinna być również umożliwiona modyfikacja nie tylko parametrów wywołania programu, ale także samych zbiorów danych testowych. Opisywany program przydałby się analitykom oceniającym pracę takiego narzędzia w kontekście najlepszej optymalizacji dla wybranych zbiorów danych. W związku z tym z praktycznego względu powinna istnieć również możliwość generacji raportów wybranych wyników oraz sama ich archiwizacja w bazie danych. Omawiając rozwiązanie krok po kroku, na początku zostaną przedstawione aspekty technologiczne wykorzystywane w aplikacji, następnie architektura oraz komponenty i funkcje zaimplementowane w ramach projektu. W ostatnim rozdziale omówiono szczegółowe wymagania dotyczące interfejsu programu klasyfikacji, który jest podłączany do systemu testującego. 5.1 Technologia W zaimplementowanym programie wykorzystano następujące technologie: Glassfish [22], Java Persistence API, MySQL [23], JavaServer Faces z rozszerzeniem Primefaces, Maven [24], Enterprise JavaBeans, Context and Dependency Injection. Glassfish Jest to serwer aplikacji biznesowych umożliwiający proste udostępnianie i zarządzanie aplikacjami utworzonych przy użyciu technologii Java Enterprise. W projekcie skorzystano z wersji 4.* Java Persistence API Technologia stosowana w środowisku Java, w celach mapowania tabel w relacyjnych bazach danych na obiekty. W projekcie skorzystano z wersji 2.* MySQL Technologia bazodanowa zarządzająca bazą danych. Wszystkie dane dotyczące wyników klasyfikacji przetrzymywane są za pomocą tej technologii. W projekcie skorzystano z wersji 5.6.* 32 / 65
33 JavaServer Faces, Primefaces Za warstwę wizualną aplikacji odpowiedzialna jest technologia JavaServer Faces wraz z rozszerzeniem Primefaces. Jest to jedna z technologii wykorzystywanych i opisanych w specyfikacji w Javie Korporacyjnej (JEE). Głównym jej zadaniem jest mapowanie komponentów opisanych w plikach xhtml na pliki html obsługiwane przez przeglądarkę internetową. Maven Mechanizm służący do automatycznej budowy projektu. Upraszcza schemat zarządzania i uruchamiania projektu poprzez wygodny interfejs podłączania wtyczek, oraz umożliwia łatwy sposób instalowania zależności wykorzystywanych przy implementacji oraz uruchamiania programu. Enterprise JavaBeans, Context and Dependency Injection Kolejne technologie będące elementami specyfikacji JEE. Context and Dependency Injection (CDI) stosowane jest w celu poprawienia jakości kodu oraz rozdzielenia warstw aplikacji Opis zależności pomiędzy technologiami Klient internetowy Serwer Java EE Warstwa prezentacji Komponenty JavaBeans Strony internetowe, serwlety Warstwa biznesowa Komponenty JavaBeans Serwer bazodanowy Diagram 2: Warstwy aplikacji wraz z wyszczególnionymi technologiami Powyższy rysunek obrazuje kompozycję programu ze względu na zastosowane technologie w poszczególnych częściach aplikacji. Po kolei zostaną omówione poziomy aplikacji oraz cel i sposób zastosowania poszczególnych technologii, opisanych w poprzednim podpunkcie. Klient internetowy Składa się głównie z dwóch elementów: dynamicznych stron internetowych generowanych przez komponenty serwera Java EE, 33 / 65
34 przeglądarki internetowej. Powszechnie stosowana jest nazwa cienki klient. Cechą takich aplikacji jest brak bezpośredniej komunikacji z bazą danych, brak złożonych mechanizmów logiki biznesowej. Cała gama operacji wymagających zastosowania złożonych mechanizmów przeniesiona jest na stronę serwera. Taki schemat umożliwia łatwiejszą optymalizację oraz większe bezpieczeństwo. Serwer Java EE Serwer ze względu na technologie można podzielić na dwie kategorie: warstwa prezentacji (fasada, ang. front-end) oraz biznesową (wnętrze, ang. back-end). W celu utworzenia stron zastosowano technologię JavaServer Faces z rozszerzeniem Primefaces. Do walidacji i obsługi poprawności danych zastosowano mechanizmy CDI, które będąc lekkimi obiektami klas wywołują obiekty implementujące logikę, zawartą w kolejnej warstwie. Zamodelowano ją przy pomocy, podobnie jak w przypadku walidacji, mechanizmu CDI oraz w niektórych przypadkach EJB. Do komunikacji z bazą danych zastosowano technologię Java Persistence API. Serwer bazodanowy Baza danych, z którą komunikuje się aplikacja utworzona w ramach tej pracy została utworzona w technologii MySQL. 5.2 Architektura Diagram 3: Diagram komponentów aplikacji Powyższy diagram przedstawia ogólną strukturę programu. Odpowiednio analizując diagram od 34 / 65
35 lewej do prawej strony oznaczone zostały elementy warstwy prezentacji, warstwy logiki biznesowej oraz bazy danych i plików Warstwa prezentacji Raporty Komponent odpowiedzialny za zarządzanie z poziomu użytkownika raportami. Umożliwia wczytanie z bazy danych wszystkich zapisanych raportów, ich wizualne przedstawienie oraz pobranie raportów w postaci pliku tekstowego. Zawiera zdefiniowane tabele oraz wykresy, które przedstawiają wyniki wybranych i wykonanych testów. Przy wczytywaniu wykonywane są obliczenia miar, które następnie podobnie jak same dane zawarte w bazie są wizualizowane w formie wykresów i tabel. Testy Umożliwia uruchomienie i przeprowadzenie testu klasyfikacji. Poprzez komunikację z Menadżerem testów przekazuje argumenty wywołania programu oraz pobiera wynik zwrócony przez program. Wyświetla również strumień wyjściowy wywołanego programu. Podobnie jak w przypadku Raportów dane są wyświetlanie w formie tabeli oraz wykresu. Test nie może zostać uruchomiony jeżeli Menadżer systemu klasyfikacji nie będzie posiadał informacji o podłączonym programie. Po wykonaniu udanego testu, możliwy jest zapis otrzymanych wyników do bazy danych, wprowadzając wcześniej ich nazwę. Ustawienia Element odpowiedzialny za wyświetlanie możliwych programów klasyfikacji oraz podłączenie jednego, wybranego z nich. Wykorzystuje interfejs udostępniany przez Menadżer programu klasyfikacji. Po wczytaniu listy i wybraniu jednej z pozycji następuje poinformowanie użytkownika o zmianie obsługiwanego programu. Zbiory danych Komponent, którego celem jest zarządzanie zbiorem danych. Możliwe są następujące czynności: zapisanie lub wczytanie pliku zawierającego zbiory danych, eksport zbiorów danych do systemu klasyfikacji, dodawanie lub usuwanie elementów Warstwa logiki Generator raportów Jego głównym zadaniem jest tworzenie na podstawie zawartych w bazie danych informacji raportu dotyczącego wybranych wyników testowych. Po utworzeniu raportu możliwe jest jego ściągnięcie i zapisanie. Menadżer programu klasyfikacji Głównie pełni dwie funkcje: 35 / 65
36 zarządzanie wczytywaniem systemu (wyświetlanie możliwych systemów do podłączenia i wczytywanie wybranego), udostępnianie informacji dotyczących konfiguracji systemu zawartych w pliku konfiguracyjnym. W procesie instalacji programu, użytkownik definiuje miejsce na dysku, z którego wczytywane zostaną możliwe programy. Następnie wszystkie pliki o rozszerzeniu jar z podanego katalogu zostają dodane jako możliwe do wczytania. Wczytanie programu oznacza zaimportowanie dynamiczne klasy znajdującej się w określonym pakiecie oraz utworzenie dynamiczne obiektu tej klasy. Zasady podłączenia programów zostały umieszczone w rozdziale 5.4. Udostępnianie konfiguracji nie jest elementem koniecznym do spójnego działania systemu. Menadżer testów Pełni rolę zapisywania oraz przeprowadzania testów. Korzystając z wcześniej wczytanego obiektu klasyfikatora, wywołuje metodę process z określonym argumentami umożliwiającą przeprowadzenie testów. Następnie wczytuje dane oraz udostępnia je warstwie prezentacji. W przypadku wybrania zapisu, komunikuje się z komponentem odpowiedzialnym za dostęp do bazy danych. Dostęp do bazy danych Umożliwia wykonywanie operacji wczytywania testów oraz zapisu. Korzysta z obiektów reprezentujących encje z bazy danych. Kalkulator miar Po wczytaniu elementów z baz danych konieczna jest interpretacja wyników. W tym celu komponent kalkulator miar tworzy obiekty reprezentujące ocenione według miar wyniki i udostępnia ich wartości. W ten sposób uzyskane dodatkowe informacje rozszerzają dane pobrane z bazy danych. Menadżer zbioru danych Komponent odpowiedzialny za wykonywanie operacji zapisu, wczytywania, eksportu oraz modyfikacji zbiorów testowych Baza danych i plików Baza danych Zawiera informacje o przeprowadzonych testach. Program klasyfikacji Zawiera listę programów wykorzystywanych przez aplikację internetową. Każdy z tych programów powinien mieć ustandaryzowany interfejs umożliwiający wywołanie programu. Więcej w rozdziale / 65
37 Konfiguracja systemu Plik zawierający istotne informacje do eksportu zbioru danych oraz argumentów programu. Nie jest obligatoryjną częścią systemu. System plików Ogólnie rozumiana przestrzeń pamięci dyskowej komputera. Stosowana w kontekście zapisu i wczytywania plików wybranych przez użytkownika oraz struktury katalogowej przygotowanej do eksportu zbioru danych. 5.3 Funkcje programu W tym rozdziale zostały omówione główne zaimplementowane funkcje systemu w ramach projektu aplikacji internetowej. Do każdego opisu dołączono zdjęcia przedstawiające prezentację i realizację w kontekście samej aplikacji. Pod koniec, w niektórych przypadkach, dodano również krótką informację, w jaki sposób można odtworzyć podaną funkcję Przeprowadzanie testów Główna funkcja realizuje przebieg przeprowadzania testów klasyfikacji. Istnieją dwie metody wywołania programu podłączonego jako system klasyfikacji: 1. Poprzez wywołanie z konsoli: Ilustracja 1: Wywołanie programu klasyfikacji przez podanie argumentów. 2. Poprzez pregenerowaną formatkę: Ilustracja 2: Wywołanie programu klasyfikacji przez formatkę. Pierwszy punkt to nic innego, jak wywołanie programu poprzez wprowadzenie w odpowiedniej kontrolce argumentów wywołania programu. Drugi punkt jest nieco bardziej skomplikowany. W momencie wczytania systemu klasyfikacji (pliku o rozszerzeniu jar) aplikacja wyszukuje plik o wczytanej nazwie, ale rozszerzeniu xml. Ten plik konfiguruje dwa elementy: format wczytywania danych, ścieżka eksportu zbiorów danych. Plik konfiguracyjny format wczytywania danych W tym punkcie omówimy pierwszy przypadek, konfigurację wczytywania danych. Każdy z argumentów posiada przypisane do niego zapytanie (węzeł question) oraz priorytet (węzeł 37 / 65
38 priority), opisujący miejsce znajdowania się argumentu. Istnieją dwa typy argumentów: enumeryczny (zapisywany jako węzeł list) oraz numeryczny (zapisywany jako węzeł numeric). Węzeł enumeryczny reprezentowany jest jako lista z możliwością wyboru jednego argumentu. Węzeł values zawiera wszystkie możliwe wartości tego argumentu (odpowiednio pojedyncza wartość to węzeł value). Poniżej zamieszczono przykład opisu argumentu w pliku oraz jego wygląd w programie: <list> <question> Typ stron internetowych </question> <values> <value>univ</value> <value>home</value> </values> <priority>1</priority> </list> Przykład 1: Definicja węzła enumerycznego Ilustracja 3: Wygląd węzła enumerycznego w aplikacji Węzeł numeryczny reprezentowany jest jako pole, w którym można wprowadzić liczbę. Węzły min oraz max opisują minimalną oraz maksymalną możliwą do wprowadzenia wartość. Przykład opisu argumentu: 38 / 65
39 <numeric> <question> Ilosc przykladow pozytywnych i negatywnych </question> <min>0</min> <max>500</max> <priority>2</priority> </numeric> Przykład 2: Definicja węzła numerycznego Ilustracja 4: Wygląd węzła numerycznego w aplikacji Opis przeprowadzania testów Wybieramy zakładkę Testy, w której wprowadzamy odpowiednie wartości wywołania w podany poprzednio sposób. Następnie wybieramy opcję Zatwierdź. Wyniki przeprowadzenia testu zostają przedstawiane w formie tabelarycznej oraz wykresu Prezentacja wyników przeprowadzonego testu Prezentacja wyników dotyczy zakładek Testy oraz Raporty. W przypadku pierwszej zakładki, aplikacja po przeprowadzeniu testów wyświetla wynik, uwzględniając różne wybrane tryby (w poniższych wynikach tryby utożsamiane są z reprezentacją danych w klasyfikatorach). W zakładce Raporty dla wybranych zapisanych wyników w bazie danych, wyświetlane są informacje dotyczące obliczonych metryk oraz danych. Wykres kołowy danych dla przeprowadzonego testu 39 / 65
40 Ilustracja 5: Wykres kołowy testu klasyfikatora Bayes dla reprezentacji częstotliwościowej. Za pomocą strzałek można zmieniać wyświetlany tryb. Diagram prezentuje procent zakwalifikowanych poprawnie oraz niepoprawnie obserwacji pozytywnych, negatywnych oraz wszystkich. Dodatkowo uwzględniane są przypadki niezaklasyfikowane. Tabela danych dla przeprowadzonego testu Ilustracja 6: Tabela danych klasyfikatora Bayes dla reprezentacji binarnej. Podobnie jak dla ilustracji 5 zawiera dane klasyfikacji, tym razem w formie wykresu. Zostały 40 / 65
41 dodane dane dotyczące liczebności (mocy) zbioru oraz liczby pozytywnie i negatywnie zaklasyfikowanych przykładów. Tabela danych wybranych zapisanych przeprowadzonych testów Ilustracja 7: Tabela danych dla wybranych wyników klasyfikacji. Przedstawia ilość sklasyfikowanych danych, korzystając z nazewnictwa przedstawionego w rozdziale Tabela miar wybranych przeprowadzonych testów Ilustracja 8: Tabela miar dla wybranych wyników klasyfikacji. Korzysta z miar z rozdziału Diagram miar wybranych przeprowadzonych testów Ilustracja 9: Diagram miar dla wybranych wyników klasyfikacji Zapis wyniku testu do bazy danych Po przeprowadzeniu testu otrzymujemy wyniki, które następnie mogą zostać zapisane do bazy danych. Sam zapis jest potwierdzany po przeprowadzeniu testu w zakładce Testy poprzez wybranie opcji Zapisz dane. Następnie zapisane uprzednio wyniki możemy przejrzeć po 41 / 65
42 wybraniu opcji z menu Raporty Generowanie i zapis raportu z testów Po wybraniu opcji Raporty i zaznaczeniu odpowiednich wyników testów, istnieje możliwość wygenerowania pliku w formacie txt zawierającego informacje o przeprowadzonych testach. Oto wygląd przykładowego raportu testowego. testtest2 TF Data: True Positive - 259, False Positive - 7, True Negative - 222, False Negative - 12, Not Classified Positive - 0, Not Classifeid Negative - 0, Measures: Accuracy , Precision , Sensitivity , F-measure , Przykład 3: Przykładowy raport z klasyfikacji Wczytywanie programu klasyfikacji Po wybraniu z menu opcji Ustawienia istnieje możliwość zaimportowania odpowiedniego pliku o rozszerzeniu jar. Po kliknięciu Wczytaj listę programów klasyfikacji następuje aktualizacja listy systemów klasyfikacji możliwych do zaimportowania. W pliku resources.properties zawarta jest lokalizacja folderu, z którego aktualizowane są systemy klasyfikacji. Po wybraniu z wyświetlonej listy jednego elementu oraz kliknięcie przycisku Zatwierdź program, zostaje wykonany import programu do systemu Modyfikacja oraz eksport zbioru przypadków testowych W zakładce Zbiory danych istnieje możliwość modyfikacji zbioru danych testowych. W lewej kolumnie zawarte są pozytywne przykłady testowe, w prawej zaś negatywne. Dodawanie przypadku testowego Wprowadzając wartość elementu w pole i wybierając odpowiednio opcje Dodaj do zbioru pozytywnego lub Dodaj do zbioru negatywnego dodajemy wpisaną wartość do zbiorów przypadków odpowiednio pozytywnych lub negatywnych. Ilustracja 10: Wprowadzanie wartości do zbioru testowego. 42 / 65
43 Usuwanie przypadku testowego Przy każdej liście przypadków testowych umieszczono pole wyboru, które można zaznaczyć. Każdy element zaznaczony w ten sposób zostaje usunięty po wybraniu przycisku Usuń zaznaczone. Ilustracja 11: Usuwanie elementów ze zbioru przypadków testowych. Eksport przypadków testowych Wybranie przycisku Eksportuj do programu powoduje wyeksportowanie zbioru danych do programu zgodnie z konfiguracją zamieszczoną w pliku xml importowanym przy wczytywaniu systemu klasyfikacji. Plik konfiguracyjny ścieżka eksportu zbiorów danych opcja 1 pozytywne ścieżka opcja 2 negatywne opcja n-ta Diagram 4: Struktura plików zawierających dane zbiorów testowych 43 / 65
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)
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
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
Systemy uczące się wykład 2
Systemy uczące się wykład 2 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 19 X 2018 Podstawowe definicje Fakt; Przesłanka; Konkluzja; Reguła; Wnioskowanie. Typy wnioskowania
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
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
Optymalizacja systemów
Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji
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ą
IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ
IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ Celem ćwiczenia jest zapoznanie się ze sposobem działania sieci neuronowych typu MLP (multi-layer perceptron) uczonych nadzorowaną (z nauczycielem,
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
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
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
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
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ą
Prawdopodobieństwo czerwonych = = 0.33
Temat zajęć: Naiwny klasyfikator Bayesa a algorytm KNN Część I: Naiwny klasyfikator Bayesa Naiwny klasyfikator bayerowski jest prostym probabilistycznym klasyfikatorem. Naiwne klasyfikatory bayesowskie
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
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
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ą
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
ALGORYTMY SZTUCZNEJ INTELIGENCJI
ALGORYTMY SZTUCZNEJ INTELIGENCJI Sieci neuronowe 06.12.2014 Krzysztof Salamon 1 Wstęp Sprawozdanie to dotyczy ćwiczeń z zakresu sieci neuronowych realizowanym na przedmiocie: Algorytmy Sztucznej Inteligencji.
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
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:
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się algorytmem gradientu prostego
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,
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
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
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
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
1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie
Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest
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
Wprowadzenie do uczenia maszynowego
Wprowadzenie do uczenia maszynowego Agnieszka Ławrynowicz 12 stycznia 2017 Co to jest uczenie maszynowe? dziedzina nauki, która zajmuje się sprawianiem aby komputery mogły uczyć się bez ich zaprogramowania
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
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
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
Programowanie celowe #1
Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem
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
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ą
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
Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS
Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS Dyskretyzacja - definicja Dyskretyzacja - zamiana atrybutów
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,
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
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
WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą
1. Statystyka odczytać informacje z tabeli odczytać informacje z diagramu 2. Mnożenie i dzielenie potęg o tych samych podstawach 3. Mnożenie i dzielenie potęg o tych samych wykładnikach 4. Potęga o wykładniku
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
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
Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów
Rozdział : Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów W tym rozdziale omówione zostaną dwie najpopularniejsze metody estymacji parametrów w ekonometrycznych modelach nieliniowych,
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
Priorytetyzacja przypadków testowych za pomocą macierzy
Priorytetyzacja przypadków testowych za pomocą macierzy W niniejszym artykule przedstawiony został problem przyporządkowania priorytetów do przypadków testowych przed rozpoczęciem testów oprogramowania.
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta
Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta www.michalbereta.pl Sieci radialne zawsze posiadają jedną warstwę ukrytą, która składa się z neuronów radialnych. Warstwa wyjściowa składa
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)
Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Klasyfikacja i predykcja. Odkrywaniem reguł klasyfikacji nazywamy proces znajdowania
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
Sposoby prezentacji problemów w statystyce
S t r o n a 1 Dr Anna Rybak Instytut Informatyki Uniwersytet w Białymstoku Sposoby prezentacji problemów w statystyce Wprowadzenie W artykule zostaną zaprezentowane podstawowe zagadnienia z zakresu statystyki
Rozpoznawanie obrazów
Rozpoznawanie obrazów Ćwiczenia lista zadań nr 7 autorzy: A. Gonczarek, J.M. Tomczak Przykładowe problemy Klasyfikacja binarna Dla obrazu x zaproponowano dwie cechy φ(x) = (φ 1 (x) φ 2 (x)) T. Na obrazie
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,
Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
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
Rozpoznawanie obrazów
Rozpoznawanie obrazów Laboratorium Python Zadanie nr 2 κ-nn i Naive Bayes autorzy: M. Zięba, J.M. Tomczak, A. Gonczarek, S. Zaręba, J. Kaczmar Cel zadania Celem zadania jest implementacja klasyfikatorów
Zadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
Elementy Modelowania Matematycznego
Elementy Modelowania Matematycznego Wykład 8 Programowanie nieliniowe Spis treści Programowanie nieliniowe Zadanie programowania nieliniowego Zadanie programowania nieliniowego jest identyczne jak dla
Testowanie hipotez statystycznych. Wnioskowanie statystyczne
Testowanie hipotez statystycznych Wnioskowanie statystyczne Hipoteza statystyczna to dowolne przypuszczenie co do rozkładu populacji generalnej (jego postaci funkcyjnej lub wartości parametrów). Hipotezy
9. Praktyczna ocena jakości klasyfikacji
Algorytmy rozpoznawania obrazów 9. Praktyczna ocena jakości klasyfikacji dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Zbiór uczacy i zbiór testowy 1. Zbiór uczacy służy do konstrukcji (treningu)
Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie
Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza
4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 κ-nn i Naive Bayes autorzy: M. Zięba, J.M. Tomczak, A. Gonczarek, S. Zaręba Cel zadania Celem zadania jest implementacja klasyfikatorów
Usługi analityczne budowa kostki analitycznej Część pierwsza.
Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
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
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 -
Wprowadzenie do analizy korelacji i regresji
Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących
Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań
TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:
Weryfikacja hipotez statystycznych
Weryfikacja hipotez statystycznych Hipoteza Test statystyczny Poziom istotności Testy jednostronne i dwustronne Testowanie równości wariancji test F-Fishera Testowanie równości wartości średnich test t-studenta
Testowanie modeli predykcyjnych
Testowanie modeli predykcyjnych Wstęp Podczas budowy modelu, którego celem jest przewidywanie pewnych wartości na podstawie zbioru danych uczących poważnym problemem jest ocena jakości uczenia i zdolności
METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH
METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH Jednym z zastosowań metod numerycznych jest wyznaczenie pierwiastka lub pierwiastków równania nieliniowego. W tym celu stosuje się szereg metod obliczeniowych np:
Eksploracja danych. Grupowanie. Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne. Grupowanie wykład 1
Grupowanie Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne Grupowanie wykład 1 Sformułowanie problemu Dany jest zbiór obiektów (rekordów). Znajdź naturalne pogrupowanie
Webowy generator wykresów wykorzystujący program gnuplot
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący
Całka nieoznaczona, podstawowe wiadomości
Całka nieoznaczona, podstawowe wiadomości Funkcją pierwotną funkcji w przedziale nazywamy funkcję taką, że dla każdego punktu z tego przedziału zachodzi Różnica dwóch funkcji pierwotnych w przedziale danej
SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H
W O J S K O W A A K A D E M I A T E C H N I C Z N A W Y D Z I A Ł E L E K T R O N I K I Drukować dwustronnie P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H Grupa... Data wykonania
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
Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne)
Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne) Przygotował: Dr inż. Wojciech Artichowicz Katedra Hydrotechniki PG Zima 2014/15 1 TABLICE ROZKŁADÓW... 3 ROZKŁAD
SZTUCZNA INTELIGENCJA
SZTUCZNA INTELIGENCJA WYKŁAD 10. WNIOSKOWANIE W LOGICE ROZMYTEJ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska WNIOSKOWANIE W LOGICE DWUWARTOŚCIOWEJ W logice
Przykład eksploracji danych o naturze statystycznej Próba 1 wartości zmiennej losowej odległość
Dwie metody Klasyczna metoda histogramu jako narzędzie do postawienia hipotezy, jaki rozkład prawdopodobieństwa pasuje do danych Indukcja drzewa decyzyjnego jako metoda wykrycia klasyfikatora ukrytego
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.
Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Definicje i przykłady
Rozdział 1 Definicje i przykłady 1.1 Definicja równania różniczkowego 1.1 DEFINICJA. Równaniem różniczkowym zwyczajnym rzędu n nazywamy równanie F (t, x, ẋ, ẍ,..., x (n) ) = 0. (1.1) W równaniu tym t jest
Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy
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
ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.
ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. LICZBA TEMAT GODZIN LEKCYJNYCH Potęgi, pierwiastki i logarytmy (8 h) Potęgi 3 Pierwiastki 3 Potęgi o wykładnikach
Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego
Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego WMS, 2019 1 Wstęp Niniejszy dokument ma na celu prezentację w teorii i na przykładach rozwiązywania szczególnych typów równań
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
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
INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH
INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH 1. Czym jest eksploracja danych Eksploracja danych definiowana jest jako zbiór technik odkrywania nietrywialnych zależności i schematów w dużych
WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH
WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH Marzena Zbrożyna DOPUSZCZAJĄCY: Uczeń potrafi: odczytać informacje z tabeli odczytać informacje z diagramu
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Klasyfikacja wyników wyszukiwania zasobów internetowych
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
wiedzy Sieci neuronowe
Metody detekcji uszkodzeń oparte na wiedzy Sieci neuronowe Instytut Sterowania i Systemów Informatycznych Universytet Zielonogórski Wykład 7 Wprowadzenie Okres kształtowania się teorii sztucznych sieci
Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0
Uczenie się pojedynczego neuronu W0 X0=1 W1 x1 W2 s f y x2 Wp xp p x i w i=x w+wo i=0 Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z=0 Wówczas: W 1 x 1 + w 2 x 2 + = 0 Algorytm