Explicación de los clasificadores de Análisis Discriminante

Intermediate

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

Introducción

El Análisis Discriminante Lineal y Cuadrático (Linear and Quadratic Discriminant Analysis, LDA y QDA) son dos clasificadores clásicos utilizados en el aprendizaje automático. El LDA utiliza una superficie de decisión lineal, mientras que el QDA utiliza una superficie de decisión cuadrática. Estos clasificadores son populares porque tienen soluciones en forma cerrada, funcionan bien en la práctica y no tienen hiperparámetros que ajustar.

En este laboratorio, exploraremos cómo realizar LDA y QDA utilizando scikit-learn, una popular biblioteca de aprendizaje automático en Python.

Consejos para la MV

Después de que la máquina virtual (VM) haya terminado de iniciar, haz clic en la esquina superior izquierda para cambiar a la pestaña Notebook y acceder a Jupyter Notebook para practicar.

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

Si encuentras problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona comentarios después de la sesión y resolveremos rápidamente el problema para ti.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 81%. Ha recibido una tasa de reseñas positivas del 95% por parte de los estudiantes.

Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas necesarias, incluyendo scikit-learn (sklearn) y matplotlib, que se utilizarán para la visualización de datos.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis

Generar datos sintéticos

A continuación, generaremos datos sintéticos para demostrar la diferencia entre LDA y QDA. Utilizaremos la función make_classification de scikit-learn para crear dos clases con patrones distintos.

from sklearn.datasets import make_classification

## Generate synthetic data
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, n_classes=2, random_state=1)

Entrenar y visualizar los clasificadores

Ahora, entrenaremos los clasificadores LDA y QDA con los datos sintéticos y visualizaremos los límites de decisión.

## Train the LDA classifier
lda = LinearDiscriminantAnalysis()
lda.fit(X, y)

## Train the QDA classifier
qda = QuadraticDiscriminantAnalysis()
qda.fit(X, y)

## Plot the decision boundaries
def plot_decision_boundary(classifier, title):
    h = 0.02  ## step size in the mesh
    x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
    y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    Z = classifier.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    plt.contourf(xx, yy, Z, alpha=0.8)
    plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
    plt.xlabel('Feature 1')
    plt.ylabel('Feature 2')
    plt.title(title)

plt.figure(figsize=(10, 4))

plt.subplot(1, 2, 1)
plot_decision_boundary(lda, 'Linear Discriminant Analysis')

plt.subplot(1, 2, 2)
plot_decision_boundary(qda, 'Quadratic Discriminant Analysis')

plt.tight_layout()
plt.show()

Realizar reducción de dimensionalidad utilizando LDA

El Análisis Discriminante Lineal (LDA) también se puede utilizar para la reducción de dimensionalidad supervisada. Demostraremos esto reduciendo la dimensión del conjunto de datos Iris.

from sklearn.datasets import load_iris

## Load the Iris dataset
iris = load_iris()
X, y = iris.data, iris.target

## Perform dimensionality reduction using LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)

Resumen

El Análisis Discriminante Lineal y Cuadrático (LDA y QDA) son dos clasificadores clásicos utilizados en el aprendizaje automático (machine learning). El LDA utiliza una superficie de decisión lineal, mientras que el QDA utiliza una superficie de decisión cuadrática. Estos clasificadores tienen soluciones en forma cerrada y funcionan bien en la práctica. El LDA también se puede utilizar para la reducción de dimensionalidad supervisada.