Klasyfikacja i regresja Wstęp do środowiska Weka



Podobne dokumenty
Ćwiczenie 6 - Hurtownie danych i metody eksploracje danych. Regresja logistyczna i jej zastosowanie

WEKA klasyfikacja z użyciem sztucznych sieci neuronowych

Ćwiczenie 12. Metody eksploracji danych

WEKA klasyfikacja z użyciem sztucznych sieci neuronowych

1 Wstęp. 2 Uruchomienie programu

Proces ETL MS SQL Server Integration Services (SSIS)

Testowanie modeli predykcyjnych

Laboratorium 11. Regresja SVM.

Kostki OLAP i język MDX

Laboratorium 4. Naiwny klasyfikator Bayesa.

Metody eksploracji danych Laboratorium 4. Klasyfikacja dokumentów tekstowych Naiwny model Bayesa Drzewa decyzyjne

r. Warszawa UCZENIE SIĘ MASZYN. Drzewa i lasy losowe Dokumentacja końcowa. Autor: Krzysztof Marcinek Prowadzący: Paweł Cichosz

Dokumentacja Końcowa

LeftHand Sp. z o. o.

METODY INŻYNIERII WIEDZY

ALGORYTM RANDOM FOREST

Problemy techniczne SQL Server

Problemy techniczne SQL Server

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

UONET+ - moduł Sekretariat

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

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX


INFORMATYKA W SELEKCJI

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Metody eksploracji danych Laboratorium 1. Weka + Python + regresja

Podręcznik użytkownika Konfiguracja Rejestracji Online

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

WEKA Waikato Environment for Knowledge Analysis

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

SYLABUS. Dotyczy cyklu kształcenia Realizacja w roku akademickim 2016/2017. Wydział Matematyczno - Przyrodniczy

EXCEL TABELE PRZESTAWNE

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Programowanie Obiektowe GUI

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

Instrukcja Szyfrowania / Deszyfracji plików programem 7-zip. v. 1.2

Elementy modelowania matematycznego

Wprowadzenie do klasyfikacji

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Laboratorium 6. Indukcja drzew decyzyjnych.

Agenda. WEKA - Explorer. WEKA właściwości produktu. dr inŝ. Jacek Grekow. WEKA: Pakiet programów do maszynowego uczenia Moduł Explorer Klasyfikacja

Instrukcja obsługi notowań koszykowych w M@klerPlus

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

Instrukcja laboratoryjna

Zaawansowane aplikacje WWW - laboratorium

Finanse VULCAN. Import planu finansowego z Sigmy

Płace VULCAN. Jak na podstawie wbudowanego szablonu utworzyć własny szablon wydruku seryjnego?

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

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

Problemy techniczne. Jak udostępnić dane na potrzeby wykonania usługi wdrożeniowej? Zabezpieczanie plików hasłem

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Informatyka I : Tworzenie projektu

Kadry VULCAN, Płace VULCAN

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Księgowość Optivum. Import planu finansowego wygenerowanego w Sigmie do programu Księgowość

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

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

SUBIEKT GT IMPORT XLS Dokumenty

Finanse VULCAN. Jak wprowadzić fakturę sprzedaży?

PODYPLOMOWE STUDIA ZAAWANSOWANE METODY ANALIZY DANYCH I DATA MINING W BIZNESIE

ING BusinessOnLine FAQ. systemu bankowości internetowej dla firm

1. INSTALACJA I URUCHOMIENIE KOMUNIKATORA

Backend Administratora

Program Import Kontrahentów XLS dla Subiekta GT.

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Zadanie 2. Tworzenie i zarządzanie niestandardową konsolą MMC

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Rejestr uczniów Optivum dla celów naboru do szkół ponadgimnazjalnych. Materiały pomocnicze

5.6.2 Laboratorium: Punkty przywracania

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety

5. Bazy danych Base Okno bazy danych

Systemy uczące się wykład 1

