Commit d8fa1bc4 authored by TheophilePACE's avatar TheophilePACE

tp clustering v0.1

parent a45a3813
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# TP Clustering / non-supervisé"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Aujourd'hui, on utilisera les données proposées par scikit learn. Ces données sont déjà nettoyées, déjà prêtes dans la libraries. \n",
"Pour commencer, importer les libraries : numpy, matplotlib et le module datasets de scikit-learn"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Maintenant, on va utiliser les fonctions suivantes de la libraire dataset : datasets.make_circles, datasets.make_moons, datasets.make_blobs, datasets.make_blobs.\n",
"Consulter la documentation intégrées de ces méthodes.\n",
"Vous pouvez trouver des exemples d'utilisation de ces méthodes sur https://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Générer 4 datasets, avec les paramètres suivants: n = 100, noise = .05, random_state = 8, cluster_std=[1.0, 2.5, 0.5]."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tracer les données générées dans $R^2$.\n",
"Commenter la difficulté du clustering."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Formatage du jeu de données"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour entrainer nos alogrithmes, on va splitter notre jeu de données en 3 sous jeu de données: \n",
"- train\n",
"- validation\n",
"- test\n",
"\n",
"Pourquoi est-ce nécessaire?\n",
"\n",
"Pour cela, utiliser la fonction scikit-learn `sklearn.model_selection.train_test_split`. Importer cette méthode, "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# K-means\n",
"Utiliser les k-means sur chacun des datasets. __Conseil:__ : Une cellule par dataset pour plus de clarté."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comment avez vous choisi K ? Faites quelques testes, commentez les résultats. Gardez le meilleur hyperparmètre K. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Relancer plusieurs fois pour chaque dataset. Obtenez-vous les mêmes résultats? Si non, pourquoi?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ACP / PCA / Principal Components Analysis\n",
"On a vu la PCA ce matin. La fonction Scikit pour cette transformation est `sklearn.decomposition.PCA`. À vrai dire, c'est un objet. Consulter la documentation rapidemment : https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html ou la doc intégrée.\n",
"Effectuer une PCA sur vos données avec 2 composants. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Commentez la variance que vous avez pu expliquer. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Charger le jeu de données iris. Ce jeu de données est un dataset très connu, assez facile. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Effectuer une PCA. Quelle est la variance expliquée?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finalement, tracer ce jeu de données dans $R^2$. Est-ce facile de retrouver des clusters?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Si vous vous ennuyez\n",
"Si vous avez le temps, essayez de lancer un k-means sur les iris. Ensuite, effectuez une PCA, puis relancer des k-means."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Est-ce que vos résultats sont différents ? \n",
"Essayer de tracer vos résultats, en indiquant les clusters trouvés."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment