Com avaluar un regressor logístic binari amb scikit-learn

Bloc

Com avaluar un regressor logístic binari amb scikit-learn

Marqueu aquesta funció python que facilita l'avaluació del classificador binari.

Descripció general de la funcionalitat

La regressió logística és un valuós classificador per la seva interpretabilitat. Aquest fragment de codi proporciona una funció de retallar i enganxar que mostra les mètriques que importen quan s’utilitza la regressió logística per a problemes de classificació binària. Tot aquí és proporcionat per scikit-learn, però pot costar molt de temps i repetir-se per trucar i visualitzar manualment sense aquesta funció d’ajuda.

on comprar bht

evalBinaryClassifier () pren com a entrada un model ajustat, funcions de prova i etiquetes de prova. Retorna la puntuació F1 i també imprimeix una producció densa que inclou:

  • Matriu de confusió completa etiquetada amb quantitats i etiquetes de text (ex. True Positive)
  • Distribucions de les probabilitats previstes d'ambdues classes
  • Corba ROC, AUC, així com el punt de decisió al llarg de la corba que representen la matriu de confusió i les distribucions
  • Puntuació de precisió, recuperació i F1

Per obtenir una explicació de com interpretar aquestes sortides, aneu a després del bloc de codi.

Importacions necessàries:

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import roc_curve, confusion_matrix, auc from sklearn import linear_model

Exemple d'ús:

logr = linear_model.LogisticRegressionCV() logr.fit(X_train,y_train) F1 = evalBinaryClassifier(logr,X_test,y_test)

Sortida:

El codi

|_+_|

Interpretació:

Gràfic esquerre: Matriu de confusió

La matriu de confusió descriu les prediccions que el model va fer com a True (correcte) o False (incorrecte). Es compara amb la veritat real. Un model perfecte només tindria veritables positius i veritables negatius. Un model purament aleatori tindrà les quatre categories en quantitats similars.

Si teniu un problema de desequilibri de classes, normalment apareixeran molts aspectes negatius (certs i falsos) i pocs positius, o viceversa. (Per obtenir un bon exemple d 'això, vegeu el meu projecte a Predicció de la interrupció .)

Gràfic central: distribucions de prediccions

El gràfic central és la distribució de les probabilitats previstes d’un resultat positiu. Per exemple, si el vostre model està 100% segur que una mostra és positiva, si es trobarà a la paperera de l'extrem dret. Els dos colors diferents indiquen la classe TRUE, no la classe prevista. Un model perfecte no mostraria cap solapament entre les distribucions verd i vermell. Un model purament aleatori els veurà superposar-se completament.

El límit de decisió decideix les prediccions finals del model. A scikit-learn, el valor per defecte límit de decisió és 0,5; és a dir, qualsevol cosa per sobre de 5 es prediu com a 1 (positiu) i qualsevol cosa per sota de 5 es prediu com a 0 (negatiu). Aquest és un detall important per entendre el vostre model, així com la corba ROC.

Gràfic dret: la corba ROC

La corba de característiques de funcionament del receptor descriu * tot el possible * límits de decisió . La corba verda representa les possibilitats i la compensació entre la taxa positiva vertadera i la taxa falsa positiva en diferents punts de decisió. Els extrems són fàcils d’entendre: el vostre model podria predir mandrosament 1 per a TOTES les mostres i aconseguir una taxa de positiu vertader perfecta, però també tindria una taxa de falsos positius d’1. com a negatiu, però el vostre percentatge positiu real també seria zero. El valor del vostre model és la seva capacitat per augmentar el ritme positiu vertader * més ràpidament * que el que augmenta el ritme positiu fals.

alternatives gratuïtes a la codecadèmia

Un model perfecte seria una línia vertical cap amunt de l’eix y (100% Positius certs, 0% Positius falsos). Un model purament aleatori es situaria directament a la línia de punts blaus (trobar més Positius Veritables significa trobar un nombre igual de Falsos Positius).

Esquerra: un model perfecte; Dreta: un model purament aleatori

El punt blau representa el límit de decisió .5 que està determinant actualment la matriu de confusió.

Canviar això és una manera útil d’ajustar la sensibilitat del vostre model quan un tipus d’error és pitjor que un altre. Com a exemple, l'assistència sanitària està plena d'aquestes decisions: el diagnòstic incorrecte del càncer és MOLT millor que el diagnòstic incorrecte de bona salut. En aquest cas, voldríem tenir un límit de decisió molt baix, és a dir, predir només un resultat negatiu (sense càncer) si n’estem MOLT segur.

Si trieu un límit diferent amb aquest mateix model (per exemple, .3 en lloc de .5), el punt blau es desplaçaria cap amunt i cap a la dreta al llarg de la corba verda. La nova frontera significa que capturem més positius veritables i també més falsos. Això també es visualitza fàcilment a mesura que la línia blava del gràfic central es mou cap a l’esquerra fins a 0,3: hi hauria més papereres verdes a la dreta del límit, però també més papereres vermelles.

scikit-learn no té una manera integrada d’ajustar el límit de la decisió, però es pot fer fàcilment trucant al predict_test () mètode a les vostres dades i, a continuació, codificar manualment una decisió en funció del límit que trieu.

hhttps //g.co/recover

Us va ajudar a entendre el vostre model? Es podria millorar? Avisa’m, m’encantaria tenir notícies teves!

# aprenentatge automàtic # ciència de dades

towardsdatascience.com

Com avaluar un regressor logístic binari amb scikit-learn

Marqueu aquesta funció python que facilita l'avaluació del classificador binari.