EDB/L/z2

From WikiZMSI

< EDB | L

Na zajęciach

  • Utworzyć sztuczny zbiór danych, separowalny na płaszczyźnie w następujący sposób: zmienna X1 wylosowana (równomiernie) z przedziału (0, 1), zmienna X2 wylosowana z przedziału (0, 0.4) dla punktów klasy Y = -1, oraz z przedziału (0.6, 1) dla punktów klasy Y = 1. Rozmiar zbioru danych, tj. liczba punktów, powinna być nastawialna (np. m = 100, 1000 itp.).
  • Zwizualizować zbiór danych kolorując różnymi kolorami klasy (polecenie ListPlot).
  • Zaimplementować (jako Module) algorytm uczący perceptron. Argumenty wejściowe: macierz z danymi, współczynnik uczenia. Wyniki: końcowy wektor wag, liczba wykonanych kroków uczących.
  • Wykonać algorytm uczący dla przygotowanego zbioru i zilustrować wynik: wykres danych + wykres prostej separacji (polecenia ContourPlot oraz Show).
  • Sprawdzić, jak zwężenie pasa odstępu pomiędzy klasami, wpływa na długość pracy algorytmu tzn. liczbę kroków uczących.
  • Wprowadzić dodatkowo do algorytmu możliwość zwrotu wszystkich wektorów wag z poszczególnych iteracji (historia poprawek). Wyświetlić animację, jak wektor wag "skakał" podczas uczenia (polecenie ListAnimate).

Do domu

  • Wprowadzić do algorytmu możliwość zatrzymywania go po zadanej liczbie kroków (o ile naturalny stop nie nastąpi szybciej).
  • Wykonać ekpseryment uczenie / testowanie perceptronu dla zbioru Wisconsin Breast Cancer. Jako wyniki podać: dokładność, czułość, specyficzność klasyfikatora uzyskaną na danych testowych. Jako klasę pozytywną przyjąć nowotwory złośliwe.