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.