Apprentissage avec Python et Scikit-learn

Page 1 sur 2Lecteur de document UniversityLib

Apprentissage avec Python et Scikit-learn

Supervised Machine Learning (Linear SVMs for Classification) · lab

Voir tous les documents en intelligence artificielle et données

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

Publicité

 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à

Publicité

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

Publicité

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 ?

Publicité

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