Regressione logistica | Guida per principianti alla regressione logistica con Python

Contenuti

  • Cos'è la regressione logistica?
  • Matematica coinvolta nella regressione logistica
  • Misurazione delle prestazioni mediante matrici di confusione
  • Demo di regressione logistica con codice Python

La regressione logistica è uno degli algoritmi di machine learning più popolari, che viene utilizzato nel caso di previsione di più insiemi di dati categoriali.. I set di dati categoriali hanno solo due risultati, 0/1 o se / No

221055cc7604b063fb0c7d541a527_5cbeb12eae2b883405064bc1_two-choice-7704557

Sommario

1 Cos'è la regressione logistica?

2 Perché applicare la regressione logistica?

3 Matematica coinvolta nella regressione logistica

4 Implementazione della regressione logistica durante la creazione di previsioni

5 valutazione della prestazione

6 caratteristiche chiave della regressione logistica

7 tipi di regressione logistica

8 Implementazione del codice Python

1. Cos'è la regressione logistica?

È un tipo di algoritmi di apprendimento automatico di regressione che vengono implementati per risolvere problemi di classificazione. / categorico,

Problemi che hanno risultati binari, come / No, 0/1, Vero / Impostore, Questi sono quelli che vengono chiamati problemi di classificazione..

95588whatsapp-image-2020-02-11-at-8-30-23-pm-3472288

2. Perché applicare la regressione logistica?

La regressione lineare non fornisce una buona linea di adattamento per problemi che hanno solo due valori (come mostrato nel figura). Darà meno precisione durante la previsione perché non coprirà i set di dati, essendo di natura lineare.

Per il miglior adattamento dei set di dati categoriali, è richiesta una curva che è possibile con l'aiuto della regressione logistica, poiché utilizza una funzione sigmoide per fare previsioni.

48211l7xj9gkzufp00gt2txzu-1710093

3. Matematica coinvolta nella regressione logistica

Il motivo principale alla base della curvatura della curva di regressione logistica è che viene calcolata utilizzando una funzione sigmoidea. (nota anche come funzione logistica perché viene utilizzata nella regressione logistica) di seguito elencati

60550sigmoide-equazione-1821663

Questa è la funzione matematica che ha la 'curva a forma di S'. Il valore della funzione sigmoide è sempre compreso tra 0 e 1, quindi è implementato per risolvere problemi categoriali che hanno due valori possibili.

281361_a04iknbchaycaj7-0qlesa-6487209

4. Implementazione della regressione logistica durante la creazione di previsioni

La regressione logistica implementa la funzione sigmoidea per fare previsioni nel caso di valori categoriali.

Impostare un valore del punto di taglio, che è per lo più impostato su 0.5, Quello, quando viene superato dalla prevista deviazione dalla curva logistica, fornisce il rispettivo output previsto sotto forma della categoria a cui appartiene il set di dati.

Ad esempio,

Nel caso del modello di previsione del diabete, se l'uscita supera il punto di taglio, l'output della previsione sarà dato come Sì per il diabete; altrimenti, No, se il valore è inferiore al punto di cut-off.

5. Valutazione della prestazione

Per misurare le prestazioni del modello nel risoluzione dei problemi di classificazione, viene utilizzata la matrice di confusione., di seguito è riportata l'implementazione della matrice di confusione.

96377confusione-matrice-9778094

Parole chiave:

  1. – TN significa veri negativi (Il valore previsto (negativo) corrisponde al valore effettivo (negativo))
  2. – FP sta per falsi positivi (Il valore effettivo era negativo, ma il modello prevedeva un valore positivo.)
  3. – FN sta per falsi negativi.(Il valore effettivo era positivo, ma il modello prevedeva un valore negativo)
  4. – TP significa veri positivi (Il valore previsto (positivo) corrispondeva al valore effettivo (positivo))

per un buon modello, non si dovrebbe avere un gran numero di falsi positivi o falsi negativi

6. Caratteristiche principali della regressione logistica

1. La regressione logistica è uno degli algoritmi di machine learning più popolari, utilizzato nella tecnica di apprendimento automatico supervisionato. Viene utilizzato per prevedere il variabile Dipendente categorico, utilizzando un dato insieme di variabili indipendenti.

2. Prevedere l'output di una variabile categoriale, che è di natura discreta. Può essere Sì o No, 0 oh 1, vero o falso, eccetera. ma invece di dare il valore esatto come 0 e 1, restituisce il risultato come probabilità dell'insieme di dati compreso tra 0 e 1.

3. È simile alla regressione lineare. L'unica differenza è che la regressione lineare viene utilizzata per risolvere i problemi di regressione, mentre la regressione logistica viene utilizzata per risolvere i problemi di classificazione / problemi categoriali.

4 Nella regressione logistica, funzione logistica (sigmoidea) sotto forma di “S” viene utilizzata come curva di regolazione, che fornisce un output tra 0 e 1.

7. Tipi di regressione logistica

Ci sono tre tipi:

un binomio

b Ordinale

c multinomiale

un binomio

La regressione logistica binomiale si occupa di problemi con variabili target che hanno solo due valori possibili, 0 oh 1.

Cosa può significare Sì / No, Vero / Impostore, Morto / Vivo e altri valori categoriali.

b Ordinale

La regressione logistica ordinale si occupa di quei problemi le cui variabili target possono avere 3 o più di 3 valori, disordinato per natura. Questi valori non hanno significato quantitativo.

