Zadania kontrolne

  1. Wygenerować zbiór uczący liniowo separowalny po 25 próbek na klasę w przestrzeni dwuwymiarowej. Przyjąć rozkłady normalne atrybutów z odchyleniem standardowym równym 1, średnie w klasach przyjąć -3 oraz 3. Dane zwizualizować, ocenić czy problem klasyfikacyjny jest liniowo separowalny.

  2. Dokonać uczenia klasyfikatora liniowego dla danych z poprzedniego punktu. Zwizualizować optymalną hiperpłaszczyznę rozdzielającą i podać wzór ją opisujący. Na wykresie zaznaczyć ponadto wektory podpierające

  3. Podać liczbę wektorów podpierających w każdej z klas oraz ich współrzędne. Ograniczyć zbiór uczący jedynie do wektorów podpierających i przeprowadzić ponownie proces uczenia. Czy uzyskane rozwiązanie różni się od tego opartego na całym zbiorze?

  4. Uzyskany klasyfikator przetestować na niezależnym zbiorze testowym 100 elementowym (50 elementów na klasę) wygenerowanym z tego samego rozkładu co zbiór uczący. Podać uzyskane etykiety klasowe oraz sprawność klasyfikatora.

  5. Wykonać następujący skrypt języka Python:

    from sklearn.datasets import make_moons, make_circles

    data1=make_moons(noise=0.1, random_state=0)

    data2=make_circles(noise=0.1, random_state=0)

    Sprawdzić liczbę wygenerowanych danych i zilustrować je na wykresie zaznaczając każdą klasę innym kolorem

  6. Zbiory danych z poprzedniego punktu podzielić na część uczącą i testową (po \(50%\))

  7. Dla zbioru data1 dokonać uczenia klasyfikatora svm z jądrem gaussowskim dla kliku wartości parametrów \(gamma\) oraz \(C\). W każdym przypadku podać sprawność klasyfikatora na zbiorze testowym.

  8. Dla wartości parametrów dla których w poprzednim punkcie uzyskano sprawność na najwyższym poziomie zwizualizować powierzchnie decyzujne nauczonego klasyfikatora.

  9. Dla zbioru data2 dokonać uczenia klasyfikatora svm z jądrem wielomianowym dla kliku wartości parametrów stopnia wielomianu \(degree\) oraz stałych coef0 i \(C\). W każdym przypadku podać sprawność klasyfikatora na zbiorze testowym.

  10. Dla wartości parametrów dla których w poprzednim punkcie uzyskano sprawność na najwyższym poziomie zwizualizować powierzchnie decyzujne nauczonego klasyfikatora.

  11. W pakiecie scikit-learn zaimplementowany jest klasyfikator svm dla przypadku wieloklasowego. Znaleźć powierzchnie decyzyjne nieliniowego klasyfikatora SVM z jądrem gaussowskim dla zbioru iris, jako przestrzeń cech przyjąć jedynie wartości 1 i 3 atrybutu. Wartości parametrów dobrać w sposób eksperymentalny.

Następna część - Ocena modelu, testowanie klasyfikatora