Introduction à l'apprentissage automatique - TP4 exercice 3

SVM sur données réelles


On considère le jeu de données breast-cancer décrit ici et ).

Questions. Que contient ce jeu de données? Combien d'observations et d'attributs par observation? Que cherche-t-on à prédire?

Votre réponse:

</font>

Réservez 20% des observations pour former une base de test.

Travail à faire. Mettez en oeuvre la classification par une SVM à noyau gaussien (gardez la valeur par défaut "scale" pour le paramètre gamma) et une SVM linéaire ainsi que les autres méthodes de classification que vous connaissez bien à présent.

Vous comparerez les scores de classification avec et sans normalisation ( standardisation : les caractéristiques sont centrées et réduites). Vous fixerez les hyperparamètres de ces méthodes par validation croisée sur la base d'apprentissage, et vous comparerez les performances des méthodes sur la base de test.

In [ ]:
from sklearn import datasets, metrics, model_selection, preprocessing, neighbors, naive_bayes, linear_model, svm
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# on charge le jeu de données et on garde 30% comme base test:
dataset = datasets.load_breast_cancer()
X_dataset = dataset.data
y_dataset = dataset.target
X_train, X_test, y_train, y_test = model_selection.train_test_split(X_dataset,y_dataset,test_size=.2,random_state=1)

print("Les 3 premières observations (non normalisées):")
print(X_train[:3,:])

print("et les étiquettes:")
print(y_train[:3])

# normalisation:
X_train_n = preprocessing.StandardScaler().fit_transform(X_train)
X_test_n = preprocessing.StandardScaler().fit(X_train).transform(X_test)

print("\nLes 3 premières observations (normalisées):")
print(X_train_n[:3,:])

Réponse

</font>

In [ ]:
# choix de C pour SVM RBF  
# on garde le coef gamma fixé par défaut
# faites deux gridsearch différentes: avec et sans normalisation du dataset

# votre code ici:
In [ ]:
# choix de C pour SVM linéaire  
# faites deux gridsearch différentes: avec et sans normalisation du dataset

# votre code ici:
In [ ]:
# gridsearch KNN

# votre code ici:
In [ ]:
# gridsearch LR (paramètre de régularisation C)

# votre code ici:
In [ ]:
# calcul des scores sur la base de test pour les différents classifieurs
# (sans puis avec normalisation de la base)

# votre code ici: