EDB/L/z3

From WikiZMSI

< EDB | L

Materiały dydaktyczne w pliku: pklesk_svm.pdf.

Na zajęciach

  • Utworzyć sztuczny zbiór danych, separowalny na płaszczyźnie w taki sam sposób jak w zad. 2 (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).
  • Na rzecz danych odpowiednio zapisać (polecenie NMinimize[]) algorytm SVM w wersji z unormowaniem (iloczyn normy wag i marginesu = 1).
  • Wyrysować otrzymaną płaszczyznę separacji w połączeniu z wykresem punktów danych.
  • Wyliczyć rozmiar marginesu.
  • Ponownie wykonać dla danych algorytm SVM, ale zapisując kryterium optymalizacji z użyciem mnożników Lagrange'a. Porównać czasy wykonania tej wersji z wersją bez mnożników Lagrange'a.
  • Na podstawie otrzymanego rozwiązania (mnożników Lagrange'a) wyznaczyć: wektor wag w, wyraz wolny w0, rozmiar marginesu, punkty podparcia (należy zakolorować je na rysunku).

Do domu

  • Wykonać ekpseryment uczenie / testowanie perceptronu dla zbioru Wisconsin Breast Cancer. Ponieważ zbiór ten nie jest liniowo-separowalny należy algorytm SVM zapisać w wersji 'soft-margin' (tj. dopuszczajac dla kazdego punktu danych epsilonowe pomyłki).
  • Ostatecznie wykonać kilka eksperymentów wyliczania SVM i testowania dla kilku nastaw stałej C (stanowiącej kompromis pomiędzy marginesem a pomyłkami). W każdym przypadku podać rozmiar marginesu dla danych uczących. Wskazać wartość C, dla której błąd testowy wyszedł najmniejszy.