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

Podobne dokumenty
Testowanie modeli predykcyjnych


ALGORYTM RANDOM FOREST

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Algorytm grupowania danych typu kwantyzacji wektorów

Jakość uczenia i generalizacja

Optymalizacja systemów

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Optymalizacja systemów

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Przetwarzanie sygnałów

Podstawy Programowania C++

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Prof. Stanisław Jankowski

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Wprowadzenie do programu Mathcad 15 cz. 1

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

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

Programowanie dynamiczne

Optymalizacja systemów

MATLAB tworzenie własnych funkcji

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

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

Matlab Składnia + podstawy programowania

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

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

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

III TUTORIAL Z METOD OBLICZENIOWYCH

Technologia informacyjna Algorytm Janusz Uriasz

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

Podstawy MATLABA, cd.

Zastosowania sieci neuronowych

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Elementy metod numerycznych - zajęcia 9

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

9. Praktyczna ocena jakości klasyfikacji

Programowanie w języku Python. Grażyna Koba

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Aproksymacja funkcji a regresja symboliczna

Algorytm. a programowanie -

Matlab Składnia + podstawy programowania

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Matematyka grupa Uruchom arkusz kalkulacyjny. 2. Wprowadź do arkusza kalkulacyjnego wartości znajdujące się w kolumnach A i B.

Widzenie komputerowe (computer vision)

4. Funkcje. Przykłady

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Lekcja 5: Sieć Kohonena i sieć ART

Systemy uczące się Lab 4

Zapisywanie algorytmów w języku programowania

Pattern Classification

Technologie informacyjne - wykład 12 -

Metody numeryczne Laboratorium 2

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

do MATLABa programowanie WYKŁAD Piotr Ciskowski

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie

Złożoność obliczeniowa zadania, zestaw 2

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

ETAP I SZKOLNY. Czas rozwiązywania testu 30 minut. Za każdą poprawną odpowiedź otrzymujesz 1pkt. POWODZENIA!!

EGZAMIN MATURALNY 2012 INFORMATYKA

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Odczyt danych z klawiatury Operatory w Javie

METODY INŻYNIERII WIEDZY

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Rozdział 1 PROGRAMOWANIE LINIOWE

Metody systemowe i decyzyjne w informatyce

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

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

Programowanie komputerów

Algorytmy sztucznej inteligencji

Metody systemowe i decyzyjne w informatyce

Metody numeryczne Wykład 4

Metody systemowe i decyzyjne w informatyce

I. Podstawy języka C powtórka

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

REFERAT PRACY DYPLOMOWEJ

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Funkcje i instrukcje języka JavaScript

Podstawy programowania

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Elementy modelowania matematycznego

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Baza danych. Baza danych to:

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Transkrypt:

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej Podstawy matlaba cz.ii Funkcje Dotychczas kod zapisany w matlabie stanowił skrypt który pozwalał na określenie kolejności wykonywania operacji. Drugą o wiele bardziej użyteczną formą jest zapis fragmentów programu w postaci funkcji. Główną korzyścią z wykorzystania funkcji w matlabie jest możliwość wywoływania fragmentów kodu z różnymi zestawami parametrów. Innymi słowy pojęcie funkcji w matlabie jest tożsame z pojęciem funkcji w innych językach programowania. W matlabie funkcje definiowane są poprzez wpisanie na początku m-pliku słowa kluczowego function po którym w nawiasie kwadratowym występuje lista argumentów zwracanych, przez funkcję po czym pojawia się symbol =, następnie nazwa funkcji i w nawiasach typu () lista argumentów wejściowych, przykład: function [a,b] = policz(c,d,e,f) a = c+d+e+f; b = c.*d.*e.*f; Najprostszą metodą tworzenia funkcji jest na wstępie stworzenie skryptu, a następnie wpisanie na początku pliku słowa kluczowego function jak powyżej. Tworząc jednak funkcję niezbędne jest spełnienie kilku warunków: - nazwa pliku w którym zapisana jest funkcja musi być zgodna z nazwą funkcji. Jest tak gdyż Matlab wykorzystuje nazwę pliku do zidentyfikowania nazwy funkcji. Jeśli warunek ten nie będzie spełniony może to doprowadzić powstawania różnego rodzaju błędów. - nazwy plików nie mogą zawierać symboli specjalnych typu -,+,^, itp. Możliwe jest natomiast wykorzystanie symbolu podkreślenia _ Funkcje w matlabie posiadają kilka unikatowych cech - można je wywoływać z dowolną liczbą parametrów, innymi słowy jeśli funkcja jest poprawnie napisana to powyższą funkcję teoretycznie można wywołać jako [x,y] = policz(z) - możliwy jest odczyty dowolnej liczby parametrów zwracanych przez funkcję np. x = policz(a,b,c,d). Wówczas wartość b zwracana przez funkcję jest ignorowana. - funkcje w odróżnieniu od skryptów wykonują się znacznie szybciej, Tablice komórkowe Tablice komórkowe są specjalną postacią tablicy pozwalającą na przechowywanie elementów dowolnego typu. Tradycyjne tablice w matlabie przechowuje zmienne tego samego typu, powoduje to pewne komplikacje np. jeśli chcielibyśmy przechowywać stringi różnej długości np. polecenie: Z = [ Ala ; ma ; kota ] Zgłosi błąd o nie spójności wymiarów tablicy.