Tworzenie i wykorzystanie usług sieciowych

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Matury Optivum. Jak w roku szkolnym 2015/2016 zaimportować do programu deklaracje maturalne uczniów?

Przewodnik dla uczestników etapu RFI Przed wzięciem udziału w projekcie masz obowiązek zapoznać się i zaakceptować umowę z uczestnikiem przetargu.

1. Przekrój poprzeczny tranzystora nmos. Uzupełnij rysunek odpowiednimi nazwami domieszek (n lub p). S G D

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

Laboratorium 7 Blog: dodawanie i edycja wpisów

Przykład połączenie z bazą danych

Wczytywanie cenników z poziomu programu Norma EXPERT Tworzenie własnych cenników w programie Norma EXPERT... 4

Windows 10 - Jak uruchomić system w trybie

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

Laboratorium A: Zarządzanie drukowaniem/klucz do odpowiedzi

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Zaawansowane aplikacje internetowe laboratorium REST

Kombinacja jądrowych estymatorów gęstości w klasyfikacji wstępne wyniki

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Płace VULCAN. 2. W polu nad drzewem danych ustaw rok, za który chcesz utworzyć deklaracje.

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Instrukcja realizacji ćwiczenia

Sage Symfonia Start Faktura Instalacja programu

Transkrypt:

Klasyfikacja i regresja Wstęp do środowiska Weka 19 listopada 2015 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików pdf sformatowanych podobnie do tego dokumentu. Zadania będą różnego rodzaju. Za każdym razem będą one odpowiednio oznaczone: Zadania do wykonania na zajęciach oznaczone są symbolem nie są one punktowane, ale należy je wykonać w czasie zajęć. Punktowane zadania do wykonania na zajęciach oznaczone są symbolem należy je wykonać na zajęciach i zaprezentować prowadzącemu. Zadania do wykonania w domu oznaczone są symbolem są one punktowane, należy je dostarczyć w sposób podany przez prowadzącego i w wyznaczonym terminie (zwykle do dwóch dni przed kolejnymi zajęciami). 1

1 Naiwny klasyfikator bayesowski bonus 5p. Treść Zapoznaj się z poniższym zbiorem danych: dreszcze katar ból głowy gorączka grypa? tak nie średni tak nie tak tak nie nie tak tak nie duży tak tak nie tak średni tak tak nie nie nie nie nie nie tak duży tak tak nie tak duży nie nie tak tak średni tak tak Nowy pacjent pojawił się z następującymi objawami: dreszcze katar ból głowy gorączka grypa? nie tak nie tak? Jaką odpowiedź udzieli naiwny klasyfikator Bayesa dla nowego pacjenta? Przedstaw formalny zapis modelu naiwnego Bayesa dla tego zadania. Rozpisz prawdopodobieństwa warunkowe oraz regułę decyzyjną. Rozwiązanie Prawdopodobieństwa warunkowe dla grypa=tak: P (grypa = tak) = 0.625 P (dreszcze = tak grypa = tak) = 0.6 P (dreszcze = nie grypa = tak) = 0.4 P (katar = tak grypa = tak) = 0.8 P (katar = nie grypa = tak) = 0.2 P (bolgowy = sredni grypa = tak) = 0.4 P (bolgowy = nie grypa = tak) = 0.2 P (bolgowy = duzy grypa = tak) = 0.4 P (goraczka = tak grypa = tak) = 0.8 P (goraczka = nie grypa = tak) = 0.2 Prawdopodobieństwa warunkowe dla grypa=nie: P (grypa = nie) = 0.375 P (dreszcze = tak grypa = nie) = 0.333 2

