Statystyczne Metody Przetwarzania Danych Nale y wybra ć i
Transkrypt
Statystyczne Metody Przetwarzania Danych Nale y wybra ć i
Statystyczne Metody Przetwarzania Danych Należy wybrać i wykonać 3 zadania z poniżej przedstawionych. Oceniana jest poprawność wykonania zadania i zrozumienia problemu. Można wykorzystywać dowolne języki programowania umożliwiające pracę na plikach tekstowych i tablicach. Jeśli wśród zrobionych zadań znajdzie się zadanie 4, 5 lub 6 możliwe jest uzyskanie oceny 5. Jeśli nie (zrobienie zadań 1, 2 i 3), maksymalną oceną do uzyskania jest 4. Zadanie 1 (obowiązkowe) 1a) Napisz program do losowego podziału zadanego zbioru uczącego na dwa podzbiory: zbiór treningowy i zbiór testujący. Liczebności klas zbioru uczącego powinny być policzone i wyświetlone na ekranie. Liczebności klas zbioru treningowego powinny być zadawane, a liczebności klas zbioru testującego tylko wyświetlane na ekranie. 1b) Napisz program do klasycznej standaryzacji dla danych dwóch zbiorów (treningowego i testującego) będących wynikiem działania programu 1a. Parametry standaryzacji powinny być wyznaczone tylko na podstawie zbioru treningowego. W przypadku podania tylko jednego zbioru, należy potraktować go jako zbiór treningowy. Do standaryzacji klasycznej wykorzystuje się średnie wartości cech oraz ich odchylenia standardowe: x ij − x j i yj = s( x j ) gdzie: x ij , y ij - są odpowiednio oryginalną i postandaryzowaną wartością j-tej cechy i-tej próbki danego zbioru, x j - jest średnią wartości j-tej cechy, s( x j ) - jest odchyleniem standardowym wartości j-tej cechy. Wzór na odchylenie standardowe j-tej cechy: n ∑ (x s( x j ) = i j − xj ) 2 i =1 n −1 gdzie: n – liczebność zbioru Zadanie 2 Zaimplementuj algorytm 1-NN z wykorzystaniem metryki euklidesowej. Program powinien przyjmować jako parametry: • zbiór treningowy, • zbiór testujący oraz dokonywać pomiaru czasowego fazy klasyfikacji i wyświetlać wynik klasyfikacji w postaci procentowej wartości poprawnie rozpoznanych obiektów ze zbioru testującego. Algorytm należy przetestować na niepostandaryzowanych i postandaryzowanych zbiorach dostępnych na stronie (podzielonych na zbiory treningowe i testujące). Statystyczne Metody Przetwarzania Danych Metryka euklidesowa liczona dla punktów x i y: d E ( x, y ) = ( x1 − y1 ) 2 + ( x2 − y 2 ) 2 + ... + ( xn − y n ) 2 gdzie: x = [ x1 , x 2 ,..., xn ]T y = [ y1 , y 2 ,..., y n ]T Zadanie 3 Napisz procedurę testowania „minus jednego elementu”. Procedura ta umożliwia ocenę zastosowanej metody bez użycia zbioru walidacyjnego. W tym zadaniu oceniać będziemy dwa klasyfikatory 1-NN, pierwszy z metryką euklidesową, drugi z metryką miejską. Szacowanie jakości klasyfikacji następuje na podstawie obiektów ze zbioru treningowego: próbka x jest klasyfikowana na podstawie zbioru treningowego z wyłączeniem x (przy ocenie klasyfikacji nie jest brany pod uwagę zbiór testujący). Po wyborze lepszego klasyfikatora, proszę o końcowe przetestowanie go zbiorem testującym. Procedurę „minus jednego elementu” proszę przetestować na niepostandaryzowanych i postandaryzowanych zbiorach dostępnych na stronie (podzielonych na zbiory treningowe i testujące). Metryka miejska liczona dla punktów x i y: d M ( x, y ) = x1 − y1 + x2 − y 2 + ... + xn − y n gdzie: x = [ x1 , x 2 ,..., xn ]T y = [ y1 , y 2 ,..., y n ]T Zadanie 4 Zaimplementuj algorytm k-NN. Program powinien przyjmować jako parametry: • rodzaj metryki (metryka euklidesowa lub metryka miejska), • zbiór treningowy, • zbiór testujący oraz dokonywać za pomocą metody "minus jednego elementu" na zbiorze treningowym (zad. 3) wyboru optymalnego (pod względem jakości klasyfikacji) k ( k ∈ {1,3,5,..., ntren } , gdzie ntren - liczebność zbioru treningowego). Program powinien wyświetlić pomiar czasowy fazy walidacji oraz jakość klasyfikacji dla wszystkich testowanych k. Po wyborze optymalnego k, klasyfikator ma być uruchomiony na zbiorze testującym, a uzyskana jakość klasyfikacji też wyświetlona. Algorytm należy przetestować na niepostandaryzowanych i postandaryzowanych zbiorach dostępnych na stronie (podzielonych na zbiory treningowe i testujące). Statystyczne Metody Przetwarzania Danych Zadanie 5 5a) Napisz program, który będzie losowo przestawiał punkty w zbiorze wejściowym, czyli dla wejściowego zbioru będzie zwracał ten sam zbiór, ale z inną kolejnością punktów. 5b) Zaimplementuj algorytm Harta do redukcji zbioru treningowego (zbioru odniesienia). Podziel zbiór uczący na część treningową i testującą (zad. 1a). Za pomocą pierwszego programu (zad. 5a) utwórz dodatkowy zbiór treningowy z przemieszanymi obiektami. Dokonaj redukcji zbiorów treningowych algorytmem Harta i dokonaj za ich pomocą klasyfikacji 1-NN zbioru testującego (zad. 2). Wyniki porównaj z wynikami otrzymanymi po zastosowaniu klasyfikacji 1-NN na pełnym zbiorze treningowym (zad. 2). Algorytm należy przetestować na niepostandaryzowanych i postandaryzowanych zbiorach dostępnych na stronie (podzielonych na zbiory treningowe i testujące). Zadanie 6 Napisz procedurę klasyfikacji 1-NN (metryka euklidesowa) z wykorzystaniem wybranych cech, a następnie zaimplementuj automatyczną metodę selekcji cech (typu Forward Feature Selection). Przeprowadź selekcję cech dla podanego zbioru treningowego. Wynikiem działania programu powinien być wyświetlony zestaw wybranych cech wraz z osiągniętą jakością klasyfikacji uzyskaną za pomocą metody "minus jednego elementu" (zad. 3). Dla wybranego zestawu cech należy przeprowadzić klasyfikację 1-NN zbioru testującego. Algorytm należy przetestować na niepostandaryzowanych i postandaryzowanych zbiorach dostępnych na stronie (podzielonych na zbiory treningowe i testujące). Forward Feature Selection: W pierwszym kroku procedura wybiera cechę, dla której następuje najlepsza klasyfikacja. W drugim kroku dołączona zostaje kolejna cecha, która w połączeniu z poprzednią dała minimalny błąd. Analogicznie następują kolejne kroki. Ostatecznie wybierany jest najlepszy zestaw cech spośród wszystkich etapów.