Graficar PCA vs LDA

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, compararemos el rendimiento de dos algoritmos populares de reducción de dimensionalidad, Análisis de Componentes Principales (PCA, por sus siglas en inglés) y Análisis Discriminante Lineal (LDA, por sus siglas en inglés), en el conjunto de datos Iris. El conjunto de datos Iris contiene 3 tipos de flores Iris con 4 atributos: longitud del sépalo, ancho del sépalo, longitud del pétalo y ancho del pétalo.

Consejos sobre la VM

Una vez que se haya iniciado 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/discriminant_analysis("Discriminant Analysis") sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/decomposition("Matrix Decomposition") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/discriminant_analysis -.-> lab-49242{{"Graficar PCA vs LDA"}} sklearn/decomposition -.-> lab-49242{{"Graficar PCA vs LDA"}} ml/sklearn -.-> lab-49242{{"Graficar PCA vs LDA"}} end

Cargar el conjunto de datos

Primero, necesitamos cargar el conjunto de datos Iris utilizando la función load_iris() incorporada en scikit-learn.

import matplotlib.pyplot as plt
from sklearn import datasets

iris = datasets.load_iris()

X = iris.data
y = iris.target
target_names = iris.target_names

Realizar PCA

A continuación, realizaremos el Análisis de Componentes Principales (PCA, por sus siglas en inglés) en el conjunto de datos para identificar la combinación de atributos que explica la mayor varianza en los datos. Graficaremos las diferentes muestras en los primeros dos componentes principales.

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)

## Porcentaje de varianza explicada para cada componente
print("Explained variance ratio (first two components): %s" % str(pca.explained_variance_ratio_))

plt.figure()
colors = ["navy", "turquoise", "darkorange"]
lw = 2

for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=0.8, lw=lw, label=target_name)

plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("PCA of Iris Dataset")
plt.show()

Realizar LDA

Ahora, realizaremos el Análisis Discriminante Lineal (LDA, por sus siglas en inglés) en el conjunto de datos para identificar los atributos que explican la mayor varianza entre clases. A diferencia del PCA, el LDA es un método supervisado que utiliza las etiquetas de clase conocidas.

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

plt.figure()
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r2[y == i, 0], X_r2[y == i, 1], alpha=0.8, color=color, label=target_name)

plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("LDA of Iris Dataset")
plt.show()

Comparar los resultados

Finalmente, compararemos los resultados del PCA y el LDA. Podemos ver que el LDA tiene un mejor rendimiento que el PCA para separar las tres clases en el conjunto de datos Iris.

Resumen

En este laboratorio, aprendimos cómo realizar el Análisis de Componentes Principales (PCA) y el Análisis Discriminante Lineal (LDA) en el conjunto de datos Iris utilizando scikit-learn. También comparamos el rendimiento de estos dos algoritmos de reducción de dimensionalidad y descubrimos que el LDA tiene un mejor rendimiento que el PCA para separar las diferentes clases en el conjunto de datos.