Relever la structure de l'ensemble de données Iris par analyse factorielle

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/DataPreprocessingandFeatureEngineeringGroup -.-> sklearn/preprocessing("Preprocessing and Normalization") sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/decomposition("Matrix Decomposition") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/preprocessing -.-> lab-49327{{"Relever la structure de l'ensemble de données Iris par analyse factorielle"}} sklearn/decomposition -.-> lab-49327{{"Relever la structure de l'ensemble de données Iris par analyse factorielle"}} sklearn/datasets -.-> lab-49327{{"Relever la structure de l'ensemble de données Iris par analyse factorielle"}} ml/sklearn -.-> lab-49327{{"Relever la structure de l'ensemble de données Iris par analyse factorielle"}} end

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.