< back

k-NN binární klasifikátor


A) Zadání

  1. V prostředí Matlab napište skript realizující úlohu k-NN binárního klasifikátoru, a to pro k=1 a k=3.

  1. Vstupní data generujte jako náhodná čísla s rovnoměrným rozložením takto:

    • Vstupní data tvoří 100 vzorků s atributy x1 a x2.

    • Vzorky 1 až 50 tvoří třídu „+“ s intervaly x1 <0.0;0.6> a x2 <0.0;1.0>.

    • Vzorky 51 až 100 tvoří třídu „x“ s intervaly x1 <0.4;1.0> a x2 <0.0;1.0>.

    • Pro zajištění unikátnosti datové sady použijte inicializaci generátoru náhodných čísel (funkce rng) semínkem o hodnotě vaše VUT ID – s tímto ID bude výsledek skriptu strojově kontrolován při hodnocení, proto generujte data po řádcích, tj. nejdříve 100 vzorků pro x1 a poté 100 vzorků pro x2.


  1. Výsledky vizualizujte do tří grafů tak, že kromě barevného vyznačení třídy vstupních dat v prostoru (x1,x2) zobrazíte klasifikační mapu 1-NN a 3-NN klasifikátoru, tj. příslušnost každého bodu prostoru (x1,x2) ke třídě „+“ nebo „x“, takto:

    • Pro vzorkování prostoru intervalů x1 a x2 použijte rastr 100×100.

    • Jako metriku vzdálenosti použijte Euklidovskou normu L2 (funkce norm).

    • Pozn.: hranice tříd v případě 1-NN klasifikátoru geometricky odpovídají Voroného diagramu.


  1. Na základě vizuální analýzy výsledků předchozího kroku uveďte slovně jaký vztah platí mezi vstupními daty (x1,x2) a klasifikační mapou pro 1-NN, nikoli však už pro 3-NN.

B) Info

Ilustrace vizualizace výsledků klasifikačních map: