ksr-projekt1

Transkrypt

ksr-projekt1
Zadanie 1 - przestrzeń cech, ekstrakcja cech, klasyfikacja.
Zadanie to składa się zs następujących elementów:
Na ocenę 4:
•
•
•
Stworzyć szkielet aplikacji do rozpoznawania na tyle uniwersalny aby byl niezalezny od typu
obiektow, ktore podlegaja klasyfikacji. Uniwersalność ta ma być osiągnięta w ten sposób, iż na
początku powinien zostać określony format pliku (plików) tekstowego, który będzie
przyjmowany jako wejście aplikacji. W pliku (plikach) wejściowym powinny być podawane
wektory cech (oraz inne potrzebne dane) dla zarówno danych treningowych i testowych w
zależności od potrzeb. Pliki wejściowe będą generowane przez osobne aplikacje na podstawie
konkretnych obiektów, które poddawane sa klasyfikacji.
Dla zadengo zestawu danych wymyśleć sposób ekstrakcji cech (o ile to konieczne), które
przekazane zostana do programu dokonujacego klasyfikacji. Nalezy postarac sie aby cechy te
pozwalaly jak najlepiej dokonac klasyfikacji (zapewnie nie uda sie dobrac ich za pierwszym
razem i bedzie istniala koniecznosci wykonania kilku eksperymentow w celu wybrania tych
najlepszych, wszystkie takie ekeperymenty nalezy opisac w sprawozdaniu). Odrzucane beda
wszystkie sprawozdania, w ktorych wymyslone cechy nie beda mialy sensownego
uzasadnienia!
Opracować moduł do powyższej aplikacji dokonujący klasyfikacji metodą k-NN z przyjętymi
dwoma różnymi rodzajami metryk dla porównania wyników. Wszystkie parametry powinny
być możliwe do zmiany przez użytkownika. Dostępne są następujące warianty zadania:
•
•
•
•
•
•
(M1) Metryka euklidesowa i metryka uliczna.
(M2) Metryka euklidesowa i metryka Czebyszewa.
(M3) Metryka euklidesowa i metryka Minkokwskiego dla t=3.
(M4) Metryka uliczna i metryka Czebyszewa.
(M5) Metryka uliczna i metryka Minkokwskiego dla t=3.
(M6) Metryka Czebyszewa i metryka Minkokwskiego dla t=3.
Należy zwrócić uwagę na normalizację danych (o ile jest konieczna) przed użyciem tych
metryk!
Dodatkowo na ocenę 5:
•
•
Należy dokonać implementacji metod klasyfikacji zgodnie z podaną przez prowadzącego
specyfikacją (jeśli prowadzacy ją określi).
Opracować drugi moduł do powyższej aplikacji dokonujący klasyfikacji za pomoca jednej z
ponizszych metod (jeśli prowadzący nie wskaże metody można ją wybrać samodzielnie):
•
•
•
•
•
•
•
•
Klasyfikator Bayesa z parametryczną estymacją funkcji prawdopodobieństwa.
Klasyfikator Bayesa z bezparametryczną estymacją funkcji prawdopodobieństwa.
Klasyfikator SVM.
Analiza dykskryminacyjna Fishera.
Drzewa decyzyjne.
Klasyfikator oparty o reguly.
Klasyfikator oparty o obliczenia rozmyte.
Klasyfikator oparty o obliczenia neuronowe.
•
•
•
Klasyfikator grafowy.
Boosting i bagging.
Inny (jeśli prowadzący wyrazi zgodę).
W przypadku tych metod można korzystać z zewnętrznych bibliotek (niekoniecznie należy je
samodzielnie implementować).
W każdym z elementów zadania przy ocenie pod uwagę będą brane następujące rzeczy:
•
•
•
•
Spsób zaprojektowania i uniwersalność szkieletu aplikacji oraz formatów plików. Orientacyjna
waga tej części zadania to 0.2.
Prawidłowość implementacji metod klasyfikacji oraz znajomość cech tych technik.
Orientacyjna waga tej części zadania to 0.2.
Przygotowanie wraz z opisem i uzasadnieniem odpowiedniego zestawu cech dla zadanych
danych oraz odpowiedniego programu generującego te cechy. Orientacyjna waga tej części
zadania to 0.2.
Analiza wynkików pod następującymi kątami:
•
•
•
•
Wpływ wartości parametru k na jakość klasyfikajci i czas obliczeń.
Wpływ wyboru metryki na jakość klasyfikacji.
Wpływ wyboru cech na jakość klasyfikacji.
Wpływ wyboru metody (gdy rozważana była więcej niż jedna) na jakość klasyfikacji.
Orientacyjna waga tej części zadania to 0.4.
Zestawy danych do pobrania (opracowane przez mgr inż. Arkadiusza Tomczyka i mgr. inż Bartłomieja
Stasiaka):
Baza IRIS (http://www.ics.uci.edu/~mlearn/databases/iris/iris.data) to mala baza zawierajca 150
obiektow opisanych przez 4 cechy (przy tej bazie nie ma potrzeby generowania cech). Obiekty te to
trzy różne gatunki kwiatow irysu: iris setosa, iris versicolour, iris virginica, zas cechy to wysokosc i
szerokosc dwóch rodzajów ich platkow. Zbior ten podzielony zostal losowo na zbior treningowy (100
obiektow) oraz zbior testowy (50 obiektow) i zapisany w formacie XML.
Baza ta składa się z dwoch plików:
•
•
iris-train.xml - zbiór uczący (obrazy, 100 przykładów)
iris-test.xml - zbiór testowy (obrazy, 50 przykładów)
Baza MNIST (http://yann.lecun.com/exdb/mnist/) jest bazą ręcznie pisanych cyfr. Zawiera dwa zbiory
przykładów. Zbiór uczący składa się z 60 000 przykładów, zbiór testowy z 10 000. Każdy z
przykładów to obraz pojedynczej cyfry o wymiarach 28x28 pikseli, przy czym rozmiar cyfry został
znormalizowany do kwadratu o boku 20 pikseli (z zachowaniem współczynnika kształtu). Następnie
każda cyfra została wyśrodkowana na podstawie obliczenia środka masy tworzących ją pikseli.
Wynikowe obrazy zapisane są w postaci tablic bajtów 28x28; wartości zerowe odpowiadają kolorowi
tła, pozostałe piksele tworzą kształt cyfry. Występujące w obrazie odcienie szarości są efektem
zastosowania anty-aliasingu w procesie normalizacji (oryginalne obrazy były czarno-białe).
Baza ta składa się z czterech plików:
•
•
•
•
digit-train-data.zip - zbiór uczący (obrazy, 60 000 przykładów)
digit-train-labels.zip - zbiór uczący (etykiety, 60 000 przykładów)
digit-test-data.zip - zbiór testowy (obrazy, 10 000 przykładów)
digit-test-labels.zip - zbiór testowy (etykiety, 10 000 przykładów)
Dane w tych plikach zapisywane są w prostym formacie przeznaczonym do przechowywania
wektorów i tablic wielowymiarowych. Każdy z plików rozpoczyna się nagłówkiem określającym
wymiarowość danych oraz rozmiary tablic/wektorów w każdym wymiarze. Bezpośrednio po
nagłówku zapisywane są właściwe dane. Oba pliki z obrazami zawierają wektor tablic
dwuwymiarowych o rozmiarach 28x28 bajtów każda. Można inaczej powiedzieć, że plik digit-traindata.zip zawiera jedną tablicę o wymiarach 60000x28x28, a digit-test-data.zip tablicę o wymiarach
10000x28x28. Każdy z plików z etykietami zawiera wektor etykiet (odpowiednio: 60000- i 10000elementowy), przy czym każda etykieta składa się z pojedynczego bajtu określającego wartość
odpowiedniej ręcznie pisanej cyfry z odpowiedniego pliku z obrazami. Kolejność przykładów
w plikach z obrazami odpowiada kolejności etykiet w plikach z etykietami. Ogólny format nagłówka
wygląda następująco:
pole info
rozmiar w pierwszym wymiarze
rozmiar w drugim wymiarze
.....
rozmiar w wymiarze N
Pole info jest liczbą całkowitą w formacie MSB (od najstarszego do najmłodszego bajtu). Pierwsze
dwa bajty są zawsze równe zero. Trzeci bajt koduje typ danych:
0x08:
0x09:
0x0B:
0x0C:
0x0D:
0x0E:
unsigned byte
signed byte
short (2 bajty)
int (4 bajty)
float (4 bajty)
double (8 bajty)
Czwarty bajt koduje liczbę wymiarów wektora/macierzy: 1 dla wektorów, 2 dla tablic, itd. Rozmiary w
poszczególnych wymiarach są również zapisywane w formacie MSB jako 4-bajtowe liczby całkowite.
Dane, umieszczone bezpośrednio po nagłówku, zapisywane są tak jak w tablicach w języku C, tj.
indeks ostatniego wymiaru zmienia się najszybciej. Piksele zapisywane są wierszami.
Szablon sprawozdania:
•
•
sprawozdanie_1.doc - Microsoft Word
sprawozdanie_1.sxw - Open Office
Wskazówki i uwagi:
•
Metoda k-NN czyli metoda k najbliższych sąsiadów polega na tym, iż mając zbiór treningowy
(wektory cech i ich etykiety tzn. np. numery klas) oraz nowy obiekt do sklasyfikowania
charakteryzowany również za pomocą wektora cech postepujemy następująco (przy ustalonej
wcześniej metryce):
•
•
•
•
Obliczyć (przy ustalonej metryce) odległości między wektorem cech klasyfikowanego
obiektu, a wektorami cech wszystkich obiektów w zbiorze treningowym.
Spośród obiektów ze zbiotu treningowego wybrać k tych obiektów, które leżą najbliżej
klasyfikowanego obiektu.
Zaliczyć ten nowy obiekt do tej klasy, która jest najczęściej reprezentowana wśród tych
k wybranych obiektów (jeśli jest kilka takich można postąpić różnie np. wybrać tę klasą
gdzie jest faktycznie najbliższy obiekt itp.).
W metodzie k-NN mogą być rozważane różne metryki np. (
•
Metryka euklidesowa:
•
Metryka uliczna:
•
Metryka Czebyszewa:
•
Metryka Minkowskiego:
Warto zauważyć, że:
,
,
):
oraz
.
•
•
Warto zwrócić uwagę na zakresy możliwych wartości poszczególnych cech oraz ich wzajemnę
zależności (ewentualnie potrzebne skalowanie).
Inną ważną rzeczą, na którą dobrze jest zwrócić uwagę jest ortogonalność (lub jej brak) bazy
przestrzeni cech.

Podobne dokumenty