Matrice di confusione in R: come creare e calcolare [con esempi]

Pubblicato: 2021-03-09

R è emerso oggi come uno dei principali pacchetti software per l'analisi statistica e dei dati. È un ambiente open source preferito per le sue potenti capacità di elaborazione, visive e grafiche. Se sei uno studente di ingegneria, un professionista dell'analisi aziendale o qualcuno con un vivo interesse per la scienza dei dati, l'apprendimento del linguaggio di programmazione R può aiutarti in molti modi.

In questo articolo tratteremo alcuni concetti di base dell'apprendimento automatico attraverso questa suite integrata. Più specificamente, discuteremo come calcolare una matrice di confusione in R .

Ma prima di passare ai tecnicismi, cerchiamo innanzitutto di capire perché abbiamo scelto R per questo scopo. È grazie ai seguenti vantaggi che questo linguaggio di programmazione sta guadagnando popolarità tra statistici e data scientist in tutto il mondo:

  • Riproducibile: con R puoi riprodurre report e scrivere codice riutilizzabile
  • Condivisibile: ha una curva di apprendimento bassa, che apre strade per la collaborazione
  • Ripetibile: chiunque può non solo capire cosa hai fatto, ma anche ripetere i passaggi per creare le stesse funzioni sulle proprie macchine

Anche l'uso del linguaggio R nel campo dell'apprendimento automatico è cresciuto per i motivi di cui sopra. Non è necessario essere un programmatore esperto per dare un senso alla sua sintassi. E quindi, ti presentiamo alcuni concetti fondamentali nella prossima sezione.

Sommario

Che cos'è una matrice di confusione?

Una matrice di confusione, o matrice di errore, affronta il problema di classificazione standard in statistica. Comprende un layout di tabella specifico che facilita gli analisti di dati a visualizzare le prestazioni di un algoritmo. Ciò vale in particolare per gli algoritmi di apprendimento supervisionato.

Per elaborare ulteriormente, una matrice di confusione segue un formato N x N, dove N si riferisce al numero di classi target. È possibile utilizzare questa tabella o matrice per valutare le prestazioni di un modello di classificazione. Ciò è possibile perché la matrice confronta i valori previsti con i valori target.

In poche parole, puoi descrivere come il tuo modello di machine learning, un classificatore, in questo caso, funziona su un insieme di dati di test (per i quali hai già i valori veri).

Per comprendere questo metodo, è necessario conoscere i seguenti termini:

  • Vero positivo (TP): i valori positivi sono previsti correttamente
  • Falso positivo (FP): i valori negativi vengono erroneamente previsti come positivi
  • Falso negativo (FN): valori positivi previsti come negativi
  • Vero negativo (TN): valori negativi previsti come valori negativi effettivi

Diamo un'occhiata ad alcuni esempi per avere più chiarezza.

Esempi di matrice di confusione

  • Vero positivo

Quando avevi pronosticato che l'India avrebbe vinto la Coppa del mondo di cricket, e ha vinto.

  • Falso positivo

Quando ti aspettavi che l'India vincesse, ma ha perso.

  • Falso negativo

Quando avevi pronosticato che la Francia non avrebbe vinto, ma ha vinto.

  • Vero negativo

Quando hai previsto che l'India "non avrebbe vinto" la Coppa del mondo di cricket e ha perso la serie nella vita reale.

Mentre ci spostiamo ulteriormente, dovresti ricordare che tutti i valori previsti sono descritti come: Positivo, Negativo, Vero e Falso.

Come calcolare la matrice di confusione in R?

Considera uno scenario in cui hai un elenco di valori previsti o noti e un altro elenco di previsioni dal tuo modello di machine learning. In R, puoi calcolare la matrice di confusione usando una semplice funzione dalla libreria dei punti di inserimento: confusionMatrix(). Non solo può calcolare la matrice, ma anche restituire un rapporto dettagliato per i risultati.

Puoi seguire i passaggi indicati di seguito per esercitarti nel processo di data mining:

  • Testare il set di dati fornito con i risultati attesi.
  • Prevedi le righe del tuo set di dati di test.
  • Determina il conteggio totale delle previsioni corrette e errate per ciascuna classe.

Fatto ciò, troverai i numeri organizzati nel modo seguente:

  • Ogni riga della matrice corrisponderà a una classe prevista e ogni colonna sarà collegata a una classe effettiva.
  • Il numero totale di classificazioni corrette e errate è riportato nella tabella, insieme alle somme per ciascuna classe.

Supponiamo di avere 10 persone divise in due classi, maschi e femmine. Devi organizzare le informazioni come una matrice di confusione quando sai che 2 uomini sono stati classificati come donne, mentre 1 donna è stata classificata come uomo.

donne uomini

donne 3 1

uomini 2 4

