Introduction
L'Analyse Factorielle est une méthode statistique utilisée pour découvrir des modèles dans les données. Elle est souvent utilisée pour identifier des variables latentes qui expliquent les corrélations entre les variables observées. Dans ce laboratoire, nous utiliserons l'ensemble de données Iris pour illustrer comment l'Analyse Factorielle peut être utilisée pour révéler la structure sous-jacente des données.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter Notebook pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.
Charger l'ensemble de données Iris et tracer la covariance des caractéristiques
Nous commencerons par charger l'ensemble de données Iris et tracer la covariance des caractéristiques pour voir comment elles sont corrélées.
import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import FactorAnalysis, PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
## Charger les données Iris
data = load_iris()
X = StandardScaler().fit_transform(data["data"])
feature_names = data["feature_names"]
## Tracer la covariance des caractéristiques Iris
ax = plt.axes()
im = ax.imshow(np.corrcoef(X.T), cmap="RdBu_r", vmin=-1, vmax=1)
ax.set_xticks([0, 1, 2, 3])
ax.set_xticklabels(list(feature_names), rotation=90)
ax.set_yticks([0, 1, 2, 3])
ax.set_yticklabels(list(feature_names))
plt.colorbar(im).ax.set_ylabel("$r$", rotation=0)
ax.set_title("Matrice de corrélation des caractéristiques Iris")
plt.tight_layout()
Exécuter l'analyse factorielle avec rotation Varimax
Nous allons maintenant exécuter l'analyse factorielle sur l'ensemble de données Iris avec rotation Varimax pour découvrir la structure sous-jacente des données. Nous comparerons les résultats avec la PCA et l'AF non tournée.
## Exécuter l'analyse factorielle avec rotation Varimax
n_comps = 2
methods = [
("PCA", PCA()),
("AF non tournée", FactorAnalysis()),
("AF Varimax", FactorAnalysis(rotation="varimax")),
]
fig, axes = plt.subplots(ncols=len(methods), figsize=(10, 8), sharey=True)
for ax, (method, fa) in zip(axes, methods):
fa.set_params(n_components=n_comps)
fa.fit(X)
components = fa.components_.T
print("\n\n %s :\n" % method)
print(components)
vmax = np.abs(components).max()
ax.imshow(components, cmap="RdBu_r", vmax=vmax, vmin=-vmax)
ax.set_yticks(np.arange(len(feature_names)))
ax.set_yticklabels(feature_names)
ax.set_title(str(method))
ax.set_xticks([0, 1])
ax.set_xticklabels(["Comp. 1", "Comp. 2"])
fig.suptitle("Facteurs")
plt.tight_layout()
plt.show()
Analyser les résultats
Nous allons maintenant analyser les résultats de l'analyse factorielle pour voir comment la structure sous-jacente de l'ensemble de données Iris est révélée.
Interpréter les résultats
Nous allons maintenant interpréter les résultats de l'analyse factorielle pour mieux comprendre la structure sous-jacente de l'ensemble de données Iris.
Sommaire
Dans ce laboratoire, nous avons utilisé l'analyse factorielle avec rotation Varimax pour découvrir la structure sous-jacente de l'ensemble de données Iris. Nous avons comparé les résultats avec la PCA et l'AF non tournée et analysé les résultats pour mieux comprendre la structure sous-jacente des données.