Dlatego w takich sytuacjach niezbędne jest skorzystanie z tablic komórkowych. Tablice komórkowe tworzy się poprzez zastąpienie symbolu [ ] symbolem { }. Tablice tego typu posiadają kilka istotnych wad np. nie można na nich wykonywać operacji arytmetycznych typu +,-,*,/ jak miało to miejsce w przypadku tradycyjnych tabeli. Przykładem wykorzystanie tablic komórkowych może być Z = {Ala ; ma ; kota } Wówczas interpreter matlaba nie zgłosi błędu i utworze cellarray o wymiarach size(z) => 3x1. Chcąc odczytać daną komórkę należy zapisać jako c = Z{2}, wówczas c przyjmie wartość ma. W podobny sposób można też zapisać do tablicy komórkowej macierze o różnym rozmiarze np.: C{1} = [1 2 3 4 5]; C{2} = [6;7;6]; C{3} = [1 2 3;4 5 6] Z tablic komórkowych istnieje też bezpośredni dostęp do poszczególnych elementów tablic składowych np. zapis: C{3}(2,3) zwróci liczbę 6 gdyż w tablicy o indeksie 3 odczytywana jest komórka o wsp. (2,3) Podobnie C{2}(2) zwróci liczbę 7 Inteligencja obliczeniowa Inteligencja obliczeniowa - Jest to dziedzina nauki zajmująca się rozwiązywaniem za pomocą obliczeń problemów, które nie są efektywnie algorytmizowalne. Cechy inteligentnego systemu: zdolność do przyswajania nowej wiedzy; samoadaptacja; akceptacja danych niepełnych i nie w pełni spójnych logicznie; kreatywność. W skład metod inteligencji obliczeniowej wchodzą:

Co oznacza nie są efektywnie algorytmizowane? Sformułowanie to oznacza iż nie da się w prosty sposób napisać algorytmu postępowania ciągu instrukcji które doprowadzą do rozwiązania danego problemu. Przykładem problemów rozwiązywanych przez inteligencję obliczeniową są: Strategie stosowane w grach komputerowych np. szachy Problem rozpoznawania obrazów np. identyfikacja osób na podstawie obrazu z kamery Autonomiczne sterowanie robotem Itp. Ze względu na swoją naturę problemy rozwiązywane przez metody inteligencji obliczeniowej możemy podzielić na Uczenie nadzorowane system podczas uczenia ma dostęp do informacji o wynikach które powinien uzyskać np. nauka rozpoznawania płci na podstawie wzrostu i rozmiaru stopy, gdy zbiorem uczącym są studenci danej grupy, a system ma działać dla wszystkich studentów Politechniki W uczeniu nadzorowanym wyróżniamy: o Problemy klasyfikacyjne gdy informacja którą system się uczy jest typu symbolicznego np. kobieta, mężczyzna, dziecko o Problemy regresyjne gdy informacja którą uczy się system jest liczbą porządkową (rzeczywistą) np. wartości indeksów giełdowych 1 Uczenie nienadzorowane grupowanie danych/analiza skupień gdy podczas uczenia systemu nie mamy informacji o tym co system ma się nauczyć. Z uwagi na bogactwo różnych algorytmów wchodzących w skład problemów inteligencji obliczeniowej niezmiernie istotna jest metoda testowania umożliwiająca dobór możliwie najlepszego algorytmu do postawionego zadania. Wyróżniamy tutaj test typu: Trening/test Test krzyżowy (corss validation) Test jeden pozostaw 1 Źródło: http://dydaktyka.polsl.pl/kwmimkm/mio.aspx

Bootstrap Test typu trening test polega na podziale zbioru danych treningowych na dwie niezależne części, z których jedna używana jest do nauczenia systemu, a druga, gdy system jest nauczony do weryfikacji jak dobrze system się nauczył Test krzyżowy polega na wielokrotnym podziale zbioru uczącego na trening test (n-krotnie) i na tej podstawie można policzyć średnią dokładność z n prób. Dzięki temu mamy dużo dokładniejsze oszacowanie jak dobrze nauczył się nasz system. Test krzyżowy ma dodatkowo taką właściwość iż zbiór danych dzielony jest na n równych części, wówczas system uczony jest na n-1 częściach, a testowany na nie użytej do treningu części. Przedstawia to poniższy rysunek: Zadanie w matlabie: 1) Zbuduj funkcję w matlabie która dokona podziału zbioru danych na część treningową i testową, tak iż wywołując funkcję będzie można podać ile procent zbioru danych przeznaczone będzie na część treningową (pozostała część będzie stanowiła część testową) Wywołanie: [trening,test]=podziel(zbiór,procent) Gdzie trening struktura o dwóch polach X i Y a) trening.x zbiór danych używany do treningu b) trening.y zbiór etykiet używany do treningu test struktura o dwóch polach X i Y a) test.x zbiór danych używany do testowania b) test.y zbiór etykiet używany do testowania poprawności klasyfikatora zbiór całkowity dostępny zbiór danych procent liczba z zakresu 0-1 określająca ile proc. zbioru danych ma stanowić zbiór treningowy 2) Napisz prosty klasyfikator wg. algorytmu poniżej Algorytm powinien być zapisany jako dwie funkcje p = ucz_klasyfikator(dane) Dane zbiór danych treningowych składający się z pól X to zbiór danych treningowych Y to zbiór etykiet dla poszczególnych wektorów zbioru treningowego

p zbiór parametrów nauczonego klasyfikatora w tym przypadku najczęściej występująca etykieta Oraz z funkcji danew = testuj_klasyfikator(dane,p) Dane zbiór danych testowych struktura o polach: o X zbiór danych testowych o Y zbiór etykiet (Y może być puste Y=[]) p Zbiór wzorców uzyskanych w wyniku uczenia DaneW zbiór danych wynikowych struktura o polach: o X zbiór danych testowych (danew.x = dane.x) o Y zbiór etykiet przewidziane wartości etykiet Uczenie: a) Znajdź najczęściej występującą klasę i przypisz wszystkie wektory do danej klasy b) Wykorzystaj polecienie sum(dane.y ==?) Testowanie: a) Przypisz każdemu wektorowi etykietę najczęściej występującej klasy danew.x = dane.x; dane.y(1:size(danew.x,1)) = C; Przydatne funkcje: M = mean(x) liczy osobno dla każdej kolumny wartość średnia. Id = find(warunek) znajduje indeksy wktorów które spełniają określony warunek U = unique(x) funkcja zwraca listę unikatowych wartości występujących w X (przydatne do zbadania liczby klas poprzez c = unique(y) 3) Zbuduj funkcję obliczającą dokładność klasyfikatora jako: Acc = dokladnosc(dane,danew) Funkcja powinna policzyć dokładność jako średnią liczbę przypadków dla których dane. Y==daneW.Y - dane.y rzeczywiste (prawdziwe) wyjścia z systemu - danew.y wyjścia przewidziane przez klasyfikator 4) Przetestuj zbudowany algorytm wykorzystując funkcję podziel tak, iż zbiór danych treningowych (trening) powinien zostać wykorzystany do uczenia klasyfikatora z punktu 2, natomiast zbiór testowy (test) powinien zostać wykorzystany do sprawdzenia dokładności klasyfikatora. Dokładność uzyskanych wyników sprawdź korzystając z funkcji dokładność z punktu 3 5) Zbuduj funkcję realizującą test krzyżowy, funkcja powinna mieć postać: zbiory=testrzyzowy(zbior,n) gdzie: zbiory tablica komórkowa o rozmiarze {n 2}zawierająca w każdym i tym wierszu osobno zbiory{i,1} zbiór treningowy zbiory{i,2} zbiór testowy zbiór zbiór danych użyty do uczenia n liczba podziałów na część treningową i testową.