P (dreszcze = nie grypa = nie) = 0.666 P (katar = tak grypa = nie) = 0.333 P (katar = nie grypa = nie) = 0.666 P (bolgowy = sredni grypa = nie) = 0.333 P (bolgowy = nie grypa = nie) = 0.333 P (bolgowy = duzy grypa = nie) = 0.333 P (goraczka = tak grypa = nie) = 0.333 P (goraczka = nie grypa = nie) = 0.666 Decyzja: P (grypa = tak dreszcze = tak katar = nie bolglowy = sredni goraczka = tak) 0, 7216 P (grypa = nie...) = 1 0, 7216 = 0, 2784 0.7216 > 0.2784 zatem odpowiedź brzmi TAK. 3

2 Format pliku wejściowego ARFF Treść Zapoznaj się z formatem pliku ARFF (ang. Attribute-Relation File Format): Format standardowy: % tresc komentarza @ relation nazwa_ zbioru @ attribute atrybut_ numeryczny numeric @ attribute atrybut_ nominalny { wartosc_1, wartosc_2, wartosc_3 }... @ attribute jakis_ atrybut_ n typ_ atrybutu @data wartosc_ atrybutu_ 1, wartosc_ atrybutu_ 2,..., wartosc_ atrybutu_ n wartosc_ atrybutu_ 1, wartosc_ atrybutu_ 2,..., wartosc_ atrybutu_ n... wartosc_ atrybutu_ 1, wartosc_ atrybutu_ 2,..., wartosc_ atrybutu_ n Format rzadki danych: { nr_ atrybutu wartosc, 3 Y, 4 " class A " } Wartości brakujące są oznaczane przez?. Rozwiązanie Zilustruj na swoim komputerze i krótko omów ten przykład. 4

3 Weka GUI Treść Wykonaj poniższe kroki w celu zapoznania się z interfejsem graficznym środowiska Weka: 1. Zapoznaj się ze stroną główną projektu Weka: http://www.cs.waikato.ac.nz/ml/weka/ 2. Pobierz i rozpakuj oprogramowanie Weka (w wersji 3.6.10): http://sourceforge.net/projects/weka/files/ 3. Uruchom interfejs graficzny Weka z pliku weka.jar, np. za pomocą polecenia konsoli: java -Xmx1G -jar weka.jar 4. W oknie Weka GUI Chooser wybierz Explorer i zapoznaj się z eksploratorem plików ARFF. 5

5. Otwórz plik grypa-train.arff i zapoznaj się z danymi. 6. Aby na wczytanych danych uruchomić eksperyment klasyfikacji, należy kliknąć zakładkę Classify. 7. Wybierz klasyfikator klikając przycisk Choose. W drzewku klasyfikatorów odszukaj i wybierz NaiveBayes. 8. Ustaw zbiór testowy grypa-test.arff. 9. Aby po wykonanych obliczeniach zobaczyć predykcje dla poszczególnych przykładów testowych kliknij More options i zaznacz Output predictions. 10. Uruchom eksperyment klikając Start. 11. W polu Classifier output odszukaj tabelę Predictions on test data. Przeanalizuj odpowiedź klasyfikatora. W jakim stopniu predykcja jest poprawna? Rozwiązanie Wykonać ćwiczenie razem ze studentami wykonując poszczególne kroki na swoim komputerze. 6

4 Weka API - wprowadzenie Treść Uruchom Eclipse (lub inne środowisko) i zaimportuj projekt weka-api-intro. Zapoznaj się z szablonem implementacji klasyfikatora. Poniżej znajduje się krótki opis najważniejszych elementów środowiska Weka Podstawowe klasy potrzebne do tworzenia własnych algorytmów uczących: Instances - klasa reprezentująca dane. Classifier - klasa abstrakcyjna klasyfikatora. Evaluation - klasa odpowiedzialna za przeprowadzenie testów i oceny klasyfikatora. Filter - klasa odpowiedzialna za przekształcenia zbioru danych, np., normalizację, usunięcie lub uzupełnienie wartości pustych, przekształcenie tekstu do danych wektorowych. Klasa Classifier posiada 3 podstawowe metody: buildclassifier realizuje proces uczenia z danych przekazanych jako parametr. distributionforinstance realizuje predykcję dla zadanego przykładu testowego. Zwraca tablicę z rozkładem prawdopodobieństwa dla klas, classifyinstance zwraca numer klasy dla zadanego przykładu testowego. Numer ten musi zostać dalej przekształcony w nazwę klasy. Metoda ta zazwyczaj korzysta z metody distributionforinstance. Podstawowe operacja w środowisku Weka: Wczytywanie danych w pliku: FileReader reader = new FileReader ( filename ); instances = new Instances ( reader ); instances. setclassindex ( instances. numattributes () - 1); Sczytanie liczby przykładów i atrybutów: int n = instances. numinstances (); int p = instances. numattributes (); Sczytanie wartości pierwszego przykładu na 4 atrybucie i zmniejszenie tej wartości o 1: 7