Qui, i valori corretti sono organizzati in una linea diagonale da in alto a sinistra a in basso a destra della matrice (3 + 4). I risultati ci dicono che ci sono più errori nel prevedere i membri maschi come donne che nel prevedere le femmine come uomini. L'algoritmo ha effettuato 7 previsioni corrette su 10 possibili risultati, il che significa che ha una precisione del 70%.

Guida alla creazione e al calcolo di una matrice di infusione C in R

Come puoi osservare, la funzione matrice di confusione è uno strumento utile per esaminare i possibili risultati delle tue previsioni. Quindi, prima di iniziare a creare la tua matrice, devi prima avere un "taglio" dei tuoi valori di probabilità. In altre parole, devi segnare una soglia per trasformare le tue probabilità in previsioni di classe.

Per fare ciò, puoi usare la funzione ifelse(). Per esempio:

classe_previsione <-

ifelse (probability_prediction > 0,50,

“classe_positiva”,

“classe_negativa”

)

Puoi anche scrivere la funzione table() per creare una tabella di contingenza in base R. Tuttavia, la funzione confusionMatrix() è nota per produrre preziose statistiche ausiliarie.

Il passaggio successivo consiste nel calcolare la matrice di confusione e altre statistiche associate. Qui, avresti bisogno dei risultati previsti ed effettivi. Prendi, ad esempio, l'affermazione riportata di seguito:

confusionMatrix(previsto, effettivo)

Ora dovresti procedere con la trasformazione delle tue previsioni numeriche in un vettore di previsioni di classe, sat p_class. Supponiamo di voler utilizzare un cutoff di 0,50.

Inoltre, mentre fai previsioni, non dimenticare di nominare le classi positive e negative con indicatori separati. Chiamiamo le classi positive “T” e chiamiamo quelle negative “L”. Questo viene fatto per abbinare le classi ai dati originali.

Ora che hai una classe p e valori effettivi nel set di dati di test, puoi iniziare a creare la tua matrice di confusione, chiamando la funzione confusionMatrix().

In alternativa, potresti voler essere sicuro dell'accuratezza del tuo modello di data mining. In questi casi è consigliabile utilizzare una soglia di 0,10, non 0,90. in seguito, puoi continuare con gli stessi passaggi dell'esercizio precedente.

Con le nuove classi previste, puoi ripetere questa chiamata:

pred <- ifelse(probabilità > soglia, “T”, “L”)

Infine, puoi usare la funzione confusionMatrix() in accento circonflesso:

confusionMatrix(previsto, effettivo)

Con questo, concludiamo questo tutorial sulla funzione matrice di confusione per l'apprendimento automatico in R. Spero che tu l'abbia trovato utile!

Conclusione

Se sei curioso di conoscere R, data science, dai un'occhiata al nostro PG Diploma in Data Science, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1-on- 1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.

Qual è la necessità di creare una matrice di confusione?

I seguenti motivi ci introducono ai vantaggi di avere una matrice di confusione e come affronta i problemi di prestazioni.
1. La matrice di confusione è necessaria per eliminare il problema con l'accuratezza della classificazione. Il rapporto di classificazione causa spesso alcuni problemi nascondendo i dettagli necessari del modello.
2. La matrice di confusione fornisce un'idea delle previsioni e del tipo di errori commessi nel modello di classificazione. Le previsioni corrette e errate sono presentate in modo riepilogativo.
3. Gli errori e i relativi tipi sono classificati per fornire una comprensione delle prestazioni del modello.

Come calcolare la matrice di confusione in R?

La matrice di confusione in R può essere calcolata utilizzando la funzione "confusionMatrix()" della libreria del cursore. Questa funzione non solo calcola la matrice, ma restituisce anche un rapporto dettagliato della matrice. Devi seguire alcuni passaggi per calcolare la tua matrice di confusione.
1. Testa il tuo set di dati.
2. Prevedi il suo numero totale di righe.
3. Pronosticare il totale delle previsioni corrette e errate per ogni classe.
Una volta estratti i dati, otterrai i numeri organizzati in righe. Le righe saranno collegate alla classe prevista mentre le colonne saranno collegate alla classe effettiva. I valori corretti saranno in una linea diagonale. Aggiungi tutti i valori e otterrai la percentuale di precisione della tua matrice.

Come misurare le prestazioni in una matrice di confusione?

È possibile calcolare il tasso di precisione di un modello utilizzando una matrice di confusione 2x2. La seguente formula ti darà la percentuale di successo o la percentuale di precisione:
Precisione = (TP+TN)/(TP+TN+FP+FN)
Dove, TP = Vero Positivo ,TN = Vero Negativo,FP = Falso Positivo, FN = Falso Negativo
Il tasso di errore del tuo modello può anche essere calcolato con la formula di calcolo del tasso che è:
Precisione = (TP+TN)/(TP+TN+FP+FN) = 1-Precisione
Il concetto di tasso di errore è molto semplice. Supponiamo che il tuo modello abbia un tasso di precisione dell'80%, quindi il tasso di errore del tuo modello sarà del 20%.