Créer un notebook Jupyter et importer les bibliothèques nécessaires. Assurez-vous que celles-ci soient disponibles dans votre noyau jupyter.
Les exercices suivants sont à réaliser dans un (ou plusieurs) notebook(s) Jupyter.
1) Charger le jeu de données Iris depuis sklearn et affichez le sous la forme d'un DataFrame pandas.
Ce jeu de données contient des données de fleurs, et l'objectif est de prédire l'espèce de la fleur à partir d'observations sur ses caractéristiques (features).
import sklearn
import pandas as pd
iris = sklearn.datasets.load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['target'] = [iris.target_names[i] for i in iris.target]
print(df.head())
2) Répondez aux questions suivantes :
3) Créez un MLP à 3 couches (entrée, cachée, sortie) pour classer ces données.
4) Créez un jeu de données PyTorch à partir des données Iris et entraînez le MLP par batch de 8 en affichant la Loss à chaque fin d'époque.
Utilisez le code suivant pour créer un DataLoader PyTorch. A vous de trouver comment créer les tenseurs train_X et train_y (lisez la documentation de sklearn.datasets.load_iris()).
import torch
train_loader = torch.utils.data.DataLoader(
torch.utils.data.TensorDataset(train_X, train_y), batch_size=batch_size, shuffle=True
)
5) Évaluez la performance du modèle sur l'ensemble d'entraînement en calculant les métriques suivantes :
Implémentez-la vous même, puis comparez votre résultat avec la fonction de sklearn.
6) Affichez la matrice de confusion. Quelles sont les erreurs commises par votre modèle ?
Aidez-vous de sklearn.metrics.confusion_matrix et matplotlib.pyplot.imshow (ou matshow).
1) Charger le jeu de données BreastCancer depuis sklearn et affichez le sous la forme d'un DataFrame pandas.
Ce jeu de données contient les informations de patients, et l'objectif est de savoir si celui-ci est malade ou non.
2) Répondez aux questions suivantes :
3) Créez deux jeux de données distincts : un pour l'entraînement et un pour la validation du modèle. Utilisez 70% des données pour l'entraînement et 30% pour la validation.
4) Créez un MLP à 3 couches (entrée, cachée, sortie) pour classer ces données et entraînez le par batch de 8.
A chaque époque de l'entraînement :
⚠️ Il est préférable de ne pas calculer les performances (autres que la loss) sur les données du jeu d'entraînement. Cela peut avoir un coût calculatoire important et n'est pas très utile.
❓Est-ce une bonne idée de calculer la Validation accuracy ? Pourquoi ?
5) Rechargez la meilleure version du modèle et calculez les métriques suivantes sur le jeu de validation:
Implémentez-les vous même, puis comparez vos résultats avec les fonctions de sklearn.
6) Affichez la matrice de confusion. Si votre modèle avait été un médecin :
7) Modifiez la fonction de coût pour pénaliser plus fortement les erreurs sur la classe "malade". Entraînez à nouveau le modèle.
0) Installez et importez la bibliothèque wandb, créez un compte sur https://wandb.ai/.
1) Charger le jeu de données Digits depuis sklearn et affichez le sous la forme d'un DataFrame pandas.
Ce jeu de données contient des images de chiffres manuscrits, et l'objectif est de prédire quel chiffre est représenté dans chaque image.
2) Répondez aux questions suivantes :
3) Créez deux jeux de données distincts : un pour l'entraînement et un pour la validation du modèle. Utilisez 70% des données pour l'entraînement et 30% pour la validation.
4) Créez un MLP à 5 couches pour classer ces données. Faites en sorte que le réseau ait 2 sorties : une pour les logits, et une pour les caractéristiques en sortie de l'avant dernière couche (features embedding).
5) Entraînez le réseau en utilisant la bibliothèque wandb pour le suivi des expériences.
⚠️ Ce réseau a 2 sorties, on utilise uniquement les logits pour calculer la fonction de coût.
A chaque époque de l'entraînement :
6) Affichez la matrice de confusion. Quels sont les chiffres les plus souvent confondus ?
7) Utilisez sklearn.manifold.TSNE pour réduire les dimensions des features embeddings à 2D. Affichez les points dans un nuage de points 2D en coloriant chaque point selon sa classe.
Analysez le résultat. Cela est-il cohérent avec ce que vous observez dans la matrice de confusion ?
8) Faites varier les hyperparamètres suivants et analysez leur impact sur les performances du modèle :
Paramétez wandb pour suivre ces hyperparamètres, et modifier l'interface web pour afficher leur importance sur les performances du modèle.