Revelando la estructura del conjunto de datos Iris a través del Análisis Factorial

Beginner

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

Introducción

El Análisis Factorial es un método estadístico utilizado para descubrir patrones en los datos. A menudo se utiliza para identificar variables latentes que expliquen las correlaciones entre variables observadas. En este laboratorio, utilizaremos el conjunto de datos Iris para ilustrar cómo el Análisis Factorial se puede utilizar para revelar la estructura subyacente de los datos.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Cargar el conjunto de datos Iris y graficar la covarianza de las características

Comenzaremos cargando el conjunto de datos Iris y graficando la covarianza de las características para ver cómo están correlacionadas.

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

## Cargar datos de Iris
data = load_iris()
X = StandardScaler().fit_transform(data["data"])
nombres_caracteristicas = data["feature_names"]

## Graficar la covarianza de las características de 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(nombres_caracteristicas), rotation=90)
ax.set_yticks([0, 1, 2, 3])
ax.set_yticklabels(list(nombres_caracteristicas))

plt.colorbar(im).ax.set_ylabel("$r$", rotation=0)
ax.set_title("Matriz de correlación de las características de Iris")
plt.tight_layout()

Ejecutar Análisis Factorial con Rotación Varimax

Ahora ejecutaremos el Análisis Factorial en el conjunto de datos Iris con rotación Varimax para descubrir la estructura subyacente de los datos. Compararemos los resultados con el PCA y el Análisis Factorial no rotado.

## Ejecutar análisis factorial con rotación Varimax
n_comps = 2

métodos = [
    ("PCA", PCA()),
    ("Análisis Factorial no rotado", FactorAnalysis()),
    ("Análisis Factorial Varimax", FactorAnalysis(rotation="varimax")),
]
fig, axes = plt.subplots(ncols=len(métodos), figsize=(10, 8), sharey=True)

for ax, (método, fa) in zip(axes, métodos):
    fa.set_params(n_components=n_comps)
    fa.fit(X)

    componentes = fa.components_.T
    print("\n\n %s :\n" % método)
    print(componentes)

    vmax = np.abs(componentes).max()
    ax.imshow(componentes, cmap="RdBu_r", vmax=vmax, vmin=-vmax)
    ax.set_yticks(np.arange(len(nombres_caracteristicas)))
    ax.set_yticklabels(nombres_caracteristicas)
    ax.set_title(str(método))
    ax.set_xticks([0, 1])
    ax.set_xticklabels(["Comp. 1", "Comp. 2"])
fig.suptitle("Factores")
plt.tight_layout()
plt.show()

Analizar los resultados

Ahora analizaremos los resultados del Análisis Factorial para ver cómo se revela la estructura subyacente del conjunto de datos Iris.

Interpretar los resultados

Ahora interpretaremos los resultados del Análisis Factorial para obtener una comprensión más profunda de la estructura subyacente del conjunto de datos Iris.

Resumen

En este laboratorio, utilizamos Análisis Factorial con rotación Varimax para descubrir la estructura subyacente del conjunto de datos Iris. Comparamos los resultados con el PCA y el Análisis Factorial no rotado y analizamos los resultados para obtener una comprensión más profunda de la estructura subyacente de los datos.