Testowanie modeli predykcyjnych



Podobne dokumenty
Jakość uczenia i generalizacja

Elementy modelowania matematycznego

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej

ALGORYTM RANDOM FOREST


METODY INŻYNIERII WIEDZY

Stan dotychczasowy. OCENA KLASYFIKACJI w diagnostyce. Metody 6/10/2013. Weryfikacja. Testowanie skuteczności metody uczenia Weryfikacja prosta

Eksploracja danych OCENA KLASYFIKATORÓW. Wojciech Waloszek. Teresa Zawadzka.

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

Wprowadzenie do programu RapidMiner Studio 7.6, część 4 Michał Bereta

Automatyczne wyodrębnianie reguł

Projekt Sieci neuronowe

Sieci neuronowe w Statistica

Algorytm grupowania danych typu kwantyzacji wektorów

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

9. Praktyczna ocena jakości klasyfikacji

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

WYKŁAD 7. Testowanie jakości modeli klasyfikacyjnych metodyka i kryteria

Klasyfikacja LDA + walidacja

Laboratorium 4. Naiwny klasyfikator Bayesa.

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

Klasyfikacja i regresja Wstęp do środowiska Weka

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Zastosowania sieci neuronowych

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Porównanie systemów automatycznej generacji reguł działających w oparciu o algorytm sekwencyjnego pokrywania oraz drzewa decyzji

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

System wizyjny OMRON Xpectia FZx

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Laboratorium 6. Indukcja drzew decyzyjnych.

Zadania ze statystyki cz. 8 I rok socjologii. Zadanie 1.

Optymalizacja ciągła

Specyfikacja przypadków i scenariuszy testowych

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

Definicje. Algorytm to:

Wstęp do sieci neuronowych, wykład 13-14, Walidacja jakości uczenia. Metody statystyczne.

5 Błąd średniokwadratowy i obciążenie

Dokumentacja Końcowa

Wybór modelu i ocena jakości klasyfikatora

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

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

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

Ćwiczenie 12. Metody eksploracji danych

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

Zadania ze statystyki cz.8. Zadanie 1.

ESTYMACJA BŁĘDU PREDYKCJI I JEJ ZASTOSOWANIA

Wprowadzenie do uczenia maszynowego

Wstęp do sieci neuronowych, wykład 09, Walidacja jakości uczenia. Metody statystyczne.

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

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

2.2 Opis części programowej

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

Temat: Sieci neuronowe oraz technologia CUDA

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Wybór / ocena atrybutów na podstawie oceny jakości działania wybranego klasyfikatora.

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

Optymalizacja systemów

Algorytm grupowania danych typu kwantyzacji wektorów

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Wprowadzenie do klasyfikacji

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

SubSyncEU integracja danych Subiekt GT + Sfera/ Nexo PRO Easy Uploader Instrukcja obsługi

Drzewa decyzyjne w SAS Enterprise Miner

SYSTEMY UCZĄCE SIĘ WYKŁAD 3. DRZEWA DECYZYJNE. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Katedra Zarządzania i Informatyki Politechnika Śląska

I EKSPLORACJA DANYCH

Agnieszka Nowak Brzezińska Wykład III

Oracle Application Express

Rachunek prawdopodobieństwa

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Wprowadzenie. Data Science Uczenie się pod nadzorem

Technologia informacyjna Algorytm Janusz Uriasz

SZTUCZNA INTELIGENCJA

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

TEST BETA PAMIĘCI PODRĘCZNEJ USB W APLIKACJI PRZYSPIESZ KOMPUTER - INSTRUKCJA

Rozpoznawanie obrazów

Testowanie hipotez statystycznych.

pomocą programu WinRar.

Metody systemowe i decyzyjne w informatyce

Przepustowość kanału, odczytywanie wiadomości z kanału, poprawa wydajności kanału.

WYZNACZANIE PRZEMIESZCZEŃ SOLDIS

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

CoDeSys 3 programowanie w języku drabinkowym LD

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Agnieszka Nowak Brzezińska Wykład III

Metody systemowe i decyzyjne w informatyce

Ćwiczenie 4 Badanie uogólnionego przetwornika pomiarowego

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

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

Jak sprawdzić normalność rozkładu w teście dla prób zależnych?

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym, kontynuacja badań

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

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

SYSTEM INFORMATYCZNY KS-SEW

Podstawy Sztucznej Inteligencji

Transkrypt:

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 poprawnego przewidywania. Częstym błędem osób początkujących w zakresie analizy danych jest przeprowadzanie testów na tym samym zbiorze na którym system był uczony: Takie rozwiązanie nie jest poprawnym miernikiem jakości nauczonego modelu i prowadzi do wyników które są przeszacowane, czyli nadmiernie optymistyczne. Ponieważ zwykle głównym celem budowy modeli predykcyjnych jest późniejsze wykorzystanie przewidywań modelu na danych niedostępnych podczas procesu uczenia więc opracowano szereg metod pozwalających na znacznie bardziej uczciwy pomiar dokładności. W większości książek poświęconych tematyce sztucznych sieci neuronowych najczęściej spotykanym rozwiązaniem jest podział zbioru dany na dwa niezależne podzbiory tzw. uczący i testowy. Taki podział zwykle realizowany jest w stosunku 70% przypadków to część ucząca zbioru, oraz 30% stanowiąca część testową. Idea oceny modelu lub doboru odpowiednich parametrów modelu sprowadza się wówczas do nauczenia modelu na części uczącej oraz przetestowania go na części testowej, która nie była wykorzystywana w procesie uczenia modelu. Dzieki wydzieleniu dwóch niezależnych podzbiorów wektory części testowej zawierają informację o faktycznym wyniku jaki powinien zostać osiągnięty, natomiast nauczony (na części uczącej zbioru) model dostarcza wyników przewidywań. Taka para pozwala na wyznaczenie odpowiednich wartości oceny typu błąd średniokwadratowy dla modeli regresyjnych lub dokładność klasyfikacji dla modeli klasyfikacyjnych.

W środowisku RapidMiner sprowadza się to do wykorzystania operatora Evaluation/Validation/SplitValidation. Operator SplitValidation sam dokonuje podziału zbioru danych treningowych na dwa podzbiory (losowanie jest bez zwracania) a następnie w wykorzystuje część treningową zbioru do nauczenia modelu. Nauczony model w kolejnym kroku przekazywany jest do części w której następuje testowanie. W części tej na wejście modelu przekazywane są dane testowe dla których dokonywana jest predykcja wartości. Ostatni krok to policzenie dokładności i zwrócenie jej na wyjście całego systemu. Można to zrealizować zgodnie z poniższym schematem: Wstaw operator wczytujący zbiór danych zawierający etykiety (jedną ze zmiennych zdefiniowaną jako label), a następnie dodaj operator: Evaluation/Validation/SplitValidation Na jego wejście podłącz wczytany zbiór danych, jak przedstawia to poniższy rysunek: Wyjścia operatora Validation to: mod model uzywany do uczenia, nauczony na całym zbiorze danych, tra zbiór treningowy (całość przepisanie wejścia na wyjście), ave średnia dokładność uzyskanych wyników. Wyjście ave zwykle podłączamy jako wyjście całości systemu tak aby wyświetliło się w zakładce Results. W następnym kroku, aby zdefiniować proces uczenia oraz testowania należy dwukrotnie kliknąć w ikonę Validation, co spowoduje otwarcie procesu walidacji. Wówczas wewnątrz tworzymy proces treningu i testowania, jak na przykładowym rysunku:

Wyjść z powyższego okna można klikając w miejsca oznaczone czerwoną strzałką. Na powyższym rysunku wyjście tra oznacza port dostarczający zbioru uczącego. W sekcji Treningowej odpowiednio wyjście mod oznacza miejsce dostarczenia nauczonego modelu. W części testowej widnieją dwa główne porty wejściowe mod oraz tes. Pierwsze zawiera nauczony model (istnieje bezpośredni link pomiędzy obydwoma wejściami/wyjściami typu mod), natomiast wejście tes to zbiór danych testowych. Połączenia w części testowej realizujemy tak samo jak w przypadku nie wykorzystywania testu walidacyjnego. Wyznaczoną dokładność podajemy na wyjście ave. Alternatywą dla podziału trening/test jest powtórzenie tego podziału wielokrotnie, jednak zawsze tak aby część testowa nigdy się nie powtórzyła. Celem tego testu (tzw. testu krzyżowego lub cross- Validation) jest redukcja wpływu losowości na uzyskane wyniki pomiarów. Podział na część treningową i testową przedstawia poniższy rysunek: gdzie cały zbiór danych został podzielony na 5 równych części (oczywiście części są równe w ramach możliwości). Następnie proces uczenia i testowania modelu uruchamiany jest tyle razy ile różnych części wydzielono (tutaj 5 razy), a następnie dokładność obliczana jest jako średnie z pięciu różnych testów. Liczbę na jaką należy zbiór danych podzielić określa się w opcjach operatora testu krzyżowego. Aby zbudować wspomniany test należy powtórzyć operacje z poprzedniego przykładu z tą różnicą że tym razem wykorzystujemy operator Evaluation/Validation/X-Validation. Ostatnim z najczęściej stosowanych testów jest tzw. test bootstrap. Jego sposób działania zbliżony jest do testu krzyżowego, jednak z tą różnicą, iż tym razem proces losowania odbywa się ze zwracaniem, co powoduje że kilkukrotnie może zostać wylosowany ten sam wektor. Metoda ta została opracowana przez dwóch naukowców Efron a oraz Tibshiraniego. Jej głównym zastosowaniem jest analiza przypadków dla małych zbiorów danych, gdzie wielokrotne powtórzenie

