A análise discriminante linear (LDA) é uma abordagem usada no aprendizado de máquina supervisionado para resolver problemas de classificação multiclasse. A LDA separa múltiplas classes com múltiplas funcionalidades por meio da redução da dimensionalidade dos dados. Essa técnica é importante na ciência de dados, pois ajuda a otimizar modelos de aprendizado de máquina.
A análise discriminante linear, também conhecida como análise discriminante normal (NDA) ou análise de funções discriminantes (DFA), segue um modelo generativo. Isso significa que os algoritmos de LDA modelam a distribuição dos dados para cada classe e utilizam o teorema de Bayes1 para classificar novos pontos de dados. O teorema de Bayes calcula probabilidades condicionais, isto é, a probabilidade de um evento ocorrer dado que outro evento já ocorreu. Os algoritmos de LDA fazem previsões usando Bayes para calcular a probabilidade de que um conjunto de dados de input pertença a uma determinada saída. Para uma visão geral da estatística bayesiana e seu impacto nos algoritmos de aprendizado supervisionado, consulte classificadores Naïve Bayes.
A LDA funciona identificando uma combinação linear de funcionalidades que separa ou caracteriza duas ou mais classes de objetos ou eventos. A LDA faz isso projetando dados com duas ou mais dimensões em uma única dimensão para facilitar a classificação. Por isso, essa técnica às vezes é chamada de redução de dimensionalidade. Essa versatilidade permite que a LDA seja usada para problemas de classificação multiclasse, ao contrário da regressão logística, que se limita à classificação binária. Dessa forma, a LDA é frequentemente aplicada para aprimorar o funcionamento de outros algoritmos de classificação, como decision tree, random forest ou máquinas de vetor de suporte (SVM).
A análise discriminante linear (LDA) baseia-se no discriminante linear de Fisher, um método estatístico desenvolvido por Sir Ronald Fisher na década de 1930 e posteriormente generalizado por C. R. Rao para múltiplas classes. O método de Fisher busca identificar uma combinação linear de funcionalidades que discrimina entre duas ou mais classes de objetos ou eventos rotulados.
O método de Fisher reduz dimensões ao separar classes nos dados projetados. A separação significa maximizar a distância entre as médias projetadas e minimizar a variância projetada dentro das classes.
Suponha que um banco esteja decidindo se aprova ou rejeita pedidos de empréstimo. O banco usa duas funcionalidades para tomar essa decisão: a pontuação de crédito do solicitante e a renda anual.
Aqui, as duas funcionalidades ou classes são plotadas em um plano bidimensional (2D) com um eixo X-Y. Se tentássemos classificar aprovações usando apenas uma funcionalidade, poderíamos observar sobreposição. Aplicando a LDA, conseguimos traçar uma linha reta que separa completamente esses dois conjuntos de dados. A LDA faz isso ao utilizar os eixos X–Y para criar um novo eixo, separando as diferentes classes com uma linha reta e projetando os dados nesse novo eixo.
Para criar esse novo eixo e reduzir a dimensionalidade, a LDA segue os seguintes critérios:
Os modelos de LDA operam projetando um espaço de funcionalidades, ou seja, um conjunto de dados com n dimensões, em um espaço menor "k", onde k é menor ou igual a n – 1, sem perder informações sobre as classes. Um modelo de LDA compreende as propriedades estatísticas calculadas para os dados em cada classe. Quando há múltiplas funcionalidades ou variáveis, essas propriedades são calculadas com base na distribuição Gaussiana multivariada3.
As multivariáveis são:
As propriedades estatísticas estimadas a partir do conjunto de dados são inseridas na função da LDA para fazer previsões e criar o modelo de LDA. No entanto, é importante considerar algumas restrições, pois o modelo assume o seguinte:
Por essas razões, a LDA pode não apresentar um bom desempenho em espaços de funcionalidades de alta dimensionalidade.
A redução de dimensionalidade envolve a separação de pontos de dados por meio de uma linha reta. Matematicamente, as transformações lineares são analisadas usando autovetores e autovalores. Imagine que você tenha mapeado um conjunto de dados com múltiplas funcionalidades, resultando em um gráfico de dispersão multidimensional. Os autovetores fornecem a direção dentro do gráfico de dispersão. Os autovalores indicam a importância desses dados direcionais. Um autovalor alto significa que o autovetor associado é mais relevante.
Durante a redução de dimensionalidade, os autovetores são calculados a partir do conjunto de dados e organizados em duas matrizes de dispersão:
Para usar a LDA de forma eficaz, é essencial preparar o conjunto de dados com antecedência. Estas são as etapas e as melhores práticas para implementar a LDA:
1. Pré-processar os dados para garantir que eles estejam normalizados e centralizados
Isso é conseguido passando o parâmetro n_component da LDA, que identifica o número de discriminantes lineares a serem recuperados.
2. Escolher um número apropriado de dimensões para o espaço de menor dimensão
Isso é conseguido passando o parâmetro n_component da LDA, que identifica o número de discriminantes lineares a serem recuperados.
3. Regularize o modelo
A regularização visa impedir o overfitting, onde o modelo estatístico se ajusta exatamente aos seus dados de treinamento e compromete sua precisão.
4. Usar a validação cruzada para avaliar o desempenho do modelo
Você pode avaliar classificadores, como o LDA, ao plotar uma matriz de confusão, com os valores reais das classes dispostos em linhas e os valores previstos em colunas. Uma matriz de confusão facilita identificar se um classificador está confundindo duas classes, isto é, rotulando uma classe erroneamente como outra. Por exemplo, considere uma matriz de confusão 10 x 10 que prevê imagens dos dígitos de 0 a 9. Os valores reais são plotados em linhas no eixo y, enquanto as previsões são distribuídas em colunas no eixo x. Para verificar quantas vezes um classificador confundiu as imagens dos números 4 e 9 no exemplo da matriz 10 x 10, confira a 4ª linha e a 9ª coluna.
A função discriminante linear ajuda a tomar decisões em problemas de classificação, separando os pontos de dados com base nas funcionalidades e classificando-os em diferentes classes ou categorias. O processo de cálculo pode ser resumido nos seguintes passos-chave:
A variância entre classes é a separabilidade entre as classes — a distância entre as médias das classes.
A variância dentro da classe é a distância entre as médias das classes e as amostras.
Isso maximiza a variância entre classes e minimiza a variância dentro da classe. Podemos representar matematicamente a função discriminante linear para duas classes com o seguinte.
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
Onde:
Vamos usar a equação para exemplificar um caso de aprovação de empréstimo. Para recapitular, o banco está decidindo se aprova ou rejeita as solicitações de empréstimo. O banco utiliza duas funcionalidades para tomar essa decisão: a pontuação de crédito do solicitante (x) e a renda anual. O banco coletou dados históricos de solicitações anteriores e se os empréstimos foram aprovados.
Utilizando a função discriminante linear, o banco pode calcular uma pontuação (δ(x)) para cada solicitação de empréstimo.
A equação para a função discriminante linear pode ser semelhante a esta:
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
O banco calcula a função discriminante linear para cada pedido de empréstimo.
O banco pode, assim, automatizar seu processo de aprovação de empréstimo, tomando decisões mais rápidas e consistentes, minimizando o viés humano.
Estes são cenários típicos onde a LDA pode ser aplicada para lidar com problemas complexos e ajudar as organizações a tomar melhores decisões.
Para mitigar o risco, as instituições financeiras devem identificar e minimizar o inadimplemento de crédito. A LDA pode ajudar a identificar solicitantes que podem ter probabilidade de inadimplir empréstimos e aqueles que são dignos de crédito, examinando fatores financeiros e dados de comportamento.
Um diagnóstico rápido e preciso de doenças é fundamental para um tratamento eficaz. Hospitais e prestadores de serviços de saúde precisam interpretar uma grande quantidade de dados médicos. O LDA ajuda a simplificar conjuntos de dados complexos e a melhorar a precisão diagnóstica ao identificar padrões e relações nos dados dos pacientes.
Para um marketing eficaz, empresas de e-commerce devem ser capazes de categorizar bases de clientes diversificadas. O LDA é essencial na segmentação dos clientes, permitindo que as empresas ajustem suas estratégias de marketing para diferentes grupos de consumidores. O resultado é uma experiência de compra mais personalizada, aumentando a fidelidade dos clientes e as vendas.
Produzir produtos de alta qualidade enquanto se minimizam os defeitos é um desafio fundamental. Dados de sensores de maquinário podem ser utilizados com o LDA para identificar padrões associados a defeitos. Ao detectar irregularidades em tempo real, os fabricantes podem tomar ações corretivas imediatas, melhorando a qualidade do produto e reduzindo o desperdício.
Você pode maximizar seu orçamento de publicidade ao direcionar conteúdo personalizado para o público certo, mas identificar esses segmentos de audiência pode ser complicado. O LDA pode simplificar esse processo ao classificar os atributos e comportamentos dos clientes, aprimorando a personalização das campanhas publicitárias. Essa abordagem pode levar a um ROI maior e a uma melhor experiência do cliente.
Para aprofundar-se na análise discriminante linear com Python e aproveitar a biblioteca scikit-learn, explore este tutorial Aprenda algoritmos de classificação usando Python e scikit-learn no IBM watsonx. O tutorial apresenta os conceitos básicos para resolver um problema de aprendizado de máquina baseado em classificação utilizando Python e scikit-learn (também conhecida como sklearn).
Para o tutorial passo a passo, você primeiro importará as bibliotecas Python necessárias para trabalhar com o conjunto de dados Iris, realizará o pré-processamento de dados e criará e avaliará seu modelo LDA:
<Python code snippet>
import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn import seaborn as sns from sklearn.preprocessing import StandardScaler, LabelEncoder from sklearn.model_selection import train_test_split from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, confusion_matrix
Se as bibliotecas não estiverem instaladas, você pode resolver isso usando pip install.
Veja também a scikit-learn documentação para uma visão geral dos principais parâmetros, atributos e exemplos gerais de implementações em Python utilizando sklearn.discriminant_analysis.LinearDiscriminantAnalysis.
Entender as vantagens e limitações da análise discriminante linear (LDA) é crucial ao aplicá-la em diversos problemas de classificação. Compreender os tradeoffs ajuda cientistas de dados e profissionais de machine learning a tomar decisões fundamentadas sobre sua adequação a uma tarefa específica.
- Distribuições de médias compartilhadas: O LDA enfrenta desafios quando as distribuições das classes possuem médias iguais. O LDA tem dificuldade em criar um novo eixo que separe linearmente ambas as classes. Como resultado, o LDA pode não discriminar de forma eficaz entre classes com propriedades estatísticas sobrepostas. Por exemplo, imagine um cenário em que duas espécies de flores possuem comprimentos e larguras de pétalas muito semelhantes. O LDA pode encontrar dificuldades para separar essas espécies com base apenas nessas funcionalidades. Técnicas alternativas, como métodos de análise discriminante não linear, são preferíveis nesse caso.
- Não é adequado para dados não rotulados: O LDA é aplicado como um algoritmo de aprendizado supervisionado, isto é, classifica ou separa dados rotulados. Em contraste, a análise de componentes principais (PCA), outra técnica de redução de dimensionalidade, ignora os rótulos das classes e preserva a variância.
O IBM® Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagem, código, séries temporais e proteções.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
Explore abordagens de aprendizado supervisionado, como máquinas de vetores de suporte e classificadores probabilísticos.
Aprenda conceitos fundamentais e desenvolva suas habilidades com laboratórios práticos, cursos, projetos guiados, avaliações e muito mais.
Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.
Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.
1 James Joyce, Bayes' Theorem, Stanford Encyclopedia of Philosophy, 2003
2Dan A. Simovici, Lecture notes on Fisher Linear Discriminant Name, 2013
3 Penn State Eberly College of Science, Linear Discriminant Analysis, 2023
4 J. T. Oates, Lecture notes on Linear Discriminant Analysis, 2014
5 Guangliang Chen, lecture notes on Linear Discriminant Analysis (LDA), 2020
6, 7 sci-kit learn, Linear and Quadratic Discriminant Analysis, 2023
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io