Pour cette partie, l'objectif est de coder la fonction $kppv$ qui prendra en entrée une matrice contenant les points d'apprentissage, un vecteur contenant les étiquettes de ces points, une matrice contenant les points à étiquetter (de test) et une structure de parametres. En sortie, la function renverra un vecteur d'etiquettes prédites.
Spécifiez et implémentez la fonction $distance\_euclidienne$
param.nb_voisin : nombre de voisins (entier), param.distance : type de distance (chaine de caractères)
Implémentez la fonction $kppv$
Afin de tester les kppv, nous allons générer des données synthétiques en 2 dimensions (ce qui permettra de les visualiser).
Spécifiez et implémentez une fonction de génération de données (qui prend en entrée les différentes dimensions et une structure de parametres et qui renvoie la matrice d'apprentissage, la matrice de test et les deux vecteurs d'étiquettes associées).
probleme.nb_classes : nombre de classes à générer (entier), param.type : type de probleme (chaine de caractères)
Implémentez une fonction de visualisation des données générées.
Pour choisir le meilleur nombre de voisin pour un problème donné, il faut utiliser une méthode de validation. Nous allons implémenter la validation croisée
Spécifiez et implémentez la fonction de validation croisée. Pensez qu'elle devra certainement resservir pour d'autres algorithmes.