Classificadores de Análise Discriminante Explicados

Intermediate

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

Introdução

Análise Discriminante Linear e Quadrática (LDA e QDA) são dois classificadores clássicos utilizados em aprendizado de máquina. A LDA utiliza uma superfície de decisão linear, enquanto a QDA utiliza uma superfície de decisão quadrática. Estes classificadores são populares porque possuem soluções em forma fechada, funcionam bem na prática e não têm hiperparâmetros a ajustar.

Neste laboratório, exploraremos como realizar LDA e QDA usando o scikit-learn, uma popular biblioteca de aprendizado de máquina em Python.

Dicas da Máquina Virtual

Após o início da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você encontrar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para você.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 81%. Recebeu uma taxa de avaliações positivas de 95% dos estudantes.

Importar as bibliotecas necessárias

Primeiro, precisamos importar as bibliotecas necessárias, incluindo o scikit-learn (sklearn) e o matplotlib, que será usado para a visualização de dados.

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

Gerar dados sintéticos

Em seguida, geraremos dados sintéticos para demonstrar a diferença entre LDA e QDA. Usaremos a função make_classification do scikit-learn para criar duas classes com padrões distintos.

from sklearn.datasets import make_classification

## Gerar dados sintéticos
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, n_classes=2, random_state=1)

Treinar e visualizar os classificadores

Agora, treinaremos os classificadores LDA e QDA nos dados sintéticos e visualizaremos as fronteiras de decisão.

## Treinar o classificador LDA
lda = LinearDiscriminantAnalysis()
lda.fit(X, y)

## Treinar o classificador QDA
qda = QuadraticDiscriminantAnalysis()
qda.fit(X, y)

## Plotar as fronteiras de decisão
def plot_decision_boundary(classifier, title):
    h = 0.02  ## tamanho do passo na malha
    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('Característica 1')
    plt.ylabel('Característica 2')
    plt.title(title)

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

plt.subplot(1, 2, 1)
plot_decision_boundary(lda, 'Análise Discriminante Linear')

plt.subplot(1, 2, 2)
plot_decision_boundary(qda, 'Análise Discriminante Quadrática')

plt.tight_layout()
plt.show()

Reduzir a dimensionalidade usando LDA

O LDA também pode ser usado para redução de dimensionalidade supervisionada. Vamos demonstrar isso reduzindo a dimensão do conjunto de dados Iris.

from sklearn.datasets import load_iris

## Carregar o conjunto de dados Iris
iris = load_iris()
X, y = iris.data, iris.target

## Reduzir a dimensionalidade usando LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)

Resumo

Análise Discriminante Linear e Quadrática (LDA e QDA) são dois classificadores clássicos usados no aprendizado de máquina. O LDA utiliza uma superfície de decisão linear, enquanto o QDA utiliza uma superfície de decisão quadrática. Esses classificadores possuem soluções de forma fechada e apresentam bom desempenho na prática. O LDA também pode ser usado para redução de dimensionalidade supervisionada.