Ad esempio, tipo di casa 1, tipo di casa 3, tipo di casa 3, eccetera.

c multinomiale

Regressione logistica multinomiale, semplicemente regressione logistica ordinale, si occupa di problemi che hanno valori oggettivi maggiori o uguali a 3. La differenza principale è che, a differenza dell'ordinale, quei valori sono ben ordinati. I valori hanno un significato quantitativo

Ad esempio, valutazione delle abilità come bassa, media, esperto

6. Implementazione del codice Python

[ Nota: I set di dati presi è il set di dati Titanic]

Importazione di librerie

Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows panda Che cosa pd
Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows insensibile Che cosa notaio
Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows matplotlib.pilota Che cosa per favore
%matplotlib in linea
Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows marinaio Che cosa sns
sns, impostare ()

Importa il set di dati

titanic_data = pd.read_csv('titanic_train.csv’)

Condurre analisi esplorative dei dati:

1. Verifica la presenza di più voci nulle nel set di dati, con l'aiuto del mappa di calore

2.Visualizzazione di varie relazioni tra variabili

3. Uso di Grafico a scatola per dettagli sulla distribuzione

sns.mappa di calore(titanic_data.è nullo(), cbar=Impostore)
sns.conteggio(X='Sopravvissuto’, dati=titanic_data)
sns.conteggio(X='Sopravvissuto’, tinta='Sesso’, dati=titanic_data)
sns.conteggio(X='Sopravvissuto’, tinta='Pclasse’, dati=titanic_data)

14222valori-mancanti-heatmap-4429968

mappa di calore

età e capanna hanno voci nulle

72354seaborn-countplot-1017498
99768Seaborn-countplot-hue-sex-9273318
43948seaborn-countplot-hue-pclass-6846511

sns.trama a scatola(titanic_data["Classe P"], titanic_data['Età'])

44808age-boxplot-4052864

Utilizzo della funzione per sostituire input nulli

def input_missing_age(colonne):
età = colonne[0]
passeggero_class = colonne[1]
e pd.è nullo(età):
e(passeggero_class == 1):
Ritorno titanic_data[titanic_data["Classe P"] == 1]['Età'].significare()
elifapasseggero_class == 2):
Ritorno titanic_data[titanic_data["Classe P"] == 2]['Età'].significare()
elifapasseggero_class == 3):
Ritorno titanic_data[titanic_data["Classe P"] == 3]['Età'].significare()
il riposo:
Ritorno età

Compila i dati sull'età mancanti

titanic_data['Età'] = titanic_data[['Età', "Classe P"]].richiesta(input_missing_age, asse = 1)

rimuovere i dati nulli

titanic_data.far cadere(‘Cabina’, asse=1, Invece = Certo)
titanic_data.gocciolare(Invece = Certo)

Crea variabili fittizie per le colonne Sesso e SpeditoS

dati_sesso = pd.get_dummy(titanic_data['Sesso'], drop_first = Certo)
dati_imbarcati = pd.get_dummy(titanic_data['Imbarcato'], drop_first = Certo)

Aggiungi variabili fittizie a DataFrame e rimuovi i dati non numerici

titanic_data = pd.concat([titanic_data, dati_sesso, dati_imbarcati], asse = 1)
titanic_data.far cadere(['Nome', 'ID passeggero', 'Biglietto', 'Sesso', 'Imbarcato'], asse = 1, Invece = Certo)

Stampa il set di dati finito

titanic_data.testa()

45986frame-dati-finale-5467311

Dividi il set di dati in dati x e y

y_data = titanic_data['Sopravvissuto']
x_dati = titanic_data.far cadere('Sopravvissuto’, asse = 1)

Dividi il set di dati in dati da addestramento e dati di test

a partire dal chiaro.selezione_modello Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows train_test_split
x_dati_di_allenamento, x_test_data, y_training_data, y_test_data = train_test_split(x_dati, y_data, test_size = 0,3)

Crea il modello

a partire dal chiaro.modello lineare Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows Regressione logistica
modello = Regressione logistica()

Addestra il modello e crea previsioni

modello.adattarsi(x_dati_di_allenamento, y_training_data)
predizioni = modello.prevedere(x_test_data)

Calcola le metriche delle prestazioni

a partire dal chiaro.metrica Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows classificazione_report
Stampa(classificazione_report(y_test_data, predizioni))

 precision    recall  f1-score   support

           0       0.83      0.87      0.85       169

           1       0.75      0.68      0.72        98

    accuracy                           0.80       267

   macro avg       0.79      0.78      0.78       267

weighted avg       0.80      0.80      0.80       267

Genera una matrice di confusione

a partire dal chiaro.metrica Vogliamo iniziare a spiegarti com'è la procedura che devi eseguire nel caso tu abbia un PC con Windows matrice di confusione
Stampa(matrice di confusione(y_test_data,
predizioni)

[[145  22]

 [ 30  70]]

Con questo chiudo questo blog..
Ciao a tutti, Namaste
Il mio nome è Pranshu Sharma e sono un appassionato di data science
Grazie mille per aver dedicato del tuo tempo prezioso a leggere questo blog.. Sentiti libero di segnalare eventuali errori (Dopotutto, sono un apprendista) e fornire i commenti corrispondenti o lasciare un commento.
Dhanyvaad !!
Feedback:
E-mail: [e-mail protetta]

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.