Instance instance = instances. instance (0) ; int value = instance. value (3) ; instance. setvalue (3, value - 1); Wartości klasy i indeks atrybutu decyzyjnego: int classvalue = instance. classvalue () ; int classindex = instances. classindex () ; Stworzenie zbioru danych: int numofattributes = 3; int numofinstances = 2; FastVector attributes = new FastVector ( numofattributes ); attributes. addelement ( new Attribute ("A1 ") ); attributes. addelement ( new Attribute ("A2 ") ); FastVector classes = new FastVector (2) ; classes. addelement (" neg "); classes. addelement (" pos "); attributes. addelement ( new Attribute ( ''class ", classes )); Instances instances = new Instances (" test - monotone ", attrs, numofinstances ) ; double [] dneg = {0, 1, 0}; Instance instanceneg = new Instance (1, dneg ); double [] dpos = {1, 2, 1}; Instance instancepos = new Instance (1, dpos ); instances. add ( instanceneg ); instances. add ( instancepos ); Dodawanie i usuwanie atrybutów: instances. deleteattributeat (1) ; instances. insertattributeat ( new Attribute (" last "),\\ instances. numattributes ()); Dodawanie i usuwanie przykładów: instances. delete (4) ; instances. add ( new Instance (1, new double [ instances. numattributes () ]) ; Sortowanie zbioru danych: instances. sort ( instances. classindex ()) ; Przetasowanie zbioru danych: instances. randomize (); Przepróbkowanie zbioru uczącego: instances. resample ( new Random (1) ) ; 8

Sklonowanie zbioru danych: Instances cloneofinstances = new Instances ( instances ); Uczenie klasyfikatora: Classifier classifier = new J48 (); classifier. buildclassifier ( instances ); Predykcja wartości i rozkładu prawdopodobieństwa: int predicted = classifier. classifyinstance ( instance ); double [] distribution = classifier. distributionforinstance ( instance ); Testowanie klasyfikatorów za pomocą 10-krotnej walidacji krzyżowej: int nfolds = 10; Evaluation evaluation = new Evaluation ( instances ); evaluation. crossvalidatemodel ( classifier, instances, nfolds, new Random ()) ; Wybór losowego podzbioru testowego: int numfolds = 3; int trainsize = instances. numinstances () /2; int testsize = instances. numinstances () - trainsize ; instances. randomize ( new Random ()); Instances training = new Instances ( instances, 0, trainsize ); Instances testing = new Instances ( instances, trainsize, testsize ) ; Filtrowanie danych - usunięcie brakujących danych: ReplaceMissingValues replace = new ReplaceMissingValues (); replace. setinputformat ( instances ) ; instances = Filter. usefilter ( instances, replace ) ; replace. input ( instance ) ; instance = replace. output (); Filtrowanie danych - selekcja danych: AttributeSelection selection = new AttributeSelection (); selection. setevaluator ( new InfoGainAttributeEval ()) ; selection. setsearch ( new Ranker ()) ; selection. SelectAttributes ( instances ) ; Instances reduced = selection. reducedimensionality ( instances ); int [] selected = selection. selectedattributes () ; 9