Revelando a Estrutura do Conjunto de Dados Iris através da Análise Fatorial

Beginner

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

Introdução

A Análise Fatorial é um método estatístico usado para descobrir padrões nos dados. É frequentemente utilizado para identificar variáveis latentes que explicam as correlações entre variáveis observáveis. Neste laboratório, usaremos o conjunto de dados Iris para ilustrar como a Análise Fatorial pode revelar a estrutura subjacente dos dados.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante a aprendizagem, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para si.

Carregar o conjunto de dados Iris e representar a covariância das características

Começaremos carregando o conjunto de dados Iris e representando a covariância das características para ver como elas estão 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

## Carregar dados Iris
data = load_iris()
X = StandardScaler().fit_transform(data["data"])
feature_names = data["feature_names"]

## Representar a covariância das características 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("Matriz de correlação das características Iris")
plt.tight_layout()

Executar Análise Fatorial com Rotação Varimax

Agora, executaremos a Análise Fatorial no conjunto de dados Iris com rotação Varimax para descobrir a estrutura subjacente dos dados. Compararemos os resultados com PCA e AF não rotacionada.

## Executar análise fatorial com rotação Varimax
n_comps = 2

methods = [
    ("PCA", PCA()),
    ("AF não rotacionada", 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("Fatores")
plt.tight_layout()
plt.show()

Analisar os Resultados

Agora, analisaremos os resultados da Análise Fatorial para ver como a estrutura subjacente do conjunto de dados Iris é revelada.

Interpretar os Resultados

Agora, interpretaremos os resultados da Análise Fatorial para obter insights sobre a estrutura subjacente do conjunto de dados Iris.

Sumário

Neste laboratório, utilizamos a Análise Fatorial com rotação Varimax para descobrir a estrutura subjacente do conjunto de dados Iris. Comparámos os resultados com PCA e AF não rotacionada e analisámos os resultados para obter perspetivas sobre a estrutura subjacente dos dados.