PROGRES TP 5 : Problème de classification
Nesrine Ammar – [email protected]
Exercice 1 (iris data) :
Dans ce TP nous allons appliquer de l’apprentissage supervisé pour traiter un problème de classification de type de plantes. Les données iris permettent de classifier 3 types de fleurs en utilisant 4 attributs : longueur de pétale, largeur de sépale, longueur de pétale, largeur de pétale. A partir des exemples du code vus en cours :
- Importer les données avec pandas
- Visualiser les données : les différentes infos sur les attributs, les classes, taille des données, la distribution de chaque attribut…
- Calculer la moyenne et l’écart-type par espèce de chaque attribut (sepal length, sepal width ...).
- Construire un échantillon de taille S, de fleurs aléatoirement choisies. Calculer la moyenne de sepal length par espèce. Répéter l’opération 30 fois, pour S = [10, 30, 50, 70] afin de remplire un DataFrame qui aura 3 colonnes (une par espèce), et une quatrième colonne qui contiendra la valeur de S (taille de l’échantillon). Chaque ligne correspond à chacune des mesures.
Pour les figures, utiliser le package matplot.pyplot as plt Commande : plt.show()
- Etudier la corrélation entre les différents attributs.
- Diviser les données en un ensemble de test et de train
- Utiliser l’algorithme Decision Tree pour la classification. Tester différents hyperparamètres pour attendre la meilleure performance, par exemple : La profondeur maximal d’un arbre = 2 et =3, Nombre maximum de feuilles par nœud = 1 et =2.
- Indiquer le taux d’erreur à chaque fois.
- Est-ce que le modèle obtenu sur-apprend ? Pourquoi - Appliquer la cross validation avec cv=3
- Tester le modèle sur les 5 premières instances puis les 5 dernières instances.
- Créer un classificateur binaire pour la classe ‘virginica’ en se basant sur la technique one vs all. Montrer la performance du classificateur avec cross-val-score avec cv =3.
- Refaire un apprentissage avec Decision Tree avec les hyperparamètres par défaut en utilisant deux attributs seulement : : longueur de pétale, largeur de sépale. Indiquer le taux d’erreur. Toujours utilisez pandas pour la manipulation des données.
- Tester le modèle obtenu sur le test set
Exercice 2 (titanic data):
Pour cette exercice nous allons manipuler les données de titanic avec deux classes labellisées (survécu ou mort).
- Importer tous les fichiers des données titanic.
- Merge les différents fichiers pour constituer les données totales de l’apprentissage.
- Visualisation des données - Séparer data en train et test set
- utiliser l’algorithm SVM pour l’apprentissage avec différent hyperparamètres comme kernel = ‘linear’ et kernel =’rbf’. Ne pas se soucier de la compréhension des hyperparamètres pour le moment.
- Comment SVM performe?
-
Méthodes (Pandas):
pd.DataFrame(): create empty dataframe df1.merge(df2, on=[‘column’] )
df.mean():Returns the mean of all columns
df.corr():Returns the correlation between columns in a data frame
df.count():Returns the number of non-null values in each data frame column df.max():Returns the highest value in each column
df.min():Returns the lowest value in each column df.median():Returns the median of each column df.std():Returns the standard deviation of each column