Module 3: Apprentissage non supervisé
- Partie 3.1: Analyse en Composantes Principales [Notebook]
- Partie 3.2: Clustering avec KMEANS [Notebook]
ACP - Analyse en Composantes Principales
Il s'agit d'une technique linéaire permettant de projeter des données X de dimenson p en d'autres données T de dimmension d < p.
Objectifs * Visualiser les données * Étudier les liens de corrélation linéaire entre les variables * Réduire le nombre de dimensions
L'idée de l'ACP est de projeter les données sur des axes préservant la variance des données. Avec p=2 ou p=3, on peut visualiser ls données.
Principe : approximer un nuage de points X de dimension p par sa projection linéaire en dimension d < p.
L'ACP maximise la variance des points projectés.
On cherche à réaliser la projection x app Rp-->Rd, d<p
L'espace de projection P inclus dans Rd sera construit de manière progressive.
* D'abord on va chercher le meilleur axe de projection (1D) u1
* Ensuite le meilleur plan en trouvant le deuxième axe u2
* Et ainsi de suite jusqu'à obtenir P
Importation des données
Le jeu de donnés contient des donnés récuellies sur les pays pour l'année 2015, il comporte 158 lignes et 12 colonnes. Nous travaillerons avec les 8 dernières colonnes soit p=8 et la colonne Region pour évaluer notre ACP.
Centrage et Réduction
ACP avec Scikit-learn
import numpy as np
import matplotlib.pyplot as plt
scree = pca.explained_variance_ratio_ * 100
plt.bar(np.arange(len(scree))+1, scree)
plt.plot(np.arange(len(scree))+1, scree.cumsum(), c="red", marker='o')
plt.xlabel("rang de l'axe d'inertie")
plt.ylabel("pourcentage d'inertie")
plt.title("Eboulis des valeurs propres")
plt.show()
Interprétaion
Le premier axe conserve 41,2% le deuxième axe 19,4% et le troisème axe 14,3%. Les trois axes permettent de conserver environ 75% de variance des données. Si l'on souhaite conserver plus de variance, on peut ajouter un axe supplémentaire ou plus. Remarquons qu'il est peu pertinent de conserver toute la variance, autant travailler avec les données initiales, il ne faut pas perdre de vue que l'un des objectifs de l'ACP, c'est la réduction du nombre de dimensions.
1. Visualiser les données
fig = plt.figure(figsize=(16, 4))
fig.add_subplot(1, 3, 1)
plt.scatter(X_projected[:, 0], X_projected[:, 1], c=labels)
plt.title('Axe 1 vs Axe 2')
fig.add_subplot(1, 3, 2)
plt.scatter(X_projected[:, 1], X_projected[:, 2], c=labels)
plt.title('Axe 2 vs Axe 3')
fig.add_subplot(1, 3, 3)
plt.scatter(X_projected[:, 0], X_projected[:, 2], c=labels)
plt.title('Axe 1 vs Axe 3')
plt.show()
2. Étudier les liens de corrélation linéaire entre les variables
Interprétaion
Plus un pays est généreux, plus il est corrompu
Références * Appilquez l'apprentissage statistique aux objets connectés * Appilquez l'apprentissage statistique aux objets connectés * Appilquez l'apprentissage statistique aux objets connectés
Contribuer à ce projet
Toute contribution de votre part serait vivement appréciée. Si vous souhaiter contribuer à ce projet, merci de consulter ce guide CONTRIBUTING
Signaler un bug
Si vous avez rencontré un bug durant l'éxecution de ce notebook, pour le signaler, il suffit d'ouvrir une issue.
Sponsors
* Rintio
* Solidar'IT
Copyright & Licence
Sous licence MIT