tego samego wektora uczącego pozwala na sztuczne zwiększenie rozmiaru zbioru. Wyznaczenie odpowiedniej wartości wyjściowej odbywa się wg. Schematu: Mając zbiór X o M wektorach Ze zbioru danych X wylosuj ze zwracaniem M wektorów aby powstał zbiór R j Naucz model H j na zbiorze R j i wyznacz błąd modelu na tym zbiorze RE j Wyznacz błąd XE j modelu H j na całym zbiorze danych X Wyznacz optymizm opt j =XE j -Re j Powtórz kroki 1:4 J krotnie Wyznacz średni optymizm opt Wyznacz błąd na zbiorze uczącym E (trening modelu i jego testowanie odbywa się na zbiorze X) Na tej podstawie estymatę błędu generalizacji (e) wynosi e = E + opt Operatorem testowania realizującym opisany algorytm jest Evaluation/Validation/Bootstrapping Validation Ostatnim z typowych testów pozwalającym na oszacowanie dokładności jest test typu Jeden- Pozostaw. Test ten jest szczególnym przypadkiem testu krzyżowego, gdzie zbiór treningowy o n wektorach dzielony jest na n części uczących, tak aby zawsze jeden i tylko jeden wektor stanowił zbiór testowy. Zadania Zadaniem do realizacji jest ocena różnych testów spośród opisanych powyżej, tak aby wyznaczyć metodę testowania dokładności modelu charakteryzującą się największą poprawnością predykcji. W tym celu wczytaj zbiór danych SimpleTrening, a następnie stosując jako model uczący operator Naivnego-Bayesa (możesz go znaleźć w Modeling /Classification and Regression/Bayesian- Modeling/Naive-Bayes) dokonaj weryfikacji jakości uczenia starając się oszacować średni błąd klasyfikatora Naivnego Bayesa. 1) Zweryfikuj dokładność uczenia klasyfikatora Naivnego Bayesa stosując metodę podziału część ucząca/część testowa, zweryfikuj dokładność dla różnych wartości parametru Split ratio 2) Zweryfikuj dokładność uczenia klasyfikatora Naivnego Bayesa stosując metodę testu krzyżowego, zweryfikuj dokładność dla różnych wartości parametru number of validations 3) Zweryfikuj dokładność uczenia klasyfikatora Naivnego Bayesa stosując metodę testu typu bootstrap, zweryfikuj dokładność dla różnych wartości parametru number of validations 4) Zweryfikuj dokładność uczenia klasyfikatora Naivnego Bayesa stosując metodę testu jeden pozostaw, test ten można wykonać stosując operator Evaluation/Validation/X-Validation z zaznaczoną opcją leave one out

5) Dokonaj oszacowania prawdziwej jakości uczenia modelu Naivnego Bayesa poprzez nauczenie go na całym zbiorze SimpleTrain i przetestowaniu na zbiorze SimpleTest. Uzyskaną dokładność można uznać za prawdziwą (rzeczywistą) wartość dokładności jaką można uzyskać stosując dany model (tutaj Naivnego Bayesa) 6) Powtórz obliczenia dla różnych parametrów random seed i policz średnią z uzyskanych wyników (w celu ułatwienia pracy wykorzystaj operator loop-parameters(process Control/Loop/Loop Parameters) oraz log (Utility/Logging/log))