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.