Matrice di confusione demistificante nell'apprendimento automatico [Stupefacente]

Pubblicato: 2020-12-07

Machine Learning è un termine generico con il quale accumula l'elaborazione dei dati, ricavando approfondimenti significativi dai dati e la modellazione dei dati. Dopo aver eseguito la modellazione dei dati, il modello deve essere misurato per la sua valutazione delle prestazioni e altri parametri basati sul settore e una delle metriche più comuni è la matrice di confusione.

Sommario

Cos'è la matrice di confusione e perché viene utilizzata?

È una metrica delle prestazioni utilizzata nei problemi di classificazione in cui le classi di output possono essere due o più e questa matrice rappresenta tutte le combinazioni di valori previsti da un modello con valori effettivi associati a quell'input. Si chiama "matrice di confusione" perché seguire le definizioni sembra facile, ma mentre avanziamo per ricavare parametri più preziosi, sorge la confusione su quale parametro sia più adatto in un determinato luogo.

Viene utilizzato in luoghi in cui il problema della classificazione è molto sbilanciato e una classe domina sulle altre classi. In tali scenari, potresti essere sorpreso di vedere l'accuratezza del modello raggiungere il picco del 99%, ma in realtà il modello è fortemente sbilanciato nei confronti della classe dominante. Ci sono pochissime possibilità che tu possa ottenere previsioni per le classi di minoranza. Pertanto, per testare un insieme di dati così sbilanciato, consideriamo la matrice di confusione.

Struttura della matrice di confusione

La dimensione della matrice è direttamente proporzionale al numero di classi di output. È una matrice quadrata in cui assumiamo le intestazioni di colonna come valori effettivi e le intestazioni di riga come previsioni del modello. I valori che sono veri e predetti veri dal modello sono Veri Positivi (TP) , le previsioni di valori negativi corretti sono Veri Negativi (TN) , i valori che erano negativi ma previsti come veri sono Falsi Positivi (FP) e i valori positivi previsti come negativi sono Falsi negativi (FN) . Dai un'occhiata a questa immagine:

Leggi: Tipi di algoritmo di classificazione nell'apprendimento automatico

Cosa possiamo imparare da questo?

Sorge una domanda valida che cosa possiamo fare con questa matrice. Ci sono alcune terminologie importanti basate su questo:

  1. Precisione: è la porzione di valori che sono identificati dal modello come corretti e sono rilevanti per la soluzione dell'affermazione del problema. Possiamo anche citarli come valori, che sono una parte dei risultati positivi totali forniti dal modello e sono positivi. Pertanto, possiamo dare la sua formula come TP/ (TP + FP).
  2. Richiamo: è la porzione di valori che è stata correttamente identificata come positiva dal modello. Viene anche definito come tasso o sensibilità vero positivo. La sua formula risulta essere TP/ (TP+FN).
  3. Punteggio F-1: è la media armonica di Precisione e Richiamo. Significa che se dovessimo confrontare due modelli, questa metrica sopprimerà i valori estremi e considererà sia i falsi positivi che i falsi negativi contemporaneamente. Può essere citato come 2*Precision*Recall/ (Precision+Recall).
  4. Precisione: è la porzione di valori che viene identificata correttamente indipendentemente dal fatto che siano positivi o negativi. Significa che tutti i Veri positivi e Veri negativi sono inclusi in questo. La formula per questo è (TP+TN)/ (TP+TN+FP+FN).

Tra tutti i termini, precisione e richiamo sono i più utilizzati. Il loro compromesso è un'utile misura del successo di una previsione. Il modello desiderato dovrebbe avere un'elevata precisione e un elevato richiamo, ma questo è solo in dati perfettamente separabili. Nei casi di utilizzo pratico, i dati sono altamente disorganizzati e sbilanciati.

Come creare codice per Confusion Matrix in Python?

La libreria sklearn offre una varietà di funzionalità per eseguire tutte le attività di apprendimento automatico con la massima precisione e quasi tutto è stato implementato qui. Considera il famoso set di dati Iris con tutte le istruzioni di importazione già eseguite, il codice per la matrice di confusione sarebbe:

iris = datasets.load_iris()

X = iris.data

y = iris.target

class_names = iris.target_names

X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )

classificatore = svm.SVC (kernel = 'lineare' , C = 0.01 ) . fit(X_treno, y_treno)

plot_confusion_matrix(classificatore, X_test, y_test,display_labels = class_names,cmap = plt . cm . Blues)

Nota: la matrice restituita da questo ha i lati invertiti, qui a sinistra abbiamo i valori effettivi e in alto i valori previsti. Se vuoi evitare confusione, esegui questa funzione per ottenere un riepilogo dettagliato (rapporto di classificazione) invece di calcolarlo manualmente:

print(report_classificazione(y_true=y_test, y_pred=y_pred, target_names=class_names))

Leggi anche: Algoritmo di Deep Learning

Quale usare e dove?

Questa è la domanda più comune che si pone durante la modellazione dei dati e la soluzione risiede nel dominio delle affermazioni del problema. Considera questi due casi:

  1. Supponiamo che tu stia prevedendo se la persona subirà un arresto cardiaco. In questo scenario, non puoi permetterti alcuna classificazione errata e tutte le previsioni fatte dovrebbero essere accurate. Detto questo, il costo dei falsi negativi è alto, quindi la persona era incline ad attaccare, ma era considerata sicura. Questi casi dovrebbero essere evitati. In queste situazioni, abbiamo bisogno di un modello con un alto richiamo.
  2. Supponiamo che un motore di ricerca fornisca risultati casuali che sono tutti previsti come positivi dal modello, quindi ci sono pochissime possibilità che l'utente faccia affidamento su di esso. Pertanto, in questo scenario, abbiamo bisogno di un modello con un'elevata precisione in modo che l'esperienza dell'utente migliori e il sito Web cresca nella giusta direzione.

Conclusione

La matrice di confusione è un ottimo metodo per valutare un modello di classificazione. Fornisce la visione effettiva di quanto accuratamente il modello abbia classificato le classi in base agli input forniti e di come questa classe possa essere classificata erroneamente.

Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT- B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Guida la rivoluzione tecnologica guidata dall'intelligenza artificiale

DIPLOMA PG IN MACHINE LEARNING E INTELLIGENZA ARTIFICIALE
Per saperne di più