Masticando la regressione logistica

Masticando la regressione logistica

In questo articolo analizzeremo i calcoli teorici della trasformazione funzioni di regressione lineare в funzione di trasformazione logit inversa (altrimenti detta funzione di risposta logistica). Quindi, utilizzando l'arsenale metodo della massima verosimiglianza, in accordo con il modello di regressione logistica, ricaviamo la funzione di perdita Perdita logistica, ovvero definiremo una funzione con cui selezionare i parametri del vettore dei pesi nel modello di regressione logistica Masticando la regressione logistica.

Descrizione dell'articolo:

  1. Ripetiamo la relazione lineare tra due variabili
  2. Identifichiamo la necessità di trasformazione funzioni di regressione lineare Masticando la regressione logistica в funzione di risposta logistica Masticando la regressione logistica
  3. Eseguiamo le trasformazioni e l'output funzione di risposta logistica
  4. Proviamo a capire perché il metodo dei minimi quadrati è negativo nella selezione dei parametri Masticando la regressione logistica funzioni Perdita logistica
  5. Noi usiamo metodo della massima verosimiglianza determinare funzioni di selezione dei parametri Masticando la regressione logistica:

    5.1. Caso 1: funzione Perdita logistica per oggetti con designazioni di classe 0 и 1:

    Masticando la regressione logistica

    5.2. Caso 2: funzione Perdita logistica per oggetti con designazioni di classe -1 и +1:

    Masticando la regressione logistica


L'articolo è pieno di semplici esempi in cui tutti i calcoli sono facili da eseguire oralmente o su carta; in alcuni casi potrebbe essere necessaria una calcolatrice. Quindi preparati :)

Questo articolo è destinato principalmente ai data scientist con un livello iniziale di conoscenza delle basi dell'apprendimento automatico.

L'articolo fornirà anche il codice per disegnare grafici e calcoli. Tutto il codice è scritto nella lingua python 2.7. Vorrei spiegare in anticipo la "novità" della versione utilizzata: questa è una delle condizioni per seguire il noto corso da Yandex su una piattaforma di formazione online altrettanto nota Courserae, come si potrebbe supporre, il materiale è stato preparato sulla base di questo corso.

01. Dipendenza lineare

È abbastanza ragionevole porsi la domanda: cosa c'entrano la dipendenza lineare e la regressione logistica?

È semplice! La regressione logistica è uno dei modelli che appartengono al classificatore lineare. In parole semplici, il compito di un classificatore lineare è prevedere i valori target Masticando la regressione logistica da variabili (regressori) Masticando la regressione logistica. Si ritiene che la dipendenza tra le caratteristiche Masticando la regressione logistica e valori obiettivo Masticando la regressione logistica lineare. Da qui il nome del classificatore: lineare. Per dirla in modo molto approssimativo, il modello di regressione logistica si basa sul presupposto che esista una relazione lineare tra le caratteristiche Masticando la regressione logistica e valori obiettivo Masticando la regressione logistica. Questa è la connessione.

C'è il primo esempio in studio, e riguarda, correttamente, la dipendenza rettilinea delle quantità studiate. Durante la preparazione dell'articolo, mi sono imbattuto in un esempio che ha già messo in allerta molte persone: la dipendenza della corrente dalla tensione (“Analisi di regressione applicata”, N. Draper, G. Smith). Lo vedremo anche qui.

Secondo Legge di Ohm:

Masticando la regressione logisticaDove Masticando la regressione logistica - forza attuale, Masticando la regressione logistica - voltaggio, Masticando la regressione logistica - resistenza.

Se non lo sapessimo Legge di Ohm, allora potremmo trovare la dipendenza empiricamente cambiando Masticando la regressione logistica e misurazione Masticando la regressione logistica, pur sostenendo Masticando la regressione logistica fisso. Quindi vedremmo il grafico della dipendenza Masticando la regressione logistica от Masticando la regressione logistica dà una linea più o meno retta passante per l'origine. Diciamo “più o meno” perché, nonostante la relazione sia effettivamente accurata, le nostre misurazioni potrebbero contenere piccoli errori, e quindi i punti sul grafico potrebbero non cadere esattamente sulla linea, ma saranno sparsi attorno ad essa in modo casuale.

Grafico 1 “Dipendenza” Masticando la regressione logistica от Masticando la regressione logistica»

Masticando la regressione logistica

Codice disegno grafico

import matplotlib.pyplot as plt
%matplotlib inline

import numpy as np

import random

R = 13.75

x_line = np.arange(0,220,1)
y_line = []
for i in x_line:
    y_line.append(i/R)
    
y_dot = []
for i in y_line:
    y_dot.append(i+random.uniform(-0.9,0.9))


fig, axes = plt.subplots(figsize = (14,6), dpi = 80)
plt.plot(x_line,y_line,color = 'purple',lw = 3, label = 'I = U/R')
plt.scatter(x_line,y_dot,color = 'red', label = 'Actual results')
plt.xlabel('I', size = 16)
plt.ylabel('U', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

02. La necessità di trasformare l'equazione di regressione lineare

Diamo un'occhiata a un altro esempio. Immaginiamo di lavorare in una banca e il nostro compito è determinare la probabilità che il mutuatario ripaghi il prestito in base a determinati fattori. Per semplificare il compito, prenderemo in considerazione solo due fattori: lo stipendio mensile del mutuatario e l’importo mensile del rimborso del prestito.

Il compito è molto condizionato, ma con questo esempio possiamo capire perché non è sufficiente utilizzarlo funzioni di regressione lineare, e scopri anche quali trasformazioni devono essere effettuate con la funzione.

Torniamo all'esempio. Resta inteso che quanto più alto è lo stipendio, tanto più il mutuatario sarà in grado di stanziare mensilmente per rimborsare il prestito. Allo stesso tempo, per una certa fascia salariale, questa relazione sarà abbastanza lineare. Ad esempio, prendiamo un intervallo di stipendio compreso tra 60.000 RUR e 200.000 RUR e supponiamo che nell'intervallo di stipendio specificato la dipendenza dell'entità del pagamento mensile dall'entità dello stipendio sia lineare. Diciamo che per l’intervallo salariale specificato si è scoperto che il rapporto salario-pagamento non può scendere al di sotto di 3 e che il mutuatario deve avere ancora 5.000 RUR in riserva. E solo in questo caso assumeremo che il mutuatario ripagherà il prestito alla banca. Quindi, l’equazione di regressione lineare assumerà la forma:

Masticando la regressione logistica

dove Masticando la regressione logistica, Masticando la regressione logistica, Masticando la regressione logistica, Masticando la regressione logistica - stipendio Masticando la regressione logistica-esimo mutuatario, Masticando la regressione logistica - pagamento del prestito Masticando la regressione logistica-esimo mutuatario.

Sostituire il pagamento dello stipendio e del prestito con parametri fissi nell'equazione Masticando la regressione logistica Puoi decidere se concedere o rifiutare un prestito.

Guardando al futuro, lo notiamo, con i parametri indicati Masticando la regressione logistica funzione di regressione lineare, usato in funzioni di risposta logistica produrrà valori grandi che complicheranno i calcoli per determinare le probabilità di rimborso del prestito. Pertanto si propone di ridurre i nostri coefficienti, diciamo, di 25.000 volte. Questa trasformazione dei coefficienti non cambierà la decisione di emettere un prestito. Ricordiamoci questo punto per il futuro, ma ora, per rendere ancora più chiaro di cosa stiamo parlando, consideriamo la situazione con tre potenziali mutuatari.

Tabella 1 “Potenziali mutuatari”

Masticando la regressione logistica

Codice per generare la tabella

import pandas as pd

r = 25000.0
w_0 = -5000.0/r
w_1 = 1.0/r
w_2 = -3.0/r

data = {'The borrower':np.array(['Vasya', 'Fedya', 'Lesha']), 
        'Salary':np.array([120000,180000,210000]),
       'Payment':np.array([3000,50000,70000])}

df = pd.DataFrame(data)

df['f(w,x)'] = w_0 + df['Salary']*w_1 + df['Payment']*w_2

decision = []
for i in df['f(w,x)']:
    if i > 0:
        dec = 'Approved'
        decision.append(dec)
    else:
        dec = 'Refusal'
        decision.append(dec)
        
df['Decision'] = decision

df[['The borrower', 'Salary', 'Payment', 'f(w,x)', 'Decision']]

Secondo i dati nella tabella, Vasya, con uno stipendio di 120.000 RUR, vuole ricevere un prestito in modo da poterlo rimborsare mensilmente a 3.000 RUR. Abbiamo stabilito che, per approvare il prestito, lo stipendio di Vasya deve superare il triplo dell’importo del pagamento e devono rimanere ancora 5.000 RUR. Vasya soddisfa questo requisito: Masticando la regressione logistica. Rimangono anche 106.000 RUR. Nonostante il fatto che durante il calcolo Masticando la regressione logistica abbiamo ridotto le probabilità Masticando la regressione logistica 25.000 volte il risultato è stato lo stesso: il prestito può essere approvato. Anche Fedya riceverà un prestito, ma Lesha, nonostante riceva di più, dovrà frenare i suoi appetiti.

Disegniamo un grafico per questo caso.

Grafico 2 “Classificazione dei mutuatari”

Masticando la regressione logistica

Codice per disegnare il grafico

salary = np.arange(60000,240000,20000)
payment = (-w_0-w_1*salary)/w_2


fig, axes = plt.subplots(figsize = (14,6), dpi = 80)
plt.plot(salary, payment, color = 'grey', lw = 2, label = '$f(w,x_i)=w_0 + w_1x_{i1} + w_2x_{i2}$')
plt.plot(df[df['Decision'] == 'Approved']['Salary'], df[df['Decision'] == 'Approved']['Payment'], 
         'o', color ='green', markersize = 12, label = 'Decision - Loan approved')
plt.plot(df[df['Decision'] == 'Refusal']['Salary'], df[df['Decision'] == 'Refusal']['Payment'], 
         's', color = 'red', markersize = 12, label = 'Decision - Loan refusal')
plt.xlabel('Salary', size = 16)
plt.ylabel('Payment', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

Quindi, la nostra linea retta, costruita secondo la funzione Masticando la regressione logistica, separa i mutuatari “cattivi” da quelli “buoni”. Quei mutuatari i cui desideri non coincidono con le loro capacità sono sopra la linea (Lesha), mentre quelli che, secondo i parametri del nostro modello, sono in grado di ripagare il prestito sono sotto la linea (Vasya e Fedya). In altre parole possiamo dire questo: la nostra linea diretta divide i mutuatari in due classi. Denotiamoli come segue: alla classe Masticando la regressione logistica Classificheremo i mutuatari che hanno maggiori probabilità di rimborsare il prestito come Masticando la regressione logistica o Masticando la regressione logistica Includeremo quei mutuatari che molto probabilmente non saranno in grado di rimborsare il prestito.

Riassumiamo le conclusioni di questo semplice esempio. Prendiamo un punto Masticando la regressione logistica e, sostituendo le coordinate del punto nella corrispondente equazione della retta Masticando la regressione logistica, considera tre opzioni:

  1. Se il punto è sotto la linea e lo assegniamo alla classe Masticando la regressione logistica, quindi il valore della funzione Masticando la regressione logistica sarà positivo da Masticando la regressione logistica a Masticando la regressione logistica. Ciò significa che possiamo supporre che la probabilità di rimborso del prestito sia compresa Masticando la regressione logistica. Maggiore è il valore della funzione, maggiore è la probabilità.
  2. Se un punto è sopra una linea e lo assegniamo alla classe Masticando la regressione logistica o Masticando la regressione logistica, allora il valore della funzione sarà negativo da Masticando la regressione logistica a Masticando la regressione logistica. Quindi assumeremo che la probabilità di rimborso del debito sia entro Masticando la regressione logistica e, maggiore è il valore assoluto della funzione, maggiore è la nostra fiducia.
  3. Il punto è su una linea retta, al confine tra due classi. In questo caso, il valore della funzione Masticando la regressione logistica sarà uguale Masticando la regressione logistica e la probabilità di ripagare il prestito è pari a Masticando la regressione logistica.

Ora, immaginiamo di avere non due fattori, ma dozzine, e non tre, ma migliaia di mutuatari. Quindi invece di una linea retta avremo m-dimensionale piano e coefficienti Masticando la regressione logistica non saremo presi dal nulla, ma derivati ​​secondo tutte le regole e sulla base dei dati accumulati sui mutuatari che hanno o non hanno rimborsato il prestito. E in effetti, si noti che ora stiamo selezionando i mutuatari utilizzando coefficienti già noti Masticando la regressione logistica. Il compito del modello di regressione logistica, infatti, è proprio quello di determinare i parametri Masticando la regressione logistica, in cui il valore della funzione di perdita Perdita logistica tenderà al minimo. Ma su come viene calcolato il vettore Masticando la regressione logistica, ne scopriremo di più nella quinta sezione dell'articolo. Nel frattempo torniamo alla terra promessa, dal nostro banchiere e dai suoi tre clienti.

Grazie alla funzione Masticando la regressione logistica sappiamo a chi può essere concesso un prestito e chi deve essere rifiutato. Ma non è possibile rivolgersi al direttore con tali informazioni, perché volevano ottenere da noi la probabilità di rimborso del prestito da parte di ciascun mutuatario. Cosa fare? La risposta è semplice: dobbiamo in qualche modo trasformare la funzione Masticando la regressione logistica, i cui valori rientrano nell'intervallo Masticando la regressione logistica a una funzione i cui valori rientreranno nell'intervallo Masticando la regressione logistica. E tale funzione esiste, si chiama funzione di risposta logistica o trasformazione logit inversa. Incontrare:

Masticando la regressione logistica

Vediamo passo passo come funziona funzione di risposta logistica. Tieni presente che cammineremo nella direzione opposta, cioè supporremo di conoscere il valore di probabilità, che rientra nell'intervallo da Masticando la regressione logistica a Masticando la regressione logistica e poi "srotoleremo" questo valore sull'intero intervallo di numeri da Masticando la regressione logistica a Masticando la regressione logistica.

03. Deriviamo la funzione di risposta logistica

Passaggio 1. Converti i valori di probabilità in un intervallo Masticando la regressione logistica

Durante la trasformazione della funzione Masticando la regressione logistica в funzione di risposta logistica Masticando la regressione logistica Lasceremo stare il nostro analista del credito e faremo invece un giro tra i bookmaker. No, certo, non faremo scommesse, tutto ciò che ci interessa è il significato dell'espressione, ad esempio la probabilità è 4 a 1. Le quote, familiari a tutti gli scommettitori, sono il rapporto tra "successi" e " fallimenti”. In termini di probabilità, le quote sono la probabilità che un evento si verifichi divisa per la probabilità che l’evento non si verifichi. Scriviamo la formula per la possibilità che si verifichi un evento Masticando la regressione logistica:

Masticando la regressione logistica

Dove Masticando la regressione logistica - probabilità che si verifichi un evento, Masticando la regressione logistica — probabilità che un evento NON si verifichi

Ad esempio, se la probabilità che un cavallo giovane, forte e giocoso soprannominato "Veterok" batterà una vecchia e flaccida donna chiamata "Matilda" in una corsa è uguale a Masticando la regressione logistica, allora ci saranno le possibilità di successo per “Veterok”. Masticando la regressione logistica к Masticando la regressione logistica Masticando la regressione logistica e viceversa, conoscendo le probabilità, non ci sarà difficile calcolare la probabilità Masticando la regressione logistica:

Masticando la regressione logistica

Abbiamo così imparato a “tradurre” la probabilità in probabilità, da cui trarre valore Masticando la regressione logistica a Masticando la regressione logistica. Facciamo un ulteriore passo e impariamo a “tradurre” la probabilità nell'intera linea numerica Masticando la regressione logistica a Masticando la regressione logistica.

Passaggio 2. Converti i valori di probabilità in un intervallo Masticando la regressione logistica

Questo passaggio è molto semplice: prendiamo il logaritmo delle probabilità alla base del numero di Eulero Masticando la regressione logistica e otteniamo:

Masticando la regressione logistica

Ora lo sappiamo se Masticando la regressione logistica, quindi calcolare il valore Masticando la regressione logistica sarà molto semplice e, inoltre, dovrebbe essere positivo: Masticando la regressione logistica. Questo è vero.

Per curiosità, controlliamo cosa accadrebbe se Masticando la regressione logistica, allora ci aspettiamo di vedere un valore negativo Masticando la regressione logistica. Controlliamo: Masticando la regressione logistica. Giusto.

Ora sappiamo come convertire il valore di probabilità da Masticando la regressione logistica a Masticando la regressione logistica lungo tutta la linea numerica da Masticando la regressione logistica a Masticando la regressione logistica. Nel passaggio successivo faremo il contrario.

Per ora, notiamo che secondo le regole del logaritmo, conoscendo il valore della funzione Masticando la regressione logistica, puoi calcolare le probabilità:

Masticando la regressione logistica

Questo metodo per determinare le quote ci sarà utile nel passaggio successivo.

Passaggio 3. Deriviamo una formula per determinare Masticando la regressione logistica

Quindi abbiamo imparato, sapendo Masticando la regressione logistica, trova i valori della funzione Masticando la regressione logistica. Tuttavia, in realtà, abbiamo bisogno esattamente del contrario: conoscere il valore Masticando la regressione logistica da trovare Masticando la regressione logistica. Per fare ciò, passiamo a un concetto come la funzione di probabilità inversa, secondo la quale:

Masticando la regressione logistica

Nell'articolo non deriveremo la formula sopra, ma la controlleremo utilizzando i numeri dell'esempio sopra. Sappiamo che con una quota di 4 a 1 (Masticando la regressione logistica), la probabilità che l'evento si verifichi è 0.8 (Masticando la regressione logistica). Facciamo una sostituzione: Masticando la regressione logistica. Ciò coincide con i nostri calcoli effettuati in precedenza. Andiamo avanti.

Nell'ultimo passaggio lo abbiamo dedotto Masticando la regressione logistica, il che significa che puoi effettuare una sostituzione nella funzione delle quote inverse. Noi abbiamo:

Masticando la regressione logistica

Dividi sia il numeratore che il denominatore per Masticando la regressione logistica, poi:

Masticando la regressione logistica

Per ogni evenienza, per essere sicuri di non aver commesso errori da nessuna parte, faremo un altro piccolo controllo. Nel passaggio 2, for Masticando la regressione logistica lo ha determinato Masticando la regressione logistica. Quindi, sostituendo il valore Masticando la regressione logistica nella funzione di risposta logistica, ci aspettiamo di ottenere Masticando la regressione logistica. Sostituiamo e otteniamo: Masticando la regressione logistica

Congratulazioni, caro lettore, abbiamo appena derivato e testato la funzione di risposta logistica. Diamo un'occhiata al grafico della funzione.

Grafico 3 “Funzione di risposta logistica”

Masticando la regressione logistica

Codice per disegnare il grafico

import math

def logit (f):
    return 1/(1+math.exp(-f))

f = np.arange(-7,7,0.05)
p = []

for i in f:
    p.append(logit(i))

fig, axes = plt.subplots(figsize = (14,6), dpi = 80)
plt.plot(f, p, color = 'grey', label = '$ 1 / (1+e^{-w^Tx_i})$')
plt.xlabel('$f(w,x_i) = w^Tx_i$', size = 16)
plt.ylabel('$p_{i+}$', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

In letteratura è possibile trovare anche il nome di questa funzione come funzione sigmoidea. Il grafico mostra chiaramente che la variazione principale nella probabilità che un oggetto appartenga ad una classe avviene in un intervallo relativamente piccolo Masticando la regressione logistica, da qualche parte Masticando la regressione logistica a Masticando la regressione logistica.

Suggerisco di tornare dal nostro analista del credito e di aiutarlo a calcolare la probabilità di rimborso del prestito, altrimenti rischia di rimanere senza bonus :)

Tabella 2 “Potenziali mutuatari”

Masticando la regressione logistica

Codice per generare la tabella

proba = []
for i in df['f(w,x)']:
    proba.append(round(logit(i),2))
    
df['Probability'] = proba

df[['The borrower', 'Salary', 'Payment', 'f(w,x)', 'Decision', 'Probability']]

Quindi, abbiamo determinato la probabilità di rimborso del prestito. In generale, questo sembra essere vero.

Infatti, la probabilità che Vasya, con uno stipendio di 120.000 RUR, possa donare alla banca 3.000 RUR ogni mese è vicina al 100%. A proposito, dobbiamo capire che una banca può concedere un prestito a Lesha se la politica della banca prevede, ad esempio, prestiti ai clienti con una probabilità di rimborso superiore, diciamo, a 0.3. È solo che in questo caso la banca creerà una riserva maggiore per possibili perdite.

Va inoltre notato che dal massimale è stato prelevato il rapporto salario-pagamento di almeno 3 e con un margine di 5.000 RUR. Pertanto non è stato possibile utilizzare il vettore dei pesi nella sua forma originale Masticando la regressione logistica. Avevamo bisogno di ridurre molto i coefficienti, e in questo caso abbiamo diviso ogni coefficiente per 25.000, cioè in sostanza abbiamo corretto il risultato. Ma ciò è stato fatto appositamente per semplificare la comprensione del materiale nella fase iniziale. Nella vita non avremo bisogno di inventare e aggiustare i coefficienti, ma di trovarli. Nelle prossime sezioni dell'articolo ricaveremo le equazioni con cui vengono selezionati i parametri Masticando la regressione logistica.

04. Metodo dei minimi quadrati per determinare il vettore dei pesi Masticando la regressione logistica nella funzione di risposta logistica

Conosciamo già questo metodo per selezionare un vettore di pesi Masticando la regressione logisticaCome metodo dei minimi quadrati (LSM) e infatti, perché non usarlo poi nei problemi di classificazione binaria? In effetti, nulla ti impedisce di utilizzare MNC, solo questo metodo nei problemi di classificazione fornisce risultati meno accurati di Perdita logistica. C'è una base teorica per questo. Diamo prima un'occhiata a un semplice esempio.

Supponiamo che i nostri modelli (usando MSE и Perdita logistica) hanno già iniziato a selezionare il vettore dei pesi Masticando la regressione logistica e ad un certo punto abbiamo interrotto il calcolo. Non importa se a metà, alla fine o all'inizio, l'importante è che abbiamo già alcuni valori del vettore dei pesi e supponiamo che in questo passaggio il vettore dei pesi Masticando la regressione logistica per entrambi i modelli non ci sono differenze. Quindi prendi i pesi risultanti e sostituiscili funzione di risposta logistica (Masticando la regressione logistica) per qualche oggetto che appartiene alla classe Masticando la regressione logistica. Esaminiamo due casi in cui, in base al vettore dei pesi selezionato, il nostro modello è molto sbagliato e viceversa: il modello è molto fiducioso che l'oggetto appartenga alla classe Masticando la regressione logistica. Vediamo quali multe verranno emesse in caso di utilizzo MNC и Perdita logistica.

Codice per calcolare le penalità in base alla funzione di perdita utilizzata

# класс объекта
y = 1
# вероятность отнесения объекта к классу в соответствии с параметрами w
proba_1 = 0.01

MSE_1 = (y - proba_1)**2
print 'Штраф MSE при грубой ошибке =', MSE_1

# напишем функцию для вычисления f(w,x) при известной вероятности отнесения объекта к классу +1 (f(w,x)=ln(odds+))
def f_w_x(proba):
    return math.log(proba/(1-proba)) 

LogLoss_1 = math.log(1+math.exp(-y*f_w_x(proba_1)))
print 'Штраф Log Loss при грубой ошибке =', LogLoss_1

proba_2 = 0.99

MSE_2 = (y - proba_2)**2
LogLoss_2 = math.log(1+math.exp(-y*f_w_x(proba_2)))

print '**************************************************************'
print 'Штраф MSE при сильной уверенности =', MSE_2
print 'Штраф Log Loss при сильной уверенности =', LogLoss_2

Un caso di errore — il modello assegna un oggetto a una classe Masticando la regressione logistica con una probabilità di 0,01

Penalità sull'uso MNC sarà:
Masticando la regressione logistica

Penalità sull'uso Perdita logistica sarà:
Masticando la regressione logistica

Un caso di forte fiducia — il modello assegna un oggetto a una classe Masticando la regressione logistica con una probabilità di 0,99

Penalità sull'uso MNC sarà:
Masticando la regressione logistica

Penalità sull'uso Perdita logistica sarà:
Masticando la regressione logistica

Questo esempio illustra bene che in caso di errore grave la funzione di perdita Perdita di registro penalizza il modello nettamente di più MSE. Vediamo ora quali sono le basi teoriche per l'utilizzo della funzione di perdita Perdita di registro nei problemi di classificazione.

05. Metodo della massima verosimiglianza e regressione logistica

Come promesso all'inizio, l'articolo è pieno di semplici esempi. Nello studio c'è un altro esempio e vecchi ospiti: mutuatari della banca: Vasya, Fedya e Lesha.

Per ogni evenienza, prima di sviluppare l'esempio, lascia che ti ricordi che nella vita abbiamo a che fare con un campione formativo di migliaia o milioni di oggetti con decine o centinaia di caratteristiche. Tuttavia, qui i numeri sono presi in modo che possano facilmente adattarsi alla testa di un data scientist alle prime armi.

Torniamo all'esempio. Immaginiamo che il direttore della banca abbia deciso di concedere un prestito a tutti i bisognosi, nonostante l'algoritmo gli avesse detto di non concederlo a Lesha. E ora è passato abbastanza tempo e sappiamo quale dei tre eroi ha ripagato il prestito e quale no. Cosa c'era da aspettarsi: Vasya e Fedya hanno rimborsato il prestito, ma Lesha no. Ora immaginiamo che questo risultato sarà per noi un nuovo campione di formazione e, allo stesso tempo, è come se tutti i dati sui fattori che influenzano la probabilità di rimborso del prestito (stipendio del mutuatario, entità della rata mensile) fossero scomparsi. Quindi, intuitivamente, possiamo assumere che un mutuatario su tre non ripaghi il prestito alla banca, o in altre parole, la probabilità che il mutuatario successivo ripaghi il prestito Masticando la regressione logistica. Questo presupposto intuitivo ha una conferma teorica e si basa su metodo della massima verosimiglianza, spesso in letteratura viene chiamato principio di massima verosimiglianza.

Per prima cosa, facciamo conoscenza con l'apparato concettuale.

Probabilità del campionamento è la probabilità di ottenere esattamente tale campione, ottenendo esattamente tali osservazioni/risultati, cioè il prodotto delle probabilità di ottenere ciascuno dei risultati del campione (ad esempio, se il prestito di Vasya, Fedya e Lesha è stato rimborsato o meno contemporaneamente).

Funzione di verosimiglianza mette in relazione la verosimiglianza di un campione con i valori dei parametri di distribuzione.

Nel nostro caso, il campione di addestramento è uno schema Bernoulli generalizzato, in cui la variabile casuale assume solo due valori: Masticando la regressione logistica o Masticando la regressione logistica. Pertanto, la verosimiglianza del campione può essere scritta come una funzione di verosimiglianza del parametro Masticando la regressione logistica следующим обрахом:

Masticando la regressione logistica
Masticando la regressione logistica

La voce precedente può essere interpretata come segue. La probabilità congiunta che Vasya e Fedya ripagheranno il prestito è uguale a Masticando la regressione logistica, la probabilità che Lesha NON ripaghi il prestito è pari a Masticando la regressione logistica (poiché NON è avvenuta la restituzione del prestito), quindi la probabilità congiunta di tutti e tre gli eventi è uguale Masticando la regressione logistica.

Metodo di massima verosimiglianza è un metodo per stimare un parametro sconosciuto massimizzando funzioni di verosimiglianza. Nel nostro caso, dobbiamo trovare tale valore Masticando la regressione logisticaa quale Masticando la regressione logistica raggiunge il suo massimo.

Da dove viene l'idea vera e propria: cercare il valore di un parametro sconosciuto in corrispondenza del quale la funzione di verosimiglianza raggiunge il massimo? Le origini dell'idea derivano dall'idea che un campione è l'unica fonte di conoscenza a nostra disposizione sulla popolazione. Tutto ciò che sappiamo della popolazione è rappresentato nel campione. Pertanto, tutto ciò che possiamo dire è che un campione è il riflesso più accurato della popolazione a nostra disposizione. Pertanto, dobbiamo trovare un parametro in corrispondenza del quale il campione disponibile diventa il più probabile.

Ovviamente abbiamo a che fare con un problema di ottimizzazione in cui dobbiamo trovare il punto estremo di una funzione. Per trovare il punto estremo è necessario considerare la condizione del primo ordine, cioè uguagliare a zero la derivata della funzione e risolvere l'equazione rispetto al parametro desiderato. Tuttavia, cercare la derivata di un prodotto di un gran numero di fattori può essere un compito lungo; per evitarlo esiste una tecnica speciale: passare al logaritmo funzioni di verosimiglianza. Perché è possibile una tale transizione? Prestiamo attenzione al fatto che non stiamo cercando l'estremo della funzione stessaMasticando la regressione logistica, e il punto estremo, cioè il valore del parametro sconosciuto Masticando la regressione logisticaa quale Masticando la regressione logistica raggiunge il suo massimo. Quando si passa a un logaritmo, il punto estremo non cambia (anche se l'estremo stesso sarà diverso), poiché il logaritmo è una funzione monotona.

Continuiamo, in accordo con quanto sopra, a sviluppare il nostro esempio con i prestiti di Vasya, Fedya e Lesha. Per prima cosa passiamo a logaritmo della funzione di verosimiglianza:

Masticando la regressione logistica

Ora possiamo facilmente differenziare l'espressione da Masticando la regressione logistica:

Masticando la regressione logistica

Infine, considera la condizione del primo ordine: equiparamo la derivata della funzione a zero:

Masticando la regressione logistica

Pertanto, la nostra stima intuitiva della probabilità di rimborso del prestito Masticando la regressione logistica era teoricamente giustificato.

Ottimo, ma cosa dovremmo fare adesso con queste informazioni? Se assumiamo che un mutuatario su tre non restituisca i soldi alla banca, quest'ultima andrà inevitabilmente in bancarotta. Esatto, ma solo quando si valuta la probabilità di rimborso del prestito pari a Masticando la regressione logistica Non abbiamo preso in considerazione i fattori che influenzano il rimborso del prestito: lo stipendio del mutuatario e l’entità della rata mensile. Ricordiamo che abbiamo precedentemente calcolato la probabilità di rimborso del prestito da parte di ciascun cliente, tenendo conto di questi stessi fattori. È logico che abbiamo ottenuto probabilità diverse dalla costante uguale Masticando la regressione logistica.

Definiamo la probabilità dei campioni:

Codice per il calcolo delle verosimiglianze del campione

from functools import reduce

def likelihood(y,p):
    line_true_proba = []
    for i in range(len(y)):
        ltp_i = p[i]**y[i]*(1-p[i])**(1-y[i])
        line_true_proba.append(ltp_i)
    likelihood = []
    return reduce(lambda a, b: a*b, line_true_proba)
        
    
y = [1.0,1.0,0.0]
p_log_response = df['Probability']
const = 2.0/3.0
p_const = [const, const, const]


print 'Правдоподобие выборки при константном значении p=2/3:', round(likelihood(y,p_const),3)

print '****************************************************************************************************'

print 'Правдоподобие выборки при расчетном значении p:', round(likelihood(y,p_log_response),3)

Verosimiglianza del campione a valore costante Masticando la regressione logistica:

Masticando la regressione logistica

Probabilità del campione nel calcolo della probabilità di rimborso del prestito tenendo conto dei fattori Masticando la regressione logistica:

Masticando la regressione logistica
Masticando la regressione logistica

La probabilità di un campione con una probabilità calcolata in base ai fattori si è rivelata superiore alla probabilità con un valore di probabilità costante. Cosa significa questo? Ciò suggerisce che la conoscenza dei fattori ha permesso di selezionare con maggiore precisione la probabilità di rimborso del prestito per ciascun cliente. Pertanto, in sede di erogazione del prossimo prestito, sarebbe più corretto utilizzare il modello proposto alla fine della sezione 3 dell'articolo per valutare la probabilità di rimborso del debito.

Ma poi, se vogliamo massimizzare funzione di verosimiglianza del campione, allora perché non utilizzare un algoritmo che produca probabilità per Vasya, Fedya e Lesha, ad esempio, pari rispettivamente a 0.99, 0.99 e 0.01. Forse un tale algoritmo funzionerà bene sul campione di addestramento, poiché avvicinerà il valore di verosimiglianza del campione Masticando la regressione logistica, ma, in primo luogo, un tale algoritmo avrà molto probabilmente difficoltà con la capacità di generalizzazione e, in secondo luogo, questo algoritmo non sarà sicuramente lineare. E se i metodi per combattere il sovrallenamento (capacità di generalizzazione altrettanto debole) non sono chiaramente inclusi nel piano di questo articolo, esaminiamo il secondo punto in modo più dettagliato. Per fare ciò basta rispondere ad una semplice domanda. La probabilità che Vasya e Fedya ripaghino il prestito può essere la stessa, tenendo conto dei fattori a noi noti? Dal punto di vista della logica logica, ovviamente no, non può. Quindi Vasya pagherà il 2.5% del suo stipendio al mese per ripagare il prestito e Fedya - quasi il 27,8%. Anche nel grafico 2 “Classificazione della clientela” vediamo che Vasya è molto più lontana dalla linea di separazione delle classi rispetto a Fedya. E infine, sappiamo che la funzione Masticando la regressione logistica per Vasya e Fedya assume valori diversi: 4.24 per Vasya e 1.0 per Fedya. Ora, se Fedya, ad esempio, guadagnasse un ordine di grandezza in più o chiedesse un prestito minore, allora le probabilità di ripagare il prestito per Vasya e Fedya sarebbero simili. In altre parole, la dipendenza lineare non può essere ingannata. E se effettivamente calcolassimo le probabilità Masticando la regressione logistica, e non li abbiamo tirati fuori dal nulla, potremmo tranquillamente affermare che i nostri valori Masticando la regressione logistica consentono di stimare al meglio la probabilità di rimborso del prestito da parte di ciascun mutuatario, ma poiché abbiamo convenuto di assumere che la determinazione dei coefficienti Masticando la regressione logistica è stato effettuato secondo tutte le regole, quindi lo assumeremo: i nostri coefficienti ci consentono di fornire una stima migliore della probabilità :)

Tuttavia, stiamo divagando. In questa sezione dobbiamo capire come viene determinato il vettore dei pesi Masticando la regressione logistica, necessario per valutare la probabilità di rimborso del prestito da parte di ciascun mutuatario.

Riassumiamo brevemente con quale arsenale andiamo a cercare le quote Masticando la regressione logistica:

1. Partiamo dal presupposto che la relazione tra la variabile target (valore di previsione) e il fattore che influenza il risultato sia lineare. Per questo motivo viene utilizzato funzione di regressione lineare specie Masticando la regressione logistica, la cui linea divide gli oggetti (client) in classi Masticando la regressione logistica и Masticando la regressione logistica o Masticando la regressione logistica (clienti che sono in grado di rimborsare il prestito e quelli che non lo sono). Nel nostro caso, l'equazione ha la forma Masticando la regressione logistica.

2. Usiamo funzione logit inversa specie Masticando la regressione logistica per determinare la probabilità che un oggetto appartenga ad una classe Masticando la regressione logistica.

3. Consideriamo il nostro set formativo come l'implementazione di un approccio generalizzato Schemi Bernoulli, cioè per ogni oggetto viene generata una variabile casuale, che con probabilità Masticando la regressione logistica (il proprio per ogni oggetto) assume valore 1 e con probabilità Masticando la regressione logistica - 0.

4. Sappiamo cosa dobbiamo massimizzare funzione di verosimiglianza del campione tenendo conto dei fattori accettati in modo che il campione disponibile diventi il ​​più plausibile. In altre parole, dobbiamo selezionare i parametri in base ai quali il campione sarà più plausibile. Nel nostro caso il parametro selezionato è la probabilità di rimborso del prestito Masticando la regressione logistica, che a sua volta dipende da coefficienti sconosciuti Masticando la regressione logistica. Quindi dobbiamo trovare un tale vettore di pesi Masticando la regressione logistica, al quale la probabilità del campione sarà massima.

5. Sappiamo cosa massimizzare funzioni di verosimiglianza del campione puoi usare metodo della massima verosimiglianza. E conosciamo tutti i trucchi complicati per lavorare con questo metodo.

Ecco come risulta essere una mossa in più passaggi :)

Ora ricorda che all'inizio dell'articolo volevamo derivare due tipi di funzioni di perdita Perdita logistica a seconda di come vengono designate le classi di oggetti. È successo così che nei problemi di classificazione con due classi, le classi sono indicate come Masticando la regressione logistica и Masticando la regressione logistica o Masticando la regressione logistica. A seconda della notazione, l'output avrà una corrispondente funzione di perdita.

Caso 1. Classificazione degli oggetti in Masticando la regressione logistica и Masticando la regressione logistica

In precedenza, quando si determinava la probabilità di un campione, in cui la probabilità di rimborso del debito da parte del mutuatario veniva calcolata sulla base di fattori e determinati coefficienti Masticando la regressione logistica, abbiamo applicato la formula:

Masticando la regressione logistica

Effettivamente Masticando la regressione logistica è il significato funzioni di risposta logistica Masticando la regressione logistica per un dato vettore di pesi Masticando la regressione logistica

Allora nulla ci impedisce di scrivere la funzione di verosimiglianza campionaria come segue:

Masticando la regressione logistica

Succede che a volte è difficile per alcuni analisti alle prime armi capire immediatamente come funziona questa funzione. Vediamo 4 brevi esempi che chiariranno le cose:

1. se Masticando la regressione logistica (ovvero, secondo il campione di addestramento, l'oggetto appartiene alla classe +1) e il nostro algoritmo Masticando la regressione logistica determina la probabilità di classificare un oggetto in una classe Masticando la regressione logistica pari a 0.9, allora questa parte di verosimiglianza del campione verrà calcolata come segue:

Masticando la regressione logistica

2. se Masticando la regressione logisticaE Masticando la regressione logistica, allora il calcolo sarà così:

Masticando la regressione logistica

3. se Masticando la regressione logisticaE Masticando la regressione logistica, allora il calcolo sarà così:

Masticando la regressione logistica

4. se Masticando la regressione logisticaE Masticando la regressione logistica, allora il calcolo sarà così:

Masticando la regressione logistica

È ovvio che la funzione di verosimiglianza sarà massimizzata nei casi 1 e 3 o nel caso generale - con valori indovinati correttamente delle probabilità di assegnare un oggetto a una classe Masticando la regressione logistica.

A causa del fatto che quando si determina la probabilità di assegnare un oggetto a una classe Masticando la regressione logistica Solo non conosciamo i coefficienti Masticando la regressione logistica, allora li cercheremo. Come accennato in precedenza, questo è un problema di ottimizzazione in cui dobbiamo prima trovare la derivata della funzione di verosimiglianza rispetto al vettore dei pesi Masticando la regressione logistica. Tuttavia, prima ha senso semplificare il compito: cercheremo la derivata del logaritmo funzioni di verosimiglianza.

Masticando la regressione logistica

Perché dopo il logaritmo, in funzioni di errore logistico, abbiamo cambiato il segno da Masticando la regressione logistica su Masticando la regressione logistica. Tutto è semplice, poiché nei problemi di valutazione della qualità di un modello è consuetudine minimizzare il valore di una funzione, abbiamo moltiplicato il lato destro dell'espressione per Masticando la regressione logistica e di conseguenza, invece di massimizzare, ora minimizziamo la funzione.

In realtà, proprio adesso, davanti ai vostri occhi, la funzione di perdita è stata faticosamente ricavata... Perdita logistica per un set formativo con due classi: Masticando la regressione logistica и Masticando la regressione logistica.

Ora, per trovare i coefficienti, dobbiamo solo trovare la derivata funzioni di errore logistico quindi, utilizzando metodi di ottimizzazione numerica, come la discesa del gradiente o la discesa del gradiente stocastica, selezionare i coefficienti più ottimali Masticando la regressione logistica. Ma, dato il notevole volume dell'articolo, si propone di effettuare la differenziazione da soli, o forse questo sarà un argomento per il prossimo articolo con molta aritmetica senza esempi così dettagliati.

Caso 2. Classificazione degli oggetti in Masticando la regressione logistica и Masticando la regressione logistica

L'approccio qui sarà lo stesso delle lezioni Masticando la regressione logistica и Masticando la regressione logistica, ma il percorso stesso verso l'output della funzione di perdita Perdita logistica, sarà più elaborato. Iniziamo. Per la funzione di verosimiglianza utilizzeremo l'operatore "se poi..."... Cioè, se Masticando la regressione logisticaL'oggetto th appartiene alla classe Masticando la regressione logistica, quindi per calcolare la verosimiglianza del campione utilizziamo la probabilità Masticando la regressione logistica, se l'oggetto appartiene alla classe Masticando la regressione logistica, allora sostituiamo con la verosimiglianza Masticando la regressione logistica. Ecco come appare la funzione di verosimiglianza:

Masticando la regressione logistica

Descriviamo con le dita come funziona. Consideriamo 4 casi:

1. se Masticando la regressione logistica и Masticando la regressione logistica, allora la probabilità di campionamento “andrà” Masticando la regressione logistica

2. se Masticando la regressione logistica и Masticando la regressione logistica, allora la probabilità di campionamento “andrà” Masticando la regressione logistica

3. se Masticando la regressione logistica и Masticando la regressione logistica, allora la probabilità di campionamento “andrà” Masticando la regressione logistica

4. se Masticando la regressione logistica и Masticando la regressione logistica, allora la probabilità di campionamento “andrà” Masticando la regressione logistica

È ovvio che nei casi 1 e 3, quando le probabilità erano determinate correttamente dall’algoritmo, funzione di verosimiglianza sarà massimizzato, ovvero questo è esattamente ciò che volevamo ottenere. Tuttavia, questo approccio è piuttosto macchinoso e di seguito considereremo una notazione più compatta. Ma prima logaritmiamo la funzione di verosimiglianza con un cambio di segno, poiché ora la minimizzeremo.

Masticando la regressione logistica

Sostituiamo invece Masticando la regressione logistica espressione Masticando la regressione logistica:

Masticando la regressione logistica

Semplifichiamo il termine giusto sotto il logaritmo utilizzando semplici tecniche aritmetiche e otteniamo:

Masticando la regressione logistica

Ora è il momento di sbarazzarsi dell'operatore "se poi...". Tieni presente che quando un oggetto Masticando la regressione logistica appartiene alla classe Masticando la regressione logistica, quindi nell'espressione sotto il logaritmo, al denominatore, Masticando la regressione logistica elevato al potere Masticando la regressione logistica, se l'oggetto appartiene alla classe Masticando la regressione logistica, allora $e$ viene elevato alla potenza Masticando la regressione logistica. Pertanto, la notazione per il grado può essere semplificata combinando entrambi i casi in uno solo: Masticando la regressione logistica. poi funzione di errore logistico assumerà la forma:

Masticando la regressione logistica

Secondo le regole del logaritmo, capovolgiamo la frazione e mettiamo il segno "Masticando la regressione logistica" (meno) per il logaritmo, otteniamo:

Masticando la regressione logistica

Ecco la funzione di perdita perdita logistica, che viene utilizzato nel set di training con oggetti assegnati alle classi: Masticando la regressione logistica и Masticando la regressione logistica.

Bene, a questo punto mi congedo e concludiamo l'articolo.

Masticando la regressione logistica Il lavoro precedente dell’autore è “Portare l’equazione di regressione lineare in forma di matrice”

materiali ausiliari

1. letteratura

1) Analisi di regressione applicata / N. Draper, G. Smith - 2a ed. – M.: Finanza e Statistica, 1986 (traduzione dall'inglese)

2) Teoria della probabilità e statistica matematica / V.E. Gmurman - 9a ed. - M.: Scuola Superiore, 2003

3) Teoria della probabilità / N.I. Chernova-Novosibirsk: Università statale di Novosibirsk, 2007

4) Analisi aziendale: dai dati alla conoscenza / Paklin N. B., Oreshkov V. I. - 2a ed. — San Pietroburgo: Pietro, 2013

5) Scienza dei dati Scienza dei dati da zero / Joel Gras - San Pietroburgo: BHV Pietroburgo, 2017

6) Statistiche pratiche per specialisti di Data Science / P. Bruce, E. Bruce - San Pietroburgo: BHV Pietroburgo, 2018

2. Lezioni frontali, corsi (video)

1) L'essenza del metodo della massima verosimiglianza, Boris Demeshev

2) Metodo della massima verosimiglianza nel caso continuo, Boris Demeshev

3) Regressione logistica. Corso ODS aperto, Yury Kashnitsky

4) Lezione 4, Evgeny Sokolov (da 47 minuti di video)

5) Regressione logistica, Vyacheslav Vorontsov

3. Fonti Internet

1) Classificazione lineare e modelli di regressione

2) Come comprendere facilmente la regressione logistica

3) Funzione errore logistico

4) Test indipendenti e formula di Bernoulli

5) Ballata di MMP

6) Metodo di massima verosimiglianza

7) Formule e proprietà dei logaritmi

8) Perché numero Masticando la regressione logistica?

9) Classificatore lineare

Fonte: habr.com

Aggiungi un commento