Come eseguire la regressione logistica in Python?



Regressione logistica in Python utilizzando sklearn per prevedere il risultato determinando la relazione tra variabili dipendenti e una o più variabili indipendenti.

La regressione logistica in Python è una tecnica di analisi predittiva. Viene anche utilizzato in Machine Learning per problemi di classificazione binaria. In questo blog esamineremo i seguenti argomenti per comprendere la regressione logistica in Python:

  1. Cos'è la regressione?
  2. Regressione logistica in Python
  3. Regressione logistica vs regressione lineare
  4. Casi d'uso
  5. Dimostrazione

Puoi anche fare riferimento a questo tutorial dettagliato sulla regressione logistica in python con una dimostrazione per una migliore comprensione o passare attraverso il per padroneggiare la regressione logistica.





Cos'è la regressione?

l'analisi è una potente tecnica di analisi statistica. UN dipendente variabile di nostro interesse viene utilizzata per prevedere i valori di altre variabili indipendenti in un set di dati.

Ci imbattiamo continuamente in una regressione in modo intuitivo. Come prevedere il tempo utilizzando il set di dati delle condizioni meteorologiche in passato.



Utilizza molte tecniche per analizzare e prevedere il risultato, ma l'enfasi è principalmente posta relazione tra variabile dipendente e una o più variabili indipendenti.

l'analisi prevede il risultato in una variabile binaria che ha solo due possibili risultati.



Regressione logistica in Python

È una tecnica per analizzare un set di dati che ha una variabile dipendente e una o più variabili indipendenti per prevedere il risultato in una variabile binaria, il che significa che avrà solo due risultati.

La variabile dipendente è categorico in natura. La variabile dipendente viene anche chiamata variabile di destinazione e le variabili indipendenti sono chiamate predittori .

La regressione logistica è un caso speciale di regressione lineare in cui prevediamo solo il risultato in una variabile categoriale. Prevede la probabilità dell'evento utilizzando la funzione di registro.

Noi usiamo il Funzione / curva sigmoide per prevedere il valore categoriale. Il valore di soglia decide il risultato (vittoria / sconfitta).

Equazione di regressione lineare: y = β0 + β1X1 + β2X2…. + βnXn

  • Y sta per la variabile dipendente che deve essere prevista.
  • β0 è l'intercetta Y, che è fondamentalmente il punto sulla linea che tocca l'asse y.
  • β1 è la pendenza della linea (la pendenza può essere negativa o positiva a seconda della relazione tra la variabile dipendente e la variabile indipendente).
  • X qui rappresenta la variabile indipendente utilizzata per prevedere il nostro valore dipendente risultante.

Funzione sigmoide: p = 1 / 1 + e-Y

Applicare la funzione sigmoide all'equazione di regressione lineare.

regressione logistica in python-edureka

Equazione di regressione logistica: p = 1 / 1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Diamo uno sguardo ai diversi tipi di regressione logistica.

Tipi di regressione logistica

Ruby on rails sito web tutorial
    • Regressione logistica binaria: ha solo due possibili risultati. Esempio: sì o no
    • Regressione logistica multinomiale: ha tre o più categorie nominali, ad esempio gatto, cane, elefante.
    • Regressione logistica ordinale: ha tre o più categorie ordinali, il che significa che le categorie saranno in un ordine. Esempio: valutazioni degli utenti (1-5).

Regressione lineare vs logistica

Mentre la regressione lineare può avere infiniti valori possibili, la regressione logistica ha risultati definiti .

La regressione lineare viene utilizzata quando la variabile di risposta è di natura continua, ma la regressione logistica viene utilizzata quando la variabile di risposta è di natura categoriale.

Prevedere un inadempiente in una banca utilizzando i dettagli della transazione in passato è un esempio di regressione logistica, mentre un output continuo come un punteggio di borsa è un esempio di regressione lineare.

Casi d'uso

Di seguito sono riportati i casi d'uso in cui è possibile utilizzare la regressione logistica.

Previsione del tempo

Le previsioni meteorologiche sono il risultato di una regressione logica. Qui analizziamo i dati dei precedenti bollettini meteorologici e prevediamo il possibile esito per un giorno specifico. Ma la regressione logica prevederebbe solo dati categorici, come se dovesse piovere o meno.

Determinazione della malattia

Noi possiamousoregressione logica con l'ausilio dell'anamnesi del paziente per prevedere se la malattia è comunque positiva o negativa.

Prendiamo un campione di dati per costruire un modello di previsione utilizzando la regressione logistica.

Demo

Costruiremo un modello di previsioneutilizzandoregressione logica in Python con l'aiutodiun set di dati,in questocopriremo i seguenti passaggi per ottenere la regressione logica.

Raccolta dati

Il primo passo per implementare la regressione logistica è raccogliere i dati. Caricheremo il file csv contenente il set di dati nei programmi che utilizzano i panda. Stiamo utilizzando i dati NBA per costruire il modello di previsione per prevedere la possibilità di una partita in casa o in trasferta, analizzando la relazione tra i dati rilevanti.

importa panda come pd importa numpy come np importa seaborn come sns importa matplotlib.pyplot come plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Otterrai tutti i dati in un formato leggibile per un'analisi più semplice. Quindi puoi determinare le variabili dipendenti e indipendenti per il tuo modello.

Analisi dei dati

Il set di dati viene analizzato per determinare la relazione tra le variabili. Creando diversi grafici per verificare la relazione tra le variabili.

sns.countplot ('Home', hue = 'WINorLOSS', data = df) plt.show ()

Sopra è riportato il rapporto tra la percentuale di vittorie / sconfitte rispetto alla partita in casa / fuori. Sallo stesso modopossiamo tracciare il grafico della relazione tra altre voci rilevanti nei dati.

Data Wrangling

Il set di dati viene modificato in base alla variabile di destinazione. Elimineremo tutti i valori null e anche i valori stringa dal DataFrame.

print (df.isnull (). sum ())

Verificheremo tutti i dati irrilevanti come i valori nulli ei valori che non saranno richiesti durante la creazione del modello di previsione. Se non ci sono valori nulli nel dataset NBA che stiamo utilizzando, procederemo con la divisione dei dati.

Dati di test e addestramento

Per le prestazioni del modello, i dati vengono suddivisi in dati di test e dati di addestramento. I dati vengono suddivisi utilizzando il train_test_split . I dati qui sono suddivisi nel rapporto 70:30.

Ora, per il previsione del modello la funzione di regressione logistica viene implementata importando il modello di regressione logistica nel modulo sklearn.

Il modello viene quindi inserito sul treno utilizzando la funzione di adattamento. Successivamente, la previsione viene eseguita utilizzando la funzione di previsione.

da sklearn.model_selection import train_test_split da sklearn.linear_model import LogisticRegression da sklearn.metrics import classification_report da sklearn.metrics import confusion_matrix, accuratezza_score x = df.drop ('Home', axis = 1) y = df ['Home'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) predictions = logmodel.predict (x_test) print (classification_report) print (classification_report) print (confusion_matrix (y_test, predictions)) print (accuratezza_score (y_test, predictions))

Rapporto di classificazione:

Il rapporto di classificazione mostra il file Precisione , Richiamo, F1 e supporto punteggi per il modello.

Precisione punteggio indica il livello fino al quale la previsione fatta dal modello è precisa. La precisione per una partita in casa è 0.62 e per la trasferta lo è 0,58 .

Richiamare è l'importo fino al quale il modello può prevedere il risultato. Il richiamo per una partita in casa è 0,57 e per una partita in trasferta è 0.64 . I punteggi F1 e Supporto sono la quantità di dati testati per le previsioni. Nel set di dati NBA i dati testati per la partita in casa sono 1662 e per la trasferta lo è 1586 .

Matrice di confusione:

La matrice di confusione è una tabella che descrive le prestazioni di un modello di previsione. Una matrice di confusione contiene i valori effettivi e quelli previsti. possiamo usare questi valori per calcolare il punteggio di accuratezza del modello.

come fare una classe singleton

Mappa termica della matrice di confusione:

Tracciamo una mappa termica della matrice di confusione usando seaborn e per visualizzare il modello di previsione che abbiamo costruito. Per tracciare una mappa termica, è necessaria la seguente sintassi.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, predictions))) plt.show ()

Guardando la mappa di calore, possiamo concludere quanto segue:

  • Di tutte le previsioni, il classificatore ha previsto sì per un totale di 1730 volte, di cui 1012 erano effettivamente sì.
  • di tutte le previsioni, il classificatore ha previsto no per un totale di 1518 volte, di cui 944 erano n.

Con questa analisi della matrice di confusione possiamo concludere il punteggio di accuratezza per il nostro modello di previsione.

Punteggio di precisione:

Il punteggio di accuratezza è la percentuale di accuratezza delle previsioni effettuate dal modello. Per il nostro modello il punteggio di accuratezza è 0,60, che è considerevolmente abbastanza accurato. Ma maggiore è il punteggio di precisione, più efficiente è il tuo modello di previsione. Devi sempre mirare a un punteggio di precisione più elevato per un modello di previsione migliore.

Seguendo i passaggi discussi sopra, abbiamo previsto la possibilità di una partita in casa / fuori utilizzando il set di dati NBA. Dopo aver analizzato il verbale di classifica possiamo ipotizzare la possibilità di una partita in casa / fuori.

In questo blog abbiamo discusso della regressione logistica nei concetti di Python, come è diversa dall'approccio lineare. Inoltre, abbiamo coperto una dimostrazione utilizzando il set di dati NBA. Per ulteriori informazioni e pratica, puoi utilizzare un set di dati di tua scelta e seguire i passaggi discussi per implementare la regressione logistica in Python.

Inoltre, controlla i vari blog di Data-Science sulla piattaforma edureka per padroneggiare il data scientist che è in te.

Se desideri imparare Python e costruire una carriera nella scienza dei dati, dai un'occhiata al nostro interattivo, live-online qui, viene fornito con supporto 24 * 7 per guidarti durante il tuo periodo di apprendimento.
Hai una domanda? Per favore, menzionalo nei commenti e ti risponderemo.