APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN
Master 1 Business Analytics & Data Science
TP7 : SVM linéaires
Mounira Ilahi Amri
Objectifs
L’objectif de ce TP est la présentation de l’utilisation des machines
à vecteurs de support (Support Vector Machines, SVM) pour les
problèmes de classification linéaires en python avec Scikit-learn.
Références externes utiles :
Documentation NumPy
Documentation SciPy
Advertisement
Documentation MatPlotLib
Site scikit-learn
Site langage python
Site LibSVM
Site LibLinear
** Ce TP est insipré d'un travail de Marin FERECATU & Michel Crucianu
- Ce TP est à rendre avant mercredi prochain 23h55
Enoncé du TP
Dans Scikit-learn, les SVM sont implémentées dans le module sklearn.svm. Dans cette
partie nous allons nous intéresser à la version linéaire (Scikit-learn utilise les bibliothèques
libLinear et libSVM déjà discutées). Nous allons utiliser le jeu de données Iris déjà
Advertisement
rencontré dans les TP précédents. Pour pouvoir afficher les résultats, on va utiliser
seulement les premiers deux attributs (longueur et largeur des sépales).
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
1
from sklearn.model_selection import train_test_split
Chargement des données
iris = datasets.load_iris()
Pour commencer, nous ne conservons que les deux premiers attributs du jeu de données :
X, y = iris.data[:, :2], iris.target
Advertisement
On conserve 50% du jeu de données pour l'évaluation
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
Nous pouvons maintenant entraîner une machine à vecteur de support linéaire :
C = 1.0 # paramètre de régularisation
lin_svc = svm.LinearSVC(C=C)
lin_svc.fit(X_train, y_train)
Question1
Calculez le score d’échantillons bien classifiés sur le jeu de données de test.
Question2
Testez différentes valeurs pour le paramètre C. Comment la frontière de décision évolue
en fonction de C ?
Advertisement
Question3
D’après la visualisation ci-dessus, ce modèle vous paraît-il adapté au problème ? Si non,
que peut-on faire pour l’améliorer ?
Question4
Réalisez l’optimisation d’une nouvelle machine à vecteur de support linéaire mais en
utilisant les quatre attributs du jeu de données Iris. Le score de classification en test a-t-il
augmenté ? Pourquoi ?
2