L'analisi discriminante lineare (LDA) è un approccio utilizzato nel machine learning supervisionato per risolvere problemi di classificazione multiclasse. La LDA separa più classi con più caratteristiche attraverso la riduzione della dimensionalità dei dati. Questa tecnica è importante nella data science in quanto aiuta a ottimizzare i modelli di machine learning.
L'analisi discriminante lineare, nota anche come analisi discriminante normale (NDA) o analisi della funzione discriminante (DFA), segue un framework di modello generativo. Questo significa che gli algoritmi LDA modellano la distribuzione dei dati per ciascuna classe e usano il teorema di Bayes1 per classificare i nuovi punti dati. Bayes calcola le probabilità condizionali: la probabilità di un evento se si è verificato un altro evento. Gli algoritmi LDA effettuano stime usando Bayes per calcolare la probabilità che un set di dati di input appartenga a un determinato output. Per un controllo delle statistiche bayesiane e del loro impatto sugli algoritmi di apprendimento supervisionato, vedi i classificatori Naïve Bayes.
La LDA funziona individuando una combinazione lineare di caratteristiche che separa o caratterizza due o più classi di oggetti o eventi. La LDA lo fa proiettando i dati con due o più dimensioni in una sola dimensione, in modo che possano essere classificati più facilmente. La tecnica viene quindi talvolta definita riduzione della dimensionalità. Questa versatilità fa sì che la LDA possa essere usata per problemi di classificazione dei dati multiclasse, a differenza della regressione logistica, che è limitata alla classificazione binaria. Spesso quindi la LDA viene applicata per migliorare l'esecuzione di altri algoritmi di classificazione dell'apprendimento, come l'albero decisionale, la foresta casuale o le macchine a vettori di supporto (SVM).
L'analisi discriminante lineare (LDA) si basa sul discriminante lineare di Fisher, un metodo statistico sviluppato da Sir Ronald Fisher negli anni '30 e successivamente semplificato da C. R. Rao come versione multiclasse. Il metodo di Fisher mira a individuare una combinazione lineare di caratteristiche che discrimina tra due o più classi di oggetti o eventi etichettati.
Il metodo di Fisher riduce le dimensioni separando le classi di dati proiettati. Separazione significa massimizzare la distanza tra le medie proiettate e ridurre al minimo la varianza prevista all'interno delle classi.
Supponiamo che sia una banca a decidere se approvare o rifiutare le richieste di prestito. La banca utilizza due caratteristiche per prendere questa decisione: il punteggio di credito del richiedente e il reddito annuo.
Qui, le due caratteristiche o classi sono rappresentate su un piano bidimensionale (2D) con un asse X-Y. Se provassimo a classificare le approvazioni utilizzando una sola caratteristica, potremmo osservare delle sovrapposizioni. Applicando la LDA, possiamo tracciare una linea retta che separa completamente i punti dati di queste due classi. La LDA raggiunge questo obiettivo utilizzando l'asse X-Y per creare un nuovo asse, separando le diverse classi con una linea retta e proiettando i dati sul nuovo asse.
Per creare questo nuovo asse e ridurre la dimensionalità, la LDA segue questi criteri:
Le LDA funzionano proiettando uno spazio di caratteristiche, ovvero un set di dati con n dimensioni, su uno spazio più piccolo "k", in cui k è minore o uguale a n - 1, senza perdere informazioni sulla classe. Un modello LDA comprende le proprietà statistiche calcolate per i dati in ogni classe. Laddove siano presenti più caratteristiche o variabili, queste proprietà vengono calcolate sulla distribuzione gaussiana multivariata3.
Le multivariate sono:
Le proprietà statistiche stimate dal set di dati vengono inserite nella funzione LDA per effettuare previsioni e creare il modello LDA. Tuttavia, ci sono alcuni vincoli da tenere a mente, poiché il modello presuppone quanto segue:
Per questi motivi, la LDA potrebbe non funzionare bene in spazi di caratteristiche ad alta dimensionalità.
La riduzione della dimensionalità comporta la separazione dei punti dati con una linea retta. Matematicamente, le trasformazioni lineari vengono analizzate utilizzando autovettori e autovalori. Immagina di aver mappato un set di dati con più caratteristiche, ottenendo un grafico a dispersione multidimensionale. Gli autovettori forniscono la "direzione" all'interno del grafico a dispersione. Gli autovalori denotano l'importanza di questi dati direzionali. Un autovalore alto significa che l'autovettore associato è più critico.
Durante la riduzione della dimensionalità, gli autovettori vengono calcolati dal set di dati e raccolti in due matrici di dispersione:
Per utilizzare la LDA in modo efficace, è essenziale preparare in anticipo il set di dati. Ecco i passaggi e le best practice per implementare la LDA:
1. Pre-elaborare i dati per assicurarsi che siano normalizzati e centrati
Questo risultato si ottiene passando il parametro n-componente della LDA, che identifica il numero di discriminanti lineari da recuperare.
2. Scegliere un numero appropriato di dimensioni per lo spazio a dimensione inferiore
Questo risultato si ottiene passando il parametro n-componente della LDA, che identifica il numero di discriminanti lineari da recuperare.
3. Regolarizza il modello
La regolarizzazione mira a prevenire l'overfitting, in cui il modello statistico si adatta perfettamente ai propri dati di addestramento e ne mina l'accuratezza.
4. Utilizzare la convalida incrociata per valutare le prestazioni del modello
È possibile valutare classificatori come LDA tracciando una matrice di confusione, in cui i valori di classe effettivi compaiono come righe e i valori di classe stimati come colonne. Una matrice di confusione consente di verificare facilmente se un classificatore sta confondendo due classi, cioè se sta etichettando erroneamente una classe come un'altra. Ad esempio, consideriamo una matrice di confusione 10 x 10 che prevede immagini da zero a 9. I valori effettivi vengono tracciati in righe sull'asse y. Le previsioni vengono tracciate in colonne sull'asse x. Per vedere quante volte un classificatore ha confuso le immagini di 4 e 9 nell'esempio della matrice di confusione 10 x 10, è necessario controllare la 4a riga e la 9a colonna.
La funzione discriminante lineare aiuta a prendere decisioni sui problemi di classificazione separando i punti dati in base alle caratteristiche e classificandoli in diverse classi o categorie. Il processo di calcolo può essere riassunto nei seguenti passaggi chiave:
La varianza tra le classi è la separabilità tra le classi, ovvero la distanza tra le medie delle classi.
La varianza all'interno della classe è la distanza tra le medie della classe e i campioni.
In questo modo si massimizza la varianza tra le classi e si riduce al minimo la varianza all'interno della stessa classe. Possiamo rappresentare matematicamente la funzione discriminante lineare per due classi nel modo che segue.
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
Dove:
Usiamo l'equazione per elaborare un esempio di approvazione di un prestito. Ricapitolando, la banca sta decidendo se approvare o rifiutare le richieste di prestito. La banca utilizza due caratteristiche per prendere questa decisione: il punteggio di credito del richiedente (x) e il reddito annuo. La banca ha raccolto dati storici sui precedenti richiedenti di prestiti e sull'approvazione dei prestiti.
Utilizzando la funzione discriminante lineare, la banca può calcolare un punteggio (δ(x)) per ogni richiesta di prestito.
L'equazione per la funzione discriminante lineare potrebbe essere simile a questa:
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
La banca calcola la funzione discriminante lineare per ogni richiesta di credito.
La banca può quindi automatizzare il processo di approvazione del prestito, prendendo decisioni più rapide e coerenti e riducendo al minimo il bias umano.
Si tratta di scenari tipici in cui la LDA può essere applicata per affrontare problemi complessi e aiutare le organizzazioni a prendere decisioni migliori.
Per mitigare il rischio, gli istituti finanziari devono identificare e ridurre al minimo l'insolvenza creditizia. La LDA può aiutare a identificare i richiedenti che potrebbero essere inadempienti rispetto a quelli che sono meritevoli di credito, passando al setaccio i fattori finanziari e i dati comportamentali.
Una diagnosi rapida e accurata della malattia è fondamentale per un trattamento efficace. Gli ospedali e gli operatori sanitari devono interpretare un'immensa quantità di dati medici. La LDA aiuta a semplificare i set di dati complessi e a migliorare l'accuratezza diagnostica identificando modelli e relazioni nei dati dei pazienti.
Per un marketing efficace, le aziende di e-commerce devono essere in grado di classificare diverse basi di clienti. La LDA gioca un ruolo fondamentale nella segmentazione dei clienti, consentendo alle aziende di e-commerce di adattare le proprie strategie di marketing a diversi gruppi di clienti. Il risultato sono esperienze di acquisto più personalizzate, un aumento della fidelizzazione dei clienti e delle vendite.
Produrre beni di alta qualità riducendo al minimo i difetti è una sfida fondamentale. I dati dei sensori dei macchinari possono essere utilizzati con la LDA per identificare i modelli associati ai difetti. Rilevando le irregolarità in tempo reale, i produttori possono intraprendere azioni correttive immediate, migliorando la qualità dei prodotti e riducendo gli sprechi.
Puoi massimizzare il tuo budget pubblicitario rivolgendoti al destinatario giusto con contenuti personalizzati, ma identificare i rispettivi segmenti di destinatari può essere difficile. La LDA può semplificare questo processo classificando gli attributi e i comportamenti dei clienti, migliorando la personalizzazione delle campagne pubblicitarie. Questo approccio può portare a un maggiore ritorno sull'investimento (ROI) e a una migliore esperienza del cliente.
Per approfondire l'analisi discriminante lineare con Python e sfruttare la libreria scikit-learn, puoi esplorare questo tutorial Impara gli algoritmi di classificazione usando Python e scikit-learn in IBM watsonx™. Il tutorial fornisce le nozioni di base per risolvere un problema di machine learning basato sulla classificazione utilizzando Python e scikit-learn (noto anche come sklearn).
Per il tutorial dettagliato, importerai prima le librerie Python necessarie per lavorare con il set di dati Iris, eseguire la pre-elaborazione dei dati, quindi creare e valutare il modello 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 le librerie non sono installate, è possibile risolvere il problema utilizzando pip install.
Consulta inoltre la documentazione di scikit-learn per una panoramica dei parametri chiave, degli attributi e degli esempi generali di implementazioni di Python che usano sklearn.discriminant_analysis.LinearDiscriminantAnalysis.
Comprendere i vantaggi e i limiti dell'analisi discriminante lineare (LDA) è fondamentale quando la si applica a vari problemi di classificazione. La conoscenza dei compromessi aiuta i data scientist e i professionisti del machine learning a prendere decisioni informate sulla sua idoneità per un particolare compito.
- Distribuzioni con media condivisa: la LDA incontra delle difficoltà quando le distribuzioni delle classi condividono le medie. La LDA fa fatica a creare un nuovo asse che separi linearmente le due classi. Di conseguenza, la LDA potrebbe non discriminare efficacemente tra classi con proprietà statistiche sovrapposte. Ad esempio, immagina uno scenario in cui due specie di fiori hanno una lunghezza e una larghezza dei petali molto simili. La LDA potrebbe avere difficoltà a separare queste specie solo in base a queste caratteristiche. Le tecniche alternative, come i metodi di analisi discriminante non lineari, in questo caso vengono preferite.
- Non è adatta per i dati non etichettati: la LDA viene applicata come algoritmo di apprendimento supervisionato, ossia classifica o separa i dati etichettati. Al contrario, l'analisi delle componenti principali (PCA), un'altra tecnica di riduzione dimensionale, ignora le etichette delle classi e preserva la varianza.
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d’anticipo.
Esplora gli approcci di apprendimento supervisionato, come le macchine a vettori di supporto e i classificatori probabilistici.
Impara i concetti fondamentali e sviluppa le tue competenze con laboratori pratici, corsi, progetti guidati, prove e molto altro.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.
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