EDB/L/z3
From WikiZMSI
Materiały dydaktyczne w pliku: pklesk_svm.pdf.
[edytuj]
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).
[edytuj]
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.