Programmation pour l’IA
scikit-learn pour la séparation linéaire;On va reprendre le dataset de la semaine dernière : iris.csv. On rappelle la visualisation suivante :
Préparer le jeu de données iris.csv. On
veut features=["sepal.length", "sepal.width"],
data ne doit contenir que les
données relatives à ces features, classes doit contenir les classes des
exemples dans \(\{-1, 1\}\) : classnames = ["setosa", "autre"]
où les éléments de classes Virginica et
Versicolor sont envoyés sur la classe "autre".
En utilisant svm de
scikit-learn, apprenez un séparateur à vaste marge. On
pourra s’inspirer du code suivant :
from sklearn import svm
clf = svm.SVC(kernel="linear", C=1000)
clf.fit(X, y)En s’inspirant de l’exemple donné dans la documentation de scikit-learn, faire une visualisation du séparateur trouvé et de ses marges.
Refaire l’exercice en ne prenant que 80% du jeu de données et mesurer la précision de votre modèle (voir TP précédent).
Faire une séparation similaire avec une visualisation pour les classes Versicolor et Virginica en fonction de la longueur/largeur de pétales :
Même exercice avec xor.csv mais c’est à vous de trouver la transformation qui vous permettra de séparer linéairement les données.
Implémentez la régression linéaire par descente de gradient vue en cours.