Projet Guidé : Classification et Régression par
SVM
(Support Vector Machines en Python)
Licence 3 - Parcours Informatique - ESTI
Durée : 2 semaines | Modalité : binôme
1 Objectif général
Ce projet vise à mettre en œuvre la théorie des Machines à Vecteurs de Support
(SVM) à travers deux tâches :
1) La classification supervisée (catégorisation de classes) ;
2) La régression (prédiction de valeurs continues).
Les étudiants doivent concevoir un modèle complet, de la préparation des données
jusqu’à la comparaison de performances avec un autre algorithme (KNN, Régression Lo-
gistique ou Réseau de Neurones).
2 Jeux de données proposés
Domaine Jeu de données Source / Chargement
Santé Prédiction du diabète [Link].load_diabetes()
Biologie Identification d’espèces d’Iris [Link].load_iris()
Commerce Satisfaction client Kaggle / OpenData
Environnement Qualité de l’eau ou de l’air Fichier CSV local ou open
data
Synthétique Données générées avec Faker make_classification()
3 Déroulement du projet
Étape 1 : Préparation des données
— Chargement et exploration du dataset (pandas, matplotlib) ;
— Nettoyage et normalisation des données (StandardScaler) ;
— Découpage en ensembles train/test.
Listing 1 – Découpage du jeu de données
1 from sklearn . model_selection import train_test_split
2 X_train , X_test , y_train , y_test = train_test_split (
3 X , y , test_size =0.3 , random_state =42)
1
ESTI - L3 IDEV& RSI Année Universitaire 2025
Étape 2 : Implémentation du modèle SVM
— Créer un modèle SVC ou SVR ;
— Tester plusieurs noyaux : linear, poly, rbf, sigmoid ;
— Comparer les performances.
Listing 2 – Création et entraînement d’un modèle SVM
1 from sklearn import svm
2 model = svm . SVC ( kernel = ’ rbf ’ , C =1.0 , gamma =0.1)
3 model . fit ( X_train , y_train )
Étape 3 : Évaluation et Visualisation
— Calculer accuracy, precision, recall, F1-score ;
— Visualiser la matrice de confusion et les frontières de décision.
Listing 3 – Évaluation du modèle SVM
1 from sklearn . metrics import confusion_matrix ,
ConfusionMatrixDisplay
2 ConfusionMatrixDisplay ( confusion_matrix ( y_test , model . predict (
X_test ) ) ) . plot ()
Étape 4 : Optimisation des hyperparamètres
Utiliser la recherche en grille (GridSearchCV) pour trouver les meilleurs paramètres.
Listing 4 – Recherche des meilleurs paramètres
1 from sklearn . model_selection import GridSearchCV
2
3 params = { ’C ’ :[0.1 ,1 ,10] , ’ gamma ’ :[0.01 ,0.1 ,1] , ’ kernel ’ :[ ’ rbf ’ , ’
poly ’ ]}
4 grid = GridSearchCV ( svm . SVC () , params , cv =5)
5 grid . fit ( X_train , y_train )
6 print ( " Meilleurs ␣ paramètres ␣ : " , grid . best_params_ )
Étape 5 : Comparaison avec un autre modèle
Comparer le SVM à un autre algorithme :
— KNN, Régression Logistique ou MLPClassifier ;
— Comparer les performances et le temps d’entraînement.
Étape 6 : Rapport et Présentation
Le rapport doit comprendre :
i) Introduction et objectif du projet ;
ii) Description du jeu de données ;
2
ESTI - L3 IDEV& RSI Année Universitaire 2025
iii) Méthodologie (prétraitement, tuning, évaluation) ;
iv) Résultats et interprétation graphique ;
v) Comparaison des modèles ;
vi) Conclusion et recommandations.
4 Schéma du pipeline SVM
Prétraitement Évaluation
Jeu de données (Nettoyage, Normalisation) Modèle SVM
(Métriques, Courbes)
Figure : Pipeline d’un projet SVM typique.
5 Extensions possibles (bonus)
— Implémenter un SVR pour la prédiction d’une variable continue.
— Étudier l’influence de la normalisation sur les performances.
— Créer un pipeline complet avec Pipeline de scikit-learn.
— Tester un SVM multi-classes (One-vs-One / One-vs-Rest).
— Produire une visualisation 3D des frontières de décision.
6 Résultats attendus (exemple)
Modèle Noyau Exactitude F1-score
SVM RBF 0.82 0.80
KNN - 0.78 0.76
MLP (2 couches) ReLU 0.85 0.84
7 Ressources recommandées
— Documentation : Scikit-learn SVM - https ://[Link]/stable/modules/[Link]
— Tutoriel : StatQuest - SVM Explained Simply
— Dataset : UCI Machine Learning Repository - https ://[Link]/ml/[Link]
8 Exemple de titre de rapport
« Analyse et classification de la qualité du vin par SVM - Comparaison avec le Réseau
de Neurones MLP »
Bon courage à tous !