In apprendimento automatico , la classificazione è il processo di categorizzazione di un dato insieme di dati in diverse categorie. Nell'apprendimento automatico, per misurare le prestazioni del modello di classificazione, utilizziamo il matrice di confusione . Attraverso questo tutorial, comprendi il significato della matrice di confusione.
Cos'è una matrice di confusione?
UN matrice di confusione è una matrice che riassume le prestazioni di un modello di machine learning su un insieme di dati di test. È un mezzo per visualizzare il numero di istanze accurate e imprecise in base alle previsioni del modello. Viene spesso utilizzato per misurare le prestazioni dei modelli di classificazione, che mirano a prevedere un'etichetta categoriale per ciascuna istanza di input.
La matrice visualizza il numero di istanze prodotte dal modello sui dati di test.
- Veri positivi (TP): si verificano quando il modello prevede accuratamente un punto dati positivo.
- Veri negativi (TN) : si verificano quando il modello prevede accuratamente un punto dati negativo.
- Falsi positivi (FP) : si verificano quando il modello prevede in modo errato un punto dati positivo.
- Falso negativi (FN) : si verifica quando il modello prevede erroneamente un punto dati negativo.
Perché abbiamo bisogno di una matrice di confusione?
Quando si valuta la prestazione di un modello di classificazione, una matrice di confusione è essenziale. Offre un'analisi approfondita delle previsioni vere positive, vere negative, false positive e false negative, facilitando una comprensione più profonda delle previsioni di un modello richiamo, accuratezza, precisione, ed efficacia complessiva nella distinzione di classe. Quando è presente una distribuzione di classi non uniforme in un set di dati, questa matrice è particolarmente utile per valutare le prestazioni di un modello oltre i parametri di precisione di base.
Capiamo la matrice di confusione con gli esempi:
Matrice di confusione Per la classificazione binaria
Di seguito è mostrata una matrice di confusione 2X2 per il riconoscimento dell'immagine avente un'immagine Cane o un'immagine Non Cane.
| Effettivo | ||
|---|---|---|---|
Cane | Non cane | ||
Previsto | Cane | Vero positivo | Falso positivo |
Non cane | Falso negativo | Vero negativo |
- Vero positivo (TP): I conteggi totali che hanno sia i valori previsti che quelli effettivi sono Dog.
- Vero negativo (TN): I conteggi totali che hanno sia i valori previsti che quelli effettivi non sono Dog.
- Falso positivo (FP): È il conteggio totale che prevede che la previsione sia Cane mentre in realtà Non è Cane.
- Falso negativo (FN): È il conteggio totale che prevede che la previsione non sia Cane mentre in realtà lo è.
Esempio di problemi di classificazione binaria
Indice | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
Effettivo | Cane | Cane | Cane | Non cane | Cane | Non cane | Cane | Cane | Non cane | Non cane |
Previsto | Cane | Non cane | Cane | Non cane | Cane | Cane | Cane | Cane | Non cane | Non cane |
Risultato | Città | FN | Città | TN | Città | FP | Città | Città | TN | TN |
- Conteggi effettivi dei cani = 6
- Conteggi effettivi non di cani = 4
- Conteggi veri positivi = 5
- Conteggi falsi positivi = 1
- Conteggi dei veri negativi = 3
- Conteggi falsi negativi = 1
| Previsto | ||
|---|---|---|---|
Cane | Non cane | ||
Effettivo | Cane | Vero positivo | Falso negativo |
Non cane | Falso positivo | Vero negativo |
Metriche basate sui dati della matrice di confusione
1. Precisione
L'accuratezza viene utilizzata per misurare le prestazioni del modello. È il rapporto tra il totale delle istanze corrette e il totale delle istanze.
Per il caso di cui sopra:
Precisione = (5+3)/(5+3+1+1) = 8/10 = 0,8
2. Precisione
Precisione è una misura di quanto siano accurate le previsioni positive di un modello. È definito come il rapporto tra le previsioni positive vere e il numero totale di previsioni positive effettuate dal modello.
Per il caso di cui sopra:
Precisione = 5/(5+1) =5/6 = 0,8333
3. Richiamo
Richiamare misura l'efficacia di un modello di classificazione nell'identificare tutte le istanze rilevanti da un set di dati. È il rapporto tra il numero di istanze di veri positivi (TP) e la somma di istanze di veri positivi e falsi negativi (FN).
Per il caso di cui sopra:
Richiamo = 5/(5+1) =5/6 = 0,8333
Nota: Utilizziamo la precisione quando vogliamo ridurre al minimo i falsi positivi, aspetto fondamentale in scenari come il rilevamento delle e-mail di spam, in cui classificare erroneamente un messaggio non spam come spam è costoso. E usiamo il richiamo quando è essenziale ridurre al minimo i falsi negativi, come nelle diagnosi mediche, dove identificare tutti i casi effettivamente positivi è fondamentale, anche se risulta in alcuni falsi positivi.
4. Punteggio F1
Punteggio F1 viene utilizzato per valutare le prestazioni complessive di un modello di classificazione. È la media armonica di precisione e richiamo,
Per il caso di cui sopra:
Punteggio F1: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333
Bilanciamo precisione e ricordo con il punteggio F1 quando è necessario un compromesso tra la riduzione al minimo dei falsi positivi e dei falsi negativi, come nei sistemi di recupero delle informazioni.
5. Specificità:
La specificità è un'altra metrica importante nella valutazione dei modelli di classificazione, in particolare nella classificazione binaria. Misura la capacità di un modello di identificare correttamente le istanze negative. La specificità è anche nota come tasso vero negativo.
Specificità=3/(1+3)=3/4=0,75
6. Errore di tipo 1 e di tipo 2
Errore di tipo 1
L'errore di tipo 1 si verifica quando il modello prevede un'istanza positiva, ma in realtà è negativa. La precisione è influenzata dai falsi positivi, poiché è il rapporto tra i veri positivi e la somma dei veri positivi e dei falsi positivi.
Ad esempio, in uno scenario giudiziario, un errore di tipo 1, spesso definito falso positivo, si verifica quando il tribunale condanna erroneamente un individuo come colpevole quando, in realtà, è innocente del presunto crimine. Questo grave errore può avere conseguenze profonde, portando alla punizione ingiusta di una persona innocente che non ha commesso il reato in questione. Prevenire gli errori di tipo 1 nei procedimenti legali è fondamentale per garantire che la giustizia sia adeguatamente servita e che gli individui innocenti siano protetti da danni e punizioni ingiustificate.
Errore di tipo 2
L'errore di tipo 2 si verifica quando il modello non riesce a prevedere un'istanza positiva. Il ricordo è direttamente influenzato dai falsi negativi, poiché è il rapporto tra i veri positivi e la somma dei veri positivi e dei falsi negativi.
Nel contesto dei test medici, un errore di tipo 2, spesso noto come falso negativo, si verifica quando un test diagnostico non riesce a rilevare la presenza di una malattia in un paziente che ne è veramente affetto. Le conseguenze di un simile errore sono significative, poiché potrebbero ritardare la diagnosi e il successivo trattamento.
La precisione enfatizza la minimizzazione dei falsi positivi, mentre il ricordo si concentra sulla minimizzazione dei falsi negativi.
Implementazione della matrice di confusione per la classificazione binaria utilizzando Python
Passaggio 1: importa le librerie necessarie
Pitone import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt> Passaggio 2: crea l'array NumPy per le etichette effettive e previste
Pitone actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])> Passaggio 3: calcola la matrice di confusione
Pitone cm = confusion_matrix(actual,predicted)> Passaggio 4: traccia la matrice di confusione con l'aiuto della mappa termica Seaborn
Pitone cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()> Produzione :
Passaggio 5: Rapporto sulle classificazioni basato sulle metriche di confusione
Pitone print(classification_report(actual, predicted))> Produzione :
richiamo di precisione supporto punteggio f1 Cane 0,83 0,83 0,83 6 Non cane 0,75 0,75 0,75 4 precisione 0,80 10 media macro 0,79 0,79 0,79 10 media ponderata 0,80 0,80 0,80 10
Matrice di confusione per la classificazione multiclasse
Ora, consideriamo che ci siano tre classi. Di seguito è mostrata una matrice di confusione 3X3 per l'immagine avente tre classi.
Qui, TP= Vero Positivo, FP= Falso Positivo, FN= Falso Negativo.
| Indice | Effettivo | Previsto | Città | FP | FN |
|---|---|---|---|---|---|
| 1 | Gatto | Gatto | 1 | 0 | 0 |
| 2 | Cane | Cane | 1 | 0 | 0 |
| 3 | Cavallo | Cane | 0 | 1 | 1 |
| 4 | Gatto | Gatto | 1 | 0 | 0 |
| 5 | Cane | Cane | 1 | 0 | 0 |
| 6 | Gatto | Gatto | 1 | 0 | 0 |
| 7 | Cane | Cane | 1 | 0 | 0 |
| 8 | Cavallo | Cavallo | 1 | 0 | 0 |
| 9 | Cavallo | Cavallo | 1 | 0 | 0 |
| 10 | Gatto | Cane | 0 | 1 | 1 |
- Veri positivi (TP): 8 (1+1+0+1+1+1+1+1+1+0)
- Falsi positivi (FP): 2 (0+0+1+0+0+0+0+0+0+1)
- Falsi negativi (FN): 2 (0+0+1+0+0+0+0+0+0+1)
Di seguito è mostrata una matrice di confusione 3X3 per tre classi.
| Previsto | |||
|---|---|---|---|---|
Gatto | Cane | Cavallo modelli di software Java | ||
| Gatto | Città | FP | FN |
Cane | FP | Città | FN | |
Cavallo | FN | FP | Città |
Riepilogo a livello di classe:
- Per Gatto: [PT=3,FP=0,FN=1]
- Indice 1: Vero positivo (Gatto reale, Gatto previsto)
- Indice 4: Vero positivo (Gatto reale, Gatto previsto)
- Indice 6: Vero positivo (Gatto reale, Gatto previsto)
- Indice 10: Falso negativo (Gatto reale, Cane previsto)
- Per il cane: [PT=3,FP=2,FN=0]
- Indice 2: vero positivo (cane effettivo, cane previsto)
- Indice 5: vero positivo (cane effettivo, cane previsto)
- Indice 7: vero positivo (cane effettivo, cane previsto)
- Indice 10: Falso positivo (Gatto reale, Cane previsto)
- Indice 3: Falso positivo (Cavallo effettivo, Cane previsto)
- Per il cavallo: [PT=2,FP=0,FN=1]
- Indice 8: Vero positivo (Cavallo effettivo, Cavallo previsto)
- Indice 9: Vero positivo (Cavallo effettivo, Cavallo previsto)
- Indice 3: Falso negativo (Cavallo reale, Cane previsto)
Quindi la matrice di confusione sarà:
| Previsto | |||
|---|---|---|---|---|
Gatto | Cane | Cavallo | ||
| Gatto | TP(3) | FP(1) | FN(0) |
Cane | FN(0) | TP(3) | FN(1) | |
Cavallo | FN(1) | FP(1) | TP(2) |
Implementazione della matrice di confusione per la classificazione binaria utilizzando Python
Passaggio 1: importa le librerie necessarie
Pitone import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt> Passaggio 2: crea l'array NumPy per le etichette effettive e previste
Pitone actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])> Passaggio 3: calcola la matrice di confusione
Pitone cm = confusion_matrix(actual,predicted)> Passaggio 4: traccia la matrice di confusione con l'aiuto della mappa termica Seaborn
Pitone cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()> Produzione:
Passaggio 5: Rapporto sulle classificazioni basato sulle metriche di confusione
Pitone print(classification_report(actual, predicted))> Produzione :
richiamo precisione supporto punteggio f1 Gatto 1,00 0,75 0,86 4 Cane 0,60 1,00 0,75 3 Cavallo 1,00 0,67 0,80 3 precisione 0,80 10 media macro 0,87 0,81 0,80 10 media ponderata 0,88 0,80 0,81 10
Conclusione
In sintesi, la matrice di confusione è uno strumento essenziale per valutare l’efficacia dei modelli di classificazione. Approfondimenti sull'accuratezza, precisione, richiamo ed efficacia generale di un modello nella classificazione delle istanze sono forniti dall'analisi approfondita delle previsioni vero positivo, vero negativo, falso positivo e falso negativo che offre. L'articolo forniva esempi per illustrare il calcolo di ciascuna metrica e ne discuteva l'importanza. Ha inoltre dimostrato come le matrici di confusione possano essere implementate in Python per scenari di classificazione binaria e multiclasse. I professionisti possono prendere decisioni ben informate riguardo alle prestazioni del modello, in particolare quando hanno a che fare con distribuzioni di classi sbilanciate, comprendendo e applicando questi parametri.
Domande frequenti sulla matrice di confusione
D. Come interpretare una matrice di confusione?
Una matrice di confusione riassume le prestazioni di un modello di classificazione, con voci che rappresentano istanze di vero positivo, vero negativo, falso positivo e falso negativo, fornendo informazioni dettagliate sull'accuratezza e sugli errori del modello.
D. Quali sono i vantaggi dell'utilizzo della matrice di confusione?
La matrice di confusione fornisce una valutazione completa delle prestazioni di un modello di classificazione, offrendo approfondimenti su veri positivi, veri negativi, falsi positivi e falsi negativi, aiutando l’analisi sfumata oltre l’accuratezza di base.
Q. Quali sono alcuni esempi di applicazioni della matrice di confusione?
Le matrici di confusione trovano applicazioni in vari campi, tra cui la diagnosi medica (identificazione di veri/falsi positivi/negativi per malattie), il rilevamento di frodi, l'analisi del sentiment e la valutazione dell'accuratezza del riconoscimento delle immagini.
D. Cos'è il diagramma della matrice di confusione?
Un diagramma a matrice di confusione rappresenta visivamente le prestazioni di un modello di classificazione. Visualizza i valori vero positivo, vero negativo, falso positivo e falso negativo in un formato a matrice strutturata.
D. Quali sono i tre valori della matrice di confusione?
I tre valori della matrice di confusione sono vero positivo (istanze positive previste correttamente), vero negativo (istanze negative previste correttamente) e falso positivo (istanze positive previste erroneamente).