Cosa sono le metriche Sklearn e perché è necessario conoscerle?

Pubblicato: 2021-10-22

Python è uno dei linguaggi di programmazione più utilizzati dagli sviluppatori a livello globale. Le sue capacità di automazione dei dati e algoritmi lo rendono ideale per la creazione e l'addestramento di programmi, macchine e sistemi basati su computer e per fare previsioni. Pertanto, i candidati con competenze Python sono sempre più preferiti per percorsi di carriera redditizi, come Machine Learning e Data Science.

Se sei un principiante, trovare gli strumenti giusti da solo può sembrare scoraggiante. Il software gratuito come Scikit-learn può consentirti di acquisire competenze rilevanti con poco sforzo. La libreria di machine learning ha diversi algoritmi di classificazione, regressione e clustering per i programmatori Python.

Questo blog si concentrerà specificamente sui problemi di classificazione e sulle metriche sklearn per guidarti nel tuo percorso di apprendimento. Imparerai l'applicazione delle metriche di valutazione e capirai anche la matematica dietro di esse.

Sommario

Metriche di classificazione in Scikit-Learn

La classificazione è parte integrante della modellazione predittiva. Lo usi per identificare la classe a cui appartiene un particolare campione di una popolazione. Si supponga di voler prevedere se un paziente sarà nuovamente ricoverato in ospedale. I due possibili tipi qui sono: Positivo (ricoverato in ospedale) e Negativo (non ricoverato). Il modello di classificazione prevede il bucket in cui deve essere posizionato il campione, Predicted Positive o Predicted Negative. Scoprirai l'accuratezza delle previsioni una volta addestrato il modello.

La maggior parte dei data scientist e degli ingegneri dell'apprendimento automatico utilizza il pacchetto Scikit-Learn per analizzare le prestazioni dei modelli predittivi. Il modulo delle metriche di sklearn ti dà accesso a molte funzionalità integrate. Scopriamo il processo di scrittura delle funzioni da zero con queste metriche.

Partecipa al corso di Machine Learning online dalle migliori università del mondo: master, programmi post-laurea per dirigenti e programma di certificazione avanzato in ML e AI per accelerare la tua carriera.

Spiegazione delle metriche di Sklearn

Le metriche Sklearn ti consentono di implementare punteggi, perdite e funzioni di utilità per valutare le prestazioni della classificazione.

Ecco i passaggi chiave coinvolti:

  • Caricare dati;
  • Dividilo in set di treni e set di prova;
  • Costruire il modello di formazione;
  • Fare previsioni o previsioni sui dati del test;
  • Valuta il modello di machine learning con un metodo particolare.

Per procedere, dovrai caricare un set di dati di esempio e funzionalità di previsione per due modelli, Foresta casuale e Regressione lineare. Chiamiamoli Model_RF e Model_LR.

Esegui questo codice per importare il modulo Pandas e leggere il file di dati e controllarne gli elementi.

importa panda come ps

df = ps.read_csv('data.csv')

df.head()

Nella maggior parte dei progetti, definisci una soglia ed etichetti le probabilità di previsione come previste positive e previste negative. Ciò aggiungerebbe altre due colonne alla tua tabella.

trebbiare = 0,5

df['forecasted_RF'] = (df.model_RF >= 0.5).astype('int')

df['forecasted_LR'] = (df.model_LR >= 0.5).astype('int')

df.head()

Ora che abbiamo etichette effettive e previste, possiamo dividere i nostri campioni in quattro diversi bucket.

Con confusion_matrix, possiamo ottenere un array 2X2 con le etichette biforcate nei seguenti bucket:

  • Vero positivo (TP)
  • Falso positivo (FP)
  • Falso negativo (FN)
  • Vero negativo (TN)

Dopo aver importato il confusion_matrix da sklearn metrics e aver passato le etichette effettive e previste, puoi definire le tue funzioni per verificarlo.

Puoi anche controllare se i tuoi risultati corrispondono manualmente usando la funzione assert di Python e la funzione array_equal di NumPy.

Possiamo calcolare molte altre metriche di performance utilizzando i quattro bucket di TP, FP, TN e FN. Questi sono:

1. Punteggio_accuratezza

Prende le etichette effettive e previste come input e produce la frazione di campioni prevista correttamente.

2. Punteggio_richiamo

Fornisce la frazione di eventi positivi previsti correttamente. Il richiamo è anche noto come sensibilità.

3. punteggio_precisione

Mostra la frazione di eventi positivi previsti che sono positivi.

Dopo aver calcolato tutte queste metriche, supponiamo di trovare il modello RF migliore in termini di richiamo e precisione. La scelta qui sarebbe facile. Ma cosa accadrebbe se il modello LR fosse più bravo nel richiamo e il modello RF fosse più preciso nella precisione? In questo caso, avresti bisogno di un altro metodo chiamato punteggio F1.

4. punteggio_f1

È il mezzo armonico di richiamo e precisione. Il modello con il punteggio più alto è considerato l'opzione migliore.

Le metriche di cui sopra sono state calcolate con una soglia definita di 0,5. Ci si potrebbe chiedere se una modifica di questa soglia cambierebbe anche le metriche delle prestazioni. La risposta? Si lo farà.

Abbiamo un altro modo per valutare un modello senza selezionare una soglia, ovvero le curve ROC (Receiver Operating Characteristic). Scikit-learn ha anche funzioni integrate per analizzarli.

Le funzioni roc_curve e roc_auc_score prendono le etichette effettive e le probabilità previste come input.

  • curva_roccia

Restituisce tre elenchi, vale a dire soglie (probabilità previste univoche in ordine decrescente), FPR (i tassi di falsi positivi) e TPR (i tassi di veri positivi).

  • roc_auc_curve

Trova le aree sotto la curva sia per i modelli RF che LR.

È possibile determinare la metrica delle prestazioni migliori dopo aver tracciato la curva ROC e aver aggiunto l'AUC alle legende.

Riassumendo

Nell'analisi predittiva, puoi scegliere tra una varietà di metriche. Precisione, richiamo, precisione, f1 e AUC sono alcuni dei punteggi popolari.

Alcuni potrebbero preferire definire una soglia e utilizzare parametri di prestazione come accuratezza, richiamo, precisione e punteggi f1. Altri potrebbero voler utilizzare l'AUC per analizzare le prestazioni di un modello poiché non richiede la selezione della soglia. Alla fine, dovresti scegliere la metrica più adatta al problema aziendale in questione.

Con questo, ti abbiamo fornito una panoramica delle metriche di sklearn. Puoi utilizzare queste informazioni per chiarire le basi della programmazione Python e continuare ad imparare con i corsi online. Puoi anche intraprendere progetti di lavoro per esercitarti e perfezionare le tue abilità. Programmi come il Master of Science in Machine Learning e Intelligenza Artificiale di upGrad possono aiutare con entrambi.

Il curriculum ti fa familiarizzare con il toolkit completo di scienza dei dati e copre aspetti pratici di Scikit-Learn e altri software. Inoltre, le credenziali di rinomati istituti come la Liverpool John Moores University e l'IIIT Bangalore ti distinguono dalla concorrenza nelle domande di lavoro e nei colloqui di collocamento.

Cosa sono le metriche di valutazione in Python?

Le metriche di valutazione vengono in genere utilizzate per problemi di classificazione in Python. Scikit-Learn è una libreria di machine learning gratuita che consente un'ampia gamma di attività di analisi predittiva. Gli aspiranti data scientist e gli ingegneri dell'apprendimento automatico possono utilizzarlo per fare previsioni sui dati e per analizzare la qualità di modelli specifici.

Perché hai bisogno delle metriche sklearn?

Le metriche Sklearn ti consentono di valutare la qualità delle tue previsioni. Puoi utilizzare questo modulo in Scikit-Learn per vari set di dati, funzioni di punteggio e metriche delle prestazioni. La matrice di confusione in sklearn è una comoda rappresentazione dell'accuratezza delle previsioni. Con input come etichette effettive e previste, insieme a una soglia definita o un valore di confidenza, puoi calcolare metriche come il ricordo, la precisione e i punteggi f1. Il metodo della curva ROC bilancia le stime di probabilità e fornisce una metrica delle prestazioni in termini di area sotto la curva.

In che modo l'istruzione post-laurea in AI e ML aiuta nell'avanzamento di carriera?

Le certificazioni più avanzate nel campo dell'intelligenza artificiale e dell'apprendimento automatico includono strumenti come Scikit-Learn nel curriculum. È una componente essenziale della programmazione Python e della formazione sulla scienza dei dati. Ma le ricette di codifica in Python e Scikit-Learn non sono sufficienti nell'ambiente di lavoro competitivo di oggi. Devi acquisire conoscenze orientate al settore e mettere in pratica le tue abilità. Quindi, scegli programmi di studio che offrono opportunità per implementare progetti e incarichi.