Regressione logistica di Scipy

Regressione logistica di Scipy
La popolarità dell'apprendimento automatico e delle scienze dei dati è aumentata ogni giorno dalla quantità di dati prodotti, algoritmi efficienti per gestire e lavorare con tali dati e la forza della potenza di calcolo continua a aumentare. La classificazione dei dati con il metodo di regressione logistica è una delle aree essenziali e di base dell'apprendimento automatico. In questo articolo, spiegheremo cos'è la classificazione dei dati, qual è la regressione logistica e come sono implementati in un programma Python. Dimostreremo alcuni esempi e spiegheremo ogni parte individualmente per aiutarti a capire come è possibile implementare la regressione logistica in Python.

Cos'è la classificazione?

Innanzitutto, per implementare qualsiasi cosa in Python o in qualsiasi altro linguaggio di programmazione, è necessario comprendere la sua funzionalità di base in modo da poter scrivere in modo efficiente il codice per esso. Quindi, spieghiamo prima il concetto di classificazione e poi passiamo all'implementazione della regressione logistica usando le funzioni della libreria Scipy.

Nella scienza dei dati e nell'apprendimento automatico, la classificazione è un sottocampo di apprendimento automatico supervisionato che fa previsioni sulla categoria o la classe a cui apparterrà un'entità in base ai suoi attributi. Analizza la raccolta di osservazioni descrivendo matematicamente la dipendenza tra i dati di input e output. Crea una connessione o un collegamento tra variabili dipendenti e indipendenti e lo fa lavorando con entrambi. Può essere utilizzato in vari settori della tecnologia e della scienza per vari scopi come il riconoscimento delle immagini, la classificazione del testo, ecc.

Cos'è la regressione logistica?

La regressione logistica è una tecnica di apprendimento automatico supervisionato per la classificazione paragonabile alla regressione lineare ed è un membro della classe di classificatori lineari. È un metodo molto conveniente, semplice e veloce per interpretare i risultati. Non può essere utilizzato solo per la classificazione binaria, ma anche per problemi multiclassi. In matematica, la regressione logistica funziona con logaritmo naturale e funzioni sigmoidee. La funzione sigmoide è la curva a forma di S di una variabile che ha 0 o 1 in quasi tutti i domini. Mentre il logaritmo naturale è il logaritmo di un numero alla sua base.

Cos'è la regressione logistica in Scipy Python?

L'idea alla base della regressione logistica è la stessa in Scipy Python di cui abbiamo discusso in precedenza. La libreria Scipy fornisce la funzione Logistic () per calcolare la regressione logistica nel programma Python. Spiegheremo alcuni casi comuni di regressione logistica con l'aiuto di esempi. Ma prima, apprendiamo e comprendiamo la sintassi della funzione logistica fornita dalla libreria Scipy.

Sintassi di Scipy Logistic () Funzione in Python

La funzione logistica () della libreria Scipy viene utilizzata per generare le variabili casuali continue e funziona con i metodi della classe RV_Continua. Eredita tutti i metodi, le caratteristiche e le funzionalità della classe RV_Continue per completare i dettagli specifici della regressione logistica. La funzione Logistic () utilizza la seguente funzione di densità di probabilità:

Che è un caso speciale di genlogistico con c = 1. Vedere la sintassi della funzione logistica con i metodi della classe RV_Continua di seguito:

Qui, l'oggetto "logistic_gen" si riferisce a uno dei metodi della classe RV_Continua. Alcuni dei metodi della classe RV_Continua sono PPF, PDF, CDF, LOGPDF, RVS, SF, ISF, ecc. Ora, passiamo alla sezione Esempi per imparare a implementare la funzione Logistic () in un programma Python.

Esempio 1:

Considera il codice di esempio indicato di seguito per comprendere il funzionamento della funzione logistica () della libreria Scipy. Qui, stiamo implementando la funzione Logistic () con metodi PPF e PDF. Il PPF sta per la funzione di punto percentuale che viene utilizzata per ottenere il percentile dei dati e il PDF sta per la funzione di densità di probabilità e viene utilizzata per ottenere la densità di probabilità dei dati. Vedi il codice di esempio indicato di seguito e quindi spiegheremo ogni parte passo dopo passo:

Importa Numpy come NP
da Scipy.STATS Importa logistica
Importa matplotlib.Pyplot come Plt
Fig, ax = PLT.sottotrame (1, 1)
x = np.Linspace (logistico.PPF (0.02),
logistico.PPF (0.98), 100)
ascia.trama (x, logistico.pdf (x),
'r', lw = 8, alpha = 0.4, etichetta = 'logistic pdf')
rv = logistic ()
ascia.Trama (X, RV.pdf (x), 'k', lw = 3, etichetta = 'congelato pdf')
ascia.leggenda (loc = 'best')
Plt.spettacolo()

Parliamo prima delle biblioteche e poi del resto del programma. Abbiamo bisogno della libreria numpy per generare e archiviare i dati in un oggetto numpy. Abbiamo bisogno della libreria Scipy per utilizzare la funzione del suo pacchetto statistiche. Abbiamo bisogno della libreria Matplotlib per tracciare i dati in un grafico. Quindi, abbiamo importato tutte e tre le librerie insieme ai loro pacchetti e funzioni associati che richiederemo ulteriormente. Successivamente, la dimensione 1 x1 per la traccia del grafico è definita dalla sottotrama (1, 1). La variabile X contiene i dati per la funzione di densità di probabilità che fornirà il PDF logistico. Il PDF logistico è stato congelato nel camper variabile ed entrambi i risultati sono stati passati alla funzione trama (), quindi visualizzali nel grafico. Ora, vediamo il grafico generato di seguito:

Esempio 2:

In precedenza, abbiamo implementato la funzione PDF per generare regressione logistica e quindi congelarla. Ora confrontiamo il risultato del metodo CDF con il metodo PDF in questo esempio. Considera il codice di esempio indicato nello snippet del codice di seguito:

Importa Numpy come NP
da Scipy.STATS Importa logistica
Importa matplotlib.Pyplot come Plt
Fig, ax = PLT.sottotrame (1, 1)
x = np.Linspace (logistico.PPF (0.02),
logistico.PPF (0.98), 100)
ascia.trama (x, logistico.pdf (x),
'r', lw = 8, alpha = 0.4, etichetta = 'logistic pdf')
rv = logistic ()
ascia.Trama (X, RV.pdf (x), 'k', lw = 3, etichetta = 'congelato pdf')
Vals = logistic.PPF ([0.001, 1, 0.999])
np.AllClose ([0.001, 1, 0.999], logistico.CDF (vals))
r = logistica.RVS (dimensione = 1000)
ascia.Hist (R, densità = true, histType = 'step fillAd', alpha = 0.5)
ascia.Legend (loc = 'best', frameon = false)
Plt.spettacolo()

La prima sezione del programma è la stessa che abbiamo definito nell'esempio precedente. L'implementazione del metodo CDF è stata aggiunta a questo programma. Per confrontare la linea del PDF logistico, abbiamo generato l'istogramma del metodo CDF. Vediamo il grafico indicato nello screenshot qui sotto:

Esempio 3:

Implementamo un altro metodo della classe RV_Continue per comprendere il funzionamento della funzione logistica (). Considera il codice di esempio indicato nello snippet del codice di seguito:

Importa Numpy come NP
da Scipy.STATS Importa logistica
Importa matplotlib.Pyplot come Plt
Fig, ax = PLT.sottotrame (1, 1)
x = np.Linspace (logistico.PPF (0.02),
logistico.PPF (0.98), 100)
ascia.trama (x, logistico.pdf (x),
'r', lw = 8, alpha = 0.4, etichetta = 'logistic pdf')
rv = logistic ()
ascia.Trama (X, RV.pdf (x), 'k', lw = 3, etichetta = 'congelato pdf')
Vals = logistic.PPF ([0.001, 1, 0.999])
np.AllClose ([0.001, 1, 0.999], logistico.logcdf (vals))
r = logistica.RVS (dimensione = 1000)
ascia.Hist (R, densità = true, histType = 'step fillAd', alpha = 0.5)
ascia.Legend (loc = 'best', frameon = false)
Plt.spettacolo()

Abbiamo usato lo stesso programma che abbiamo fatto negli esempi precedenti, abbiamo appena sostituito il metodo CDF con il metodo LOGCDF. Ora, confrontiamo i risultati del metodo CDF e del metodo LOGCDF ​​confrontando gli output di entrambi i programmi. Vedi il risultato indicato di seguito:

Conclusione

Questa guida ha fornito una rapida panoramica della funzione di regressione logistica fornita dalla libreria Scipy. Un approccio di apprendimento automatico supervisionato offerto nel gruppo di classificazione è la regressione logistica. La regressione logistica è una delle sue tecniche importanti e la classificazione è anche un'importante applicazione dell'apprendimento automatico. Abbiamo dimostrato alcuni esempi per mostrare come implementare la funzione logistica () della libreria Scipy.