Masticando la regressione logistica

Masticando la regressione logistica

In questo articolo, analizzeremo le formulazioni teoriche della trasformazione della funzione di regressione lineare in la funzione di trasformazione logit inversa (nota anche come funzione di risposta logistica). Poi, utilizzando l'arsenale del metodo della massima verosimiglianza, secondo il modello di regressione logistica, deriveremo la funzione di perdita Logistic Loss, o in altre parole, definiremo la funzione attraverso cui vengono ottimizzati i parametri del vettore dei pesi nel modello di regressione logistica Masticando la regressione logistica.

Piano dell'articolo:

  1. Ripetiamo la dipendenza lineare tra due variabili
  2. Identificheremo la necessità della trasformazione della funzione di regressione lineare Masticando la regressione logistica in della funzione di risposta logistica Masticando la regressione logistica
  3. Effettueremo le trasformazioni e deriveremo della funzione di risposta logistica
  4. Cercheremo di capire perché il metodo dei minimi quadrati è inadeguato per l'ottimizzazione dei parametri Masticando la regressione logistica funzioni Logistic Loss
  5. Utilizziamo metodo di massima verosimiglianza per determinare la funzione di ottimizzazione dei parametri Masticando la regressione logistica:

    5.1. Caso 1: funzione Logistic Loss per oggetti con etichettatura delle classi 0 e 1:

    Masticando la regressione logistica

    5.2. Caso 2: funzione Logistic Loss per oggetti con etichettatura delle classi -1 e +1:

    Masticando la regressione logistica


L'articolo è ricco di esempi semplici, nei quali tutti i calcoli possono essere facilmente eseguiti mentalmente o su carta; in alcuni casi potrebbe essere necessario un calcolatore. Quindi preparatevi 🙂

Questo articolo è principalmente rivolto ai data scientist con una conoscenza di base dei fondamenti del machine learning.

Nell'articolo verrà fornito anche codice per il disegno di grafici e calcoli. Tutto il codice è scritto in python 2.7. Preciso in anticipo la "novità" della versione utilizzata — è una delle condizioni per seguire un noto corso di Yandex su una piattaforma di educazione online altrettanto nota Coursera, e, come si può presumere, il materiale è stato preparato sulla base di questo corso.

01. Dipendenza lineare

È del tutto ragionevole porsi la domanda — che legame c'è tra la dipendenza lineare e la regressione logistica?

È semplice! La regressione logistica è uno dei modelli che appartengono al classificatore lineare. In parole semplici, lo scopo del classificatore lineare è predire i valori target Masticando la regressione logistica dalle variabili (regressori) Masticando la regressione logistica. Si considera quindi che ci sia una dipendenza tra le caratteristiche Masticando la regressione logistica e i valori target. Masticando la regressione logistica lineare. Da deriva, appunto, il nome del classificatore: lineare. Se dobbiamo generalizzarlo molto semplicemente, alla base del modello di regressione logistica c'è l'ipotesi di una dipendenza lineare tra le caratteristiche. Masticando la regressione logistica e i valori target. Masticando la regressione logisticaEcco qui: la connessione.

In studio abbiamo il primo esempio, e si tratta, correttamente, di una dipendenza lineare delle grandezze studiate. Durante la preparazione dell'articolo, mi sono imbattuto in un esempio che ha già stancato molti: la dipendenza della corrente elettrica dalla tensione. («Analisi della regressione applicata», N. Draper, G. Smith). Qui lo esamineremo anche.

Secondo il legge di Ohm:

Masticando la regressione logistica, dove Masticando la regressione logistica — corrente, Masticando la regressione logistica — tensione, Masticando la regressione logistica — resistenza.

Se non conoscessimo la legge di Ohm, potremmo trovare la dipendenza empiricamente, variando Masticando la regressione logistica e misurando Masticando la regressione logistica, mantenendo Masticando la regressione logistica costante. Allora vedremmo che il grafico della dipendenza Masticando la regressione logistica da Masticando la regressione logistica mostra una linea più o meno retta che passa per l'origine. Abbiamo detto 'più o meno', poiché, anche se la dipendenza è in realtà precisa, le nostre misurazioni possono contenere piccoli errori, e quindi i punti sul grafico potrebbero non allinearsi esattamente sulla linea, ma essere dispersi attorno ad essa in modo casuale.

Grafico 1 'Dipendenza' Masticando la regressione logistica da Masticando la regressione logistica»

Masticando la regressione logistica

Codice per la grafica

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 = 'Risultati effettivi')
plt.xlabel('I', size = 16)
plt.ylabel('U', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

02. La necessità di trasformazioni nell'equazione della regressione lineare

Prendiamo in considerazione un altro esempio. Immaginiamo di lavorare in una banca e di dover determinare la probabilità di rimborso di un prestito da parte di un debitore in base ad alcuni fattori. Per semplificare, consideriamo solo due fattori: il reddito mensile del debitore e l'importo mensile della rata per il rimborso del prestito.

Il compito è molto ipotetico, ma con questo esempio possiamo capire perché l'applicazione della funzione di regressione lineare, inoltre scopriremo quali trasformazioni devono essere effettuate sulla funzione.

Torniamo all'esempio. È chiaro che maggiori sono le entrate, più il richiedente sarà in grado di destinare mensilmente al rimborso del prestito. In questo caso, per un certo intervallo di stipendi, questa dipendenza sarà piuttosto lineare. Ad esempio, consideriamo un intervallo di stipendi compreso tra 60.000 R e 200.000 R e supponiamo che in questo intervallo di stipendi, la relazione tra l'importo della rata mensile e l'importo del salario sia lineare. Supponiamo che per il suddetto intervallo di stipendi sia emerso che il rapporto tra stipendio e pagamento non può scendere sotto il 3 e che al richiedente debbano rimanere 5.000 R. Solo in questo caso, considereremo che il richiedente restituirà il prestito alla banca. Allora, l'equazione della 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 logisticastipendio Masticando la regressione logistica- del richiedente, Masticando la regressione logisticarata del prestito Masticando la regressione logistica- del richiedente.

Sostituendo nell'equazione lo stipendio e la rata del prestito con parametri fissi Masticando la regressione logistica è possibile prendere una decisione sull'erogazione o il rifiuto del prestito.

Anticipiamo che, con parametri dati Masticando la regressione logistica la funzione di regressione lineare, utilizzata in funzione di risposta logistica resteranno valori elevati, rendendo difficile il calcolo delle probabilità di rimborso del prestito. Pertanto, si propone di ridurre i nostri coefficienti, diciamo, di 25.000 volte. Questa trasformazione nei coefficienti non influenzerà la decisione di concessione del prestito. Ricordiamo questo punto per il futuro e adesso, per chiarire ulteriormente di cosa si tratta, esaminiamo la situazione con tre potenziali mutuatari.

Tabella 1 «Mutuatari potenziali»

Masticando la regressione logistica

Codice per la generazione della tabella

import pandas as pd

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

data = {'Il mutuatario':np.array(['Vasya', 'Fedya', 'Lesha']), 
        'Stipendio':np.array([120000,180000,210000]),
       'Pagamento':np.array([3000,50000,70000])}

df = pd.DataFrame(data)

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

decision = []
for i in df['f(w,x)']:
    if i > 0:
        dec = 'Approvato'
        decision.append(dec)
    else:
        dec = 'Rifiuto'
        decision.append(dec)
        
df['Decisione'] = decision

df[['Il mutuatario', 'Stipendio', 'Pagamento', 'f(w,x)', 'Decisione']]

Secondo i dati della tabella, Vasya, con uno stipendio di 120.000R, desidera ottenere un prestito da rimborsare mensilmente con rate di 3.000R. Abbiamo determinato che per approvare il prestito, il salario di Vasya deve superare di tre volte l'importo della rata, e deve anche rimanere un margine di 5.000R. Questo requisito è soddisfatto da Vasya: Masticando la regressione logistica. Rimangono anche 106.000R. Nonostante nel calcolo Masticando la regressione logistica abbiamo ridotto i coefficienti Masticando la regressione logistica di 25.000 volte, il risultato è lo stesso: il prestito può essere approvato. Fedya otterrà anch'esso il prestito, mentre Alexei, nonostante guadagni di più, dovrà moderare le sue ambizioni.

Tracciamo un grafico per questa situazione.

Grafico 2 «Classificazione dei mutuatari»

Masticando la regressione logistica

Codice per la creazione del 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 - Prestito approvato')
plt.plot(df[df['Decision'] == 'Refusal']['Salary'], df[df['Decision'] == 'Refusal']['Payment'], 
         's', color = 'red', markersize = 12, label = 'Decision - Rifiuto del prestito')
plt.xlabel('Stipendio', size = 16)
plt.ylabel('Pagamento', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

Quindi, la nostra linea, costruita in base alla funzione Masticando la regressione logistica, separa i 'cattivi' mutuatari dai 'buoni'. I mutuatari le cui aspirazioni non corrispondono alle possibilità si trovano sopra la linea (Alesha), mentre coloro che sono in grado di restituire il prestito secondo i parametri del nostro modello si trovano sotto la linea (Vasya e Fedya). In altre parole, la nostra linea divide i mutuatari in due classi. Denotiamo queste classi nel seguente modo: alla classe Masticando la regressione logistica apparteniamo quegli mutuatari che probabilmente restituiranno il prestito, mentre alla classe Masticando la regressione logistica o Masticando la regressione logistica apparteniamo quegli mutuatari che probabilmente non saranno in grado di restituire il prestito.

Riassumiamo le conclusioni da questo semplice esempio. Prendiamo un punto Masticando la regressione logistica e, sostituendo le coordinate del punto nell'equazione corrispondente della linea Masticando la regressione logistica, consideriamo tre opzioni:

  1. Se il punto si trova sotto la linea e lo consideriamo appartenente alla classe Masticando la regressione logistica, allora il valore della funzione Masticando la regressione logistica sarà positivo da Masticando la regressione logistica fino a Masticando la regressione logistica. Quindi possiamo dire che la probabilità di rimborso del prestito è compresa tra Masticando la regressione logistica. Maggiore è il valore della funzione, maggiore è la probabilità.
  2. Se il punto si trova sopra la linea e lo consideriamo appartenente alla classe Masticando la regressione logistica o Masticando la regressione logistica, allora il valore della funzione sarà negativo da Masticando la regressione logistica fino a Masticando la regressione logistica. Allora considereremo che la probabilità di estinzione del debito si trovi nell'intervallo Masticando la regressione logistica e, maggiore è in valore assoluto il valore della funzione, maggiore è la nostra certezza.
  3. Il punto si trova sulla retta, al confine tra due classi. In tal caso, il valore della funzione Masticando la regressione logistica sarà uguale a Masticando la regressione logistica e la probabilità di estinzione del prestito è pari a Masticando la regressione logistica.

Ora, immaginiamo che non abbiamo due fattori, ma decine, e non tre debitori, ma migliaia. Allora invece di una retta abbiamo uno spazio m-dimensionale e i coefficienti Masticando la regressione logistica non saranno presi dal nulla, ma dedotti secondo tutte le regole, basate sui dati accumulati sui debitori, che hanno rimborsato o meno il prestito. E infatti, notate, stiamo ora selezionando i debitori con coefficienti già noti Masticando la regressione logistica. In realtà, il compito del modello di regressione logistica consiste proprio nel determinare i parametri Masticando la regressione logistica, per i quali il valore della funzione di perdita Logistic Loss tenderà al minimo. Ma come si calcola il vettore Masticando la regressione logistica, lo scopriremo nel quinto paragrafo dell'articolo. Ma per ora torniamo nella terra promessa — dal nostro banchiere e dai suoi tre clienti.

Grazie alla funzione Masticando la regressione logistica sappiamo a chi è possibile concedere un prestito e a chi invece è meglio negarlo. Ma non possiamo andare dal direttore con queste informazioni, poiché volevano sapere la probabilità di rimborso per ciascun mutuatario. Cosa fare? La risposta è semplice: dobbiamo in qualche modo trasformare la funzione Masticando la regressione logistica, i cui valori si trovano nell'intervallo Masticando la regressione logistica in una funzione i cui valori cadranno nell'intervallo Masticando la regressione logistica. E tale funzione esiste, è chiamata funzione di risposta logistica o trasformazione logit inversa. Iniziamo:

Masticando la regressione logistica

Esaminiamo passo dopo passo come si ottiene la funzione di risposta logistica. Notiamo che procederemo all'inverso, cioè presumeremo di conoscere il valore della probabilità, che si colloca nell'intervallo tra Masticando la regressione logistica fino a Masticando la regressione logistica e poi "srotoleremo" questo valore su tutta l'area dei numeri da Masticando la regressione logistica fino a Masticando la regressione logistica.

03. Estraiamo la funzione di risposta logistica

Passo 1. Trasformiamo i valori di probabilità nell'intervallo Masticando la regressione logistica

Durante la trasformazione della funzione Masticando la regressione logistica in della funzione di risposta logistica Masticando la regressione logistica lasceremo in pace il nostro analista creditizio e, invece, ci occuperemo dei bookmaker. No, ovviamente non faremo scommesse, tutto ciò che ci interessa è il significato dell'espressione, ad esempio, la quota 4 a 1. Le quote, familiari a tutti gli scommettitori, sono il rapporto tra 'successi' e 'insuccessi'. Dal punto di vista delle probabilità, le quote rappresentano la probabilità che si verifichi un evento divisa per la probabilità che l'evento non si verifichi. Scriviamo la formula per la probabilità di un evento che si verifica Masticando la regressione logistica:

Masticando la regressione logistica

, dove Masticando la regressione logistica — probabilità che si verifiche un evento, Masticando la regressione logistica — probabilità che NON si verifichi un evento

Ad esempio, se la probabilità che un giovane, forte e scattante cavallo chiamato 'Vento' superi nelle corse una vecchia e flaccida cavalla di nome 'Matilda' è Masticando la regressione logistica, allora le possibilità di successo per 'Vento' saranno Masticando la regressione logistica a Masticando la regressione logistica Masticando la regressione logistica e viceversa, conoscendo le quote, non sarà difficile calcolare la probabilità Masticando la regressione logistica:

Masticando la regressione logistica

Così, abbiamo imparato a 'tradurre' la probabilità in quote, che assumono valori da Masticando la regressione logistica fino a Masticando la regressione logistica. Facciamo un ulteriore passo avanti e impariamo a 'tradurre' la probabilità su tutta la retta numerica da Masticando la regressione logistica fino a Masticando la regressione logistica.

Passo 2. Tradurremo i valori di probabilità nell'intervallo Masticando la regressione logistica

Questo passaggio è molto semplice: calcoliamo il logaritmo delle probabilità in base al numero di Eulero. Masticando la regressione logistica e otteniamo:

Masticando la regressione logistica

Ora sappiamo che se Masticando la regressione logistica, è molto semplice calcolare il valore Masticando la regressione logistica , e oltre a ciò, deve essere positivo: Masticando la regressione logistica. Ed è così.

Per curiosità, verifichiamo che se Masticando la regressione logistica, allora ci aspettiamo di vedere un valore negativo Masticando la regressione logistica. Controlliamo: Masticando la regressione logistica. Tutto corretto.

Ora sappiamo come trasferire il valore di probabilità da Masticando la regressione logistica fino a Masticando la regressione logistica su tutta la retta numerica da Masticando la regressione logistica fino a Masticando la regressione logistica. Nel prossimo passo faremo esattamente il contrario.

Nel frattempo, notiamo che, secondo le regole del logaritmo, conoscendo il valore della funzione Masticando la regressione logistica, possiamo calcolare le probabilità:

Masticando la regressione logistica

Questo metodo di determinazione delle probabilità ci sarà utile nel prossimo passo.

Passo 3. Deriviamo la formula per determinare Masticando la regressione logistica

Quindi, abbiamo imparato che, conoscendo Masticando la regressione logistica, possiamo trovare i valori della funzione Masticando la regressione logistica. Tuttavia, ciò di cui abbiamo realmente bisogno è esattamente l'opposto: conoscendo il valore Masticando la regressione logistica trovare Masticando la regressione logistica. A questo scopo, ci riferiamo a un concetto chiamato funzione inversa delle probabilità, secondo la quale:

Masticando la regressione logistica

Nell'articolo non deriveremo la formula sopra menzionata, ma la verificheremo con i numeri dell'esempio precedente. Sappiamo che con probabilità di 4 a 1 (Masticando la regressione logistica), la probabilità che l'evento si verifichi è 0.8 (Masticando la regressione logistica). Facciamo la sostituzione: Masticando la regressione logistica. Questo è in linea con i nostri calcoli effettuati in precedenza. Andiamo avanti.

Nella fase precedente abbiamo determinato che Masticando la regressione logistica, quindi possiamo effettuare la sostituzione nella funzione inversa delle probabilità. Otteniamo:

Masticando la regressione logistica

Dividiamo sia il numeratore che il denominatore per Masticando la regressione logistica, quindi:

Masticando la regressione logistica

Per sicurezza, per assicurarci di non aver commesso errori, faremo un’ulteriore piccola verifica. Nella fase 2, abbiamo Masticando la regressione logistica determinato che Masticando la regressione logistica. Pertanto, sostituendo il valore Masticando la regressione logistica nella funzione logistica, ci aspettiamo di ottenere Masticando la regressione logistica. Sostituendo otteniamo: Masticando la regressione logistica

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

Grafico 3 «Funzione logistica»

Masticando la regressione logistica

Codice per la creazione del 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 si può anche incontrare il nome di questa funzione come funzione sigmoide. Dal grafico si nota chiaramente che il principale cambiamento nella probabilità di appartenenza di un oggetto a una classe avviene in un intervallo relativamente ristretto Masticando la regressione logistica, circa da Masticando la regressione logistica fino a Masticando la regressione logistica.

Ti propongo di tornare al nostro analista del credito e aiutarlo a calcolare la probabilità di rimborso dei prestiti, altrimenti rischia di rimanere senza premio 🙂

Tabella 2 «Potenziali mutuatari»

Masticando la regressione logistica

Codice per la generazione della 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, sembra essere corretto.

Infatti, la probabilità che Vasya, con uno stipendio di 120.000R, possa restituire mensilmente 3.000R alla banca è vicina al 100%. A proposito, dobbiamo capire che la banca potrebbe concedere un prestito anche a Lesha se la politica della banca prevede, ad esempio, di concedere prestiti ai clienti con probabilità di rimborso superiore, diciamo, a 0.3. Solo in quel caso la banca formerà una riserva maggiore per possibili perdite.

Va anche notato che il rapporto stipendio-pagamento di almeno 3 e con un surplus di 5.000R è stato preso dal nulla. Pertanto, non potevamo utilizzare in forma originale il vettore dei pesi. Masticando la regressione logistica. Era necessario ridurre significativamente i coefficienti e in tal caso abbiamo diviso ogni coefficiente per 25.000, quindi in sostanza abbiamo adattato il risultato. Ma questo è stato fatto appositamente per semplificare la comprensione del materiale nelle fasi iniziali. Nella pratica, però, dovremo trovare i coefficienti anziché inventarli. Proprio nelle sezioni successive dell'articolo tireremo fuori le equazioni per selezionare i parametri. Masticando la regressione logistica.

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

Abbiamo già familiarità con questo metodo per selezionare il vettore dei pesi Masticando la regressione logistica, come metodo dei minimi quadrati (MNC) e quindi, perché non utilizzarlo nei compiti di classificazione binaria? In effetti, non c'è nulla che impedisca l'uso di MNC, solo che questo metodo nei compiti di classificazione produce risultati meno precisi rispetto a Logistic Loss. C'è una giustificazione teorica per questo. Iniziamo con un semplice esempio.

Supponiamo che i nostri modelli (che utilizzano MSE e Logistic Loss) abbiano già iniziato a selezionare il vettore dei pesi. Masticando la regressione logistica e abbiamo interrotto il calcolo a un certo passo. Non importa se a metà, alla fine o all'inizio, ciò che conta è che abbiamo già alcuni valori del vettore dei pesi e supponiamo che in questo passo, il vettore dei pesi Masticando la regressione logistica per entrambi i modelli non presentano differenze. Quindi prendiamo i pesi ottenuti e li inseriamo in della funzione di risposta logistica (Masticando la regressione logistica) per qualche oggetto che appartiene alla classe Masticando la regressione logistica. Esaminiamo due casi, quando in base al vettore dei pesi scelto il nostro modello sbaglia gravemente e viceversa — il modello è molto sicuro che l'oggetto appartenga alla classe Masticando la regressione logistica. Vediamo quali penalità saranno "applicate" durante l'uso di MNC e Logistic Loss.

Codice per il calcolo delle 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

Caso di errore grossolano — il modello classifica l'oggetto nella classe Masticando la regressione logistica con una probabilità di 0,01

La penalità utilizzando MNC sarà:
Masticando la regressione logistica

La penalità utilizzando Logistic Loss sarà:
Masticando la regressione logistica

Caso di forte fiducia — il modello classifica l'oggetto nella classe Masticando la regressione logistica con una probabilità di 0,99

La penalità utilizzando MNC sarà:
Masticando la regressione logistica

La penalità utilizzando Logistic Loss sarà:
Masticando la regressione logistica

Questo esempio illustra bene che, in caso di errore grossolano, la funzione di perdita Log Loss penalizza il modello in modo significativamente più forte rispetto a MSE. Ora vediamo quali sono i presupposti teorici per l'uso della funzione di perdita Log Loss nei problemi di classificazione.

05. Metodo della massima verosimiglianza e regressione logistica

Come promesso all'inizio, l'articolo è ricco di esempi semplici. In studio, un altro esempio con i nostri vecchi amici: i clienti della banca, Vasja, Fedia e Ljosha.

Per ogni evenienza, prima di sviluppare l'esempio, ricordo che nella vita reale ci confrontiamo con un insieme di dati di formazione composto da migliaia o milioni di oggetti con decine o centinaia di caratteristiche. Tuttavia, qui i numeri sono presi in modo che siano facilmente comprensibili per un neofita del data science.

Torniamo all'esempio. Immaginiamo che il direttore della banca abbia deciso di concedere un prestito a chiunque ne avesse bisogno, nonostante l'algoritmo suggerisse di non concederlo a Lesha. E così è passato del tempo e abbiamo scoperto chi tra i tre protagonisti ha rimborsato il prestito e chi no. Come ci si aspettava: Vasya e Fedya hanno rimborsato il prestito, mentre Lesha no. Ora immaginiamo che questo risultato diventi per noi un nuovo campione di apprendimento e, nel frattempo, sembra che siano scomparsi tutti i dati sui fattori che influenzano la probabilità di rimborso del prestito (stipendio del mutuatario, importo della rata mensile). Allora, intuitivamente, possiamo supporre che ogni terzo mutuatario non restituisca il prestito alla banca, in altre parole, la probabilità che il prossimo mutuatario restituisca il prestito è Masticando la regressione logistica. Questa supposizione intuitiva ha una conferma teorica e si basa su metodo della massima verosimiglianza, spesso in letteratura viene chiamato principio di massima verosimiglianza.

Iniziamo a familiarizzare con il lessico.

Verosimiglianza del campione è la probabilità di ottenere esattamente un tale campione, di ottenere esattamente tali osservazioni / risultati, cioè il prodotto delle probabilità di ottenere ciascun risultato del campione (ad esempio, il prestito è stato rimborsato o non rimborsato da Vasya, Fedya e Lesha contemporaneamente).

Funzione di verosimiglianza collega la verosimiglianza del campione ai valori dei parametri di distribuzione.

Nel nostro caso, il campione di addestramento rappresenta uno schema generico di Bernoulli, 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 rispetto al parametro Masticando la regressione logistica nel seguente modo:

Masticando la regressione logistica
Masticando la regressione logistica

La registrazione sopra citata può essere interpretata come segue. La probabilità congiunta che Vasya e Fedya rimborsino il prestito è Masticando la regressione logistica, la probabilità che Lesha NON rimborsi il prestito è Masticando la regressione logistica (poiché si è verificato proprio il NON rimborso del prestito), di conseguenza, la probabilità congiunta di tutti e tre gli eventi è Masticando la regressione logistica.

Metodo di massima verosimiglianza è un metodo di stima di un parametro sconosciuto attraverso la massimizzazione di una funzione di verosimiglianza. Nel nostro caso, è necessario trovare un valore tale che Masticando la regressione logistica, per il quale Masticando la regressione logistica raggiunge il massimo.

Da dove nasce l'idea di cercare il valore di un parametro sconosciuto per il quale la funzione di verosimiglianza raggiunge il massimo? Le origini di questa idea derivano dalla concezione che il campione è l'unica fonte di conoscenza disponibile sulla popolazione generale. Tutto ciò che sappiamo sulla popolazione è rappresentato nel campione. Pertanto, possiamo dire che il campione è la rappresentazione più accurata della popolazione generale a nostra disposizione. Di conseguenza, dobbiamo trovare un parametro tale che il campione che abbiamo diventi il più probabile.

È evidente che ci troviamo di fronte a un problema di ottimizzazione, nel quale bisogna trovare il punto di estremo della funzione. Per determinare questo punto, è necessario considerare la condizione di primo ordine, ovvero eguagliare la derivata della funzione a zero e risolvere l'equazione rispetto al parametro cercato. Tuttavia, la ricerca della derivata di un prodotto di molti fattori può rivelarsi un compito lungo, per evitare ciò esiste un metodo speciale: il passaggio al logaritmo. di una funzione di verosimiglianza. Perché può avvenire questo passaggio? Notiamo che stiamo cercando non l'estremo della funzioneMasticando la regressione logistica, ma il punto di estremo, cioè quel valore del parametro sconosciuto Masticando la regressione logistica, per il quale Masticando la regressione logistica raggiunge il massimo. Nel passaggio al logaritmo, il punto di estremo non cambia (anche se l'estremo stesso sarà diverso), poiché il logaritmo è una funzione monotona.

Continuiamo, in base a quanto esposto, a sviluppare il nostro esempio con i prestiti di Vania, Fedya e Lesha. Per iniziare, passiamo al logaritmo della funzione di verosimiglianza:

Masticando la regressione logistica

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

Masticando la regressione logistica

E infine, consideriamo la condizione del primo ordine: poniamo la derivata della funzione uguale a zero:

Masticando la regressione logistica

Pertanto, la nostra valutazione intuitiva della probabilità di rimborso del prestito Masticando la regressione logistica è stata teoricamente giustificata.

Ottimo, ma ora cosa dobbiamo fare con queste informazioni? Se consideriamo che ogni terzo mutuatario non restituirà i soldi alla banca, l'ultima inevitabilmente andrà in rovina. Così è, ma quando si valuta la probabilità di rimborso del prestito pari a Masticando la regressione logistica non abbiamo considerato i fattori che influiscono sul rimborso del prestito: il salario del borrower e l'importo della rata mensile. Ricordiamo che in precedenza abbiamo calcolato la probabilità di rimborso del prestito da parte di ciascun cliente tenendo conto di questi fattori. È logico che anche le probabilità siano risultate diverse dalla costante equivalente a Masticando la regressione logistica.

Definiamo la verosimiglianza dei campioni:

Codice per il calcolo delle verosimiglianze dei campioni

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 'Verosimiglianza del campione con valore costante p=2/3:', round(likelihood(y,p_const),3)

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

print 'Verosimiglianza del campione con valore calcolato p:', round(likelihood(y,p_log_response),3)

Verosimiglianza del campione con valore costante Masticando la regressione logistica:

Masticando la regressione logistica

Verosimiglianza 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 campionamento, calcolata in base ai fattori, si è rivelata superiore a quella del valore di probabilità costante. Cosa significa questo? Significa che la conoscenza dei fattori ha permesso di determinare con maggiore precisione la probabilità di rimborso del prestito per ogni cliente. Pertanto, quando si emette un nuovo prestito, è più corretto utilizzare il modello di valutazione della probabilità di rimborso dei debiti suggerito alla fine del terzo capitolo dell'articolo.

Ma allora, se abbiamo bisogno di massimizzare la funzione di verosimiglianza del campione, perché non utilizzare qualche algoritmo che fornisca probabilità per Vasia, Fedya e Lesha, ad esempio, pari a 0,99, 0,99 e 0,01 rispettivamente? Un algoritmo di questo tipo potrebbe funzionare bene sul campione di addestramento, avvicinando il valore della verosimiglianza del campione a Masticando la regressione logistica, ma, innanzitutto, questo algoritmo avrà probabilmente difficoltà con la capacità di generalizzazione; in secondo luogo, questo algoritmo non sarà sicuramente lineare. E se i metodi per combattere l'overfitting (così come la scarsa capacità di generalizzazione) non fanno chiaramente parte di questo articolo, quindi, per il secondo punto, approfondiamo. Per fare ciò, basta rispondere a una semplice domanda. La probabilità di rimborso del prestito da parte di Vasya e Fedya può essere la stessa considerando i fattori di cui siamo a conoscenza? Dal punto di vista della logica, certamente no, non può. Così, per rimborsare il prestito, Vasya destinerà il 2,5% del suo stipendio mensile, mentre Fedya quasi il 27,8%. Inoltre, nel grafico 2 'Classificazione dei clienti' vediamo che Vasya è significativamente più distante dalla linea che separa le classi rispetto a Fedya. 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. E se, ad esempio, Fedya guadagnasse un ordine di grandezza superiore o chiedesse un prestito inferiore, allora le probabilità di rimborso del prestito di Vasya e Fedya sarebbero simili. In altre parole, non si può ingannare una dipendenza lineare. E se davvero calcolassimo i coefficienti Masticando la regressione logistica, e non siano stati scelti a caso, potremmo affermare con sicurezza che i nostri valori Masticando la regressione logistica sono i migliori per valutare la probabilità di rimborso del prestito da parte di ogni mutuatario, ma poiché ci siamo accordati per ritenere che la definizione dei coefficienti Masticando la regressione logistica sia stata eseguita secondo tutte le regole, continueremo a considerare — i nostri coefficienti offrono la migliore stima della probabilità 🙂

Tuttavia, ci siamo distratti. In questa sezione dobbiamo capire come viene determinato il vettore dei pesi Masticando la regressione logistica, necessario per valutare la probabilità di restituzione del prestito da parte di ogni mutuatario.

Riassumiamo brevemente con quale strumentazione ci prepariamo a cercare i coefficienti Masticando la regressione logistica:

1. Presumiamo che la relazione tra la variabile obiettivo (valore previsto) e il fattore che influisce sul risultato sia lineare. Per questo motivo si applica la funzione di regressione lineare una forma Masticando la regressione logistica, la cui linea divide gli oggetti (clienti) in classi Masticando la regressione logistica e Masticando la regressione logistica o Masticando la regressione logistica (clienti in grado di rimborsare il prestito e clienti non in grado). Nel nostro caso, l'equazione ha la forma Masticando la regressione logistica.

2. Utilizziamo la funzione di logit inverso una forma Masticando la regressione logistica per determinare la probabilità di appartenenza dell'oggetto a una classe Masticando la regressione logistica.

3. Consideriamo il nostro campione di addestramento come un'implementazione generalizzata schemi di Bernoulli, cioè per ogni oggetto viene generata una variabile casuale che con una probabilità Masticando la regressione logistica (specifica per ogni oggetto) assume il valore 1 e con probabilità Masticando la regressione logistica – 0.

4. Sappiamo che dobbiamo massimizzare la funzione di verosimiglianza del campione tenendo conto dei fattori accettati affinché il campione esistente diventi il più plausibile possibile. In altre parole, dobbiamo scegliere i parametri in modo che il campione sia il più plausibile. Nel nostro caso, il parametro da ottimizzare è 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, per il quale la verosimiglianza del campione sarà massima.

5. Sappiamo che per massimizzare la funzione di verosimiglianza del campione puoi utilizzare metodo di massima verosimiglianza. E conosciamo tutti i trucchi astuti per lavorare con questo metodo.

Ecco come si presenta un gioco di astuzie 🙂

E ora ricordiamo che all'inizio dell'articolo volevamo derivare due tipi di funzione di perdita Logistic Loss a seconda di come vengono designati i classi degli oggetti. È consuetudine che nei problemi di classificazione con due classi, le classi siano designate come Masticando la regressione logistica e Masticando la regressione logistica o Masticando la regressione logistica. A seconda della designazione, l'uscita avrà la corrispondente funzione di perdita.

Caso 1. Classificazione degli oggetti su Masticando la regressione logistica e Masticando la regressione logistica

Precedentemente, nel determinare la verosimiglianza del campione, in cui la probabilità di estinzione del debito da parte del mutuatario era calcolata in base ai fattori e ai coeficienti specificati Masticando la regressione logistica, abbiamo applicato la formula:

Masticando la regressione logistica

In realtà Masticando la regressione logistica — è questo valore della funzione di risposta logistica Masticando la regressione logistica con un vettore di pesi dato Masticando la regressione logistica

Allora non c'è nulla che ci impedisca di scrivere così la funzione di verosimiglianza del campione:

Masticando la regressione logistica

Capita che a volte, ad alcuni analisti principianti sia difficile capire subito come funziona questa funzione. Esaminiamo 4 brevi esempi che chiariranno tutto:

1. Se Masticando la regressione logistica (cioè, secondo il campione di addestramento, l'oggetto appartiene alla classe +1), e il nostro algoritmo Masticando la regressione logistica determina la probabilità che l'oggetto appartenga alla classe Masticando la regressione logistica uguale a 0.9, quindi questo pezzo di verosimiglianza del campione sarà calcolato in questo modo:

Masticando la regressione logistica

2. Se Masticando la regressione logistica, e Masticando la regressione logistica, quindi il calcolo sarà così:

Masticando la regressione logistica

3. Se Masticando la regressione logistica, e Masticando la regressione logistica, quindi il calcolo sarà così:

Masticando la regressione logistica

4. Se Masticando la regressione logistica, e Masticando la regressione logistica, quindi il calcolo sarà così:

Masticando la regressione logistica

È evidente che la funzione di verosimiglianza sarà massimizzata nei casi 1 e 3 o, in generale, quando i valori di probabilità delle appartenenze dell'oggetto alla classe sono corretti. Masticando la regressione logistica.

Poiché non conosciamo solo i coefficienti per determinare la probabilità di appartenenza di un oggetto a una classe Masticando la regressione logistica , li cercheremo. Come detto in precedenza, si tratta di un problema di ottimizzazione, nel quale dobbiamo inizialmente trovare la derivata della funzione di verosimiglianza rispetto al vettore dei pesi Masticando la regressione logistica. Tuttavia, ha senso semplificare il compito: cercheremo la derivata del logaritmo Masticando la regressione logistica. Perché, dopo il logaritmo, in di una funzione di verosimiglianza.

Masticando la regressione logistica

funzione di errore logistico , abbiamo cambiato segno da. È semplice, poiché nei problemi di valutazione della qualità del modello si tende a minimizzare il valore della funzione, quindi abbiamo moltiplicato il lato destro dell'espressione per Masticando la regressione logistica con Masticando la regressione logisticae quindi, invece di massimizzare, ora minimizziamo la funzione. Masticando la regressione logistica In effetti, ora, davanti ai vostri occhi, è stata derivata con sofferenza la funzione di perdita —

per il campione di addestramento con due classi: Logistic Loss Ora, per trovare i coefficienti, dobbiamo semplicemente calcolare la derivata Masticando la regressione logistica e Masticando la regressione logistica.

e poi, utilizzando metodi numerici di ottimizzazione, come il gradiente discendente o il gradiente discendente stocastico, identificare i coefficienti ottimali. , abbiamo cambiato segno da e poi, utilizzando metodi numerici di ottimizzazione come il gradiente discendente o il gradiente discendente stocastico, trovare i coefficienti ottimali. Masticando la regressione logistica. Tuttavia, data l'ampia lunghezza dell'articolo, si propone di eseguire la differenziazione autonomamente o, forse, questo sarà il tema per un articolo successivo con un maggior numero di calcoli senza esempi così dettagliati.

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

L'approccio sarà lo stesso che con le classi Masticando la regressione logistica e Masticando la regressione logistica, ma il percorso verso la funzione di perdita Logistic Loss, sarà più tortuoso. Iniziamo. Useremo l'operatore per la funzione di verosimiglianza «se…, allora…». Cioè, se Masticando la regressione logistica-esimo oggetto appartiene alla classe Masticando la regressione logistica, per calcolare la verosimiglianza del campione utilizziamo la probabilità Masticando la regressione logistica, se l'oggetto appartiene alla classe Masticando la regressione logistica, allora inseriamo Masticando la regressione logisticanella verosimiglianza. Ecco come appare la funzione di verosimiglianza:

Masticando la regressione logistica

Spieghiamo come funziona. Consideriamo 4 casi:

1. Se Masticando la regressione logistica e Masticando la regressione logistica, quindi nella verosimiglianza del campione «andrà» Masticando la regressione logistica

2. Se Masticando la regressione logistica e Masticando la regressione logistica, quindi nella verosimiglianza del campione «andrà» Masticando la regressione logistica

3. Se Masticando la regressione logistica e Masticando la regressione logistica, quindi nella verosimiglianza del campione «andrà» Masticando la regressione logistica

4. Se Masticando la regressione logistica e Masticando la regressione logistica, quindi nella verosimiglianza del campione «andrà» Masticando la regressione logistica

È ovvio che nel caso 1 e 3, quando le probabilità sono state correttamente determinate dall'algoritmo, la funzione di verosimiglianza sarà massimizzato, cioè esattamente quello che volevamo ottenere. Tuttavia, questo approccio è piuttosto ingombrante e in seguito considereremo una rappresentazione più compatta. Ma per ora, prendiamo il logaritmo della funzione di verosimiglianza, cambiando il segno, poiché ora minimizzeremo.

Masticando la regressione logistica

Sostituiamo al posto di Masticando la regressione logistica l'espressione Masticando la regressione logistica:

Masticando la regressione logistica

Semplifichiamo il termine a destra sotto il logaritmo, utilizzando semplici tecniche aritmetiche e otteniamo:

Masticando la regressione logistica

E ora è tempo di liberarci dell'operatore «se…, allora…». Notiamo che quando l'oggetto Masticando la regressione logistica appartiene alla classe Masticando la regressione logistica, allora nell'espressione sotto il logaritmo, nel denominatore, Masticando la regressione logistica è elevato alla potenza Masticando la regressione logistica, se l'oggetto appartiene alla classe Masticando la regressione logistica, quindi $e$ è elevato alla potenza Masticando la regressione logistica. Di conseguenza, la scrittura dell'esponente può essere semplificata: uniamo entrambi i casi in uno: Masticando la regressione logistica. Allora la funzione di errore logistico assumerà la forma:

Masticando la regressione logistica

Secondo le regole del logaritmo, invertiamo la frazione e portiamo il segno "Masticando la regressione logistica" (meno) all'esterno del logaritmo, otteniamo:

Masticando la regressione logistica

Davanti a voi c'è la funzione di perdita logistic Loss, che viene applicata nel set di addestramento con oggetti appartenenti alle classi: Masticando la regressione logistica e Masticando la regressione logistica.

Bene, a questo punto vi saluto e concludiamo l'articolo.

Masticando la regressione logistica La precedente opera dell'autore è - «Portiamo l'equazione di regressione lineare in forma matriciale»

Materiali di supporto

1. Letteratura

1) Analisi della regressione applicata / N. Draper, G. Smith – 2ª ed. – Mosca: Finanze e statistica, 1986 (traduzione dall'inglese)

2) Teoria delle probabilità e statistica matematica / V.E. Gmurman — 9ª ed. — Mosca: Scuola superiore, 2003

3) Teoria delle probabilità / N.I. Cernova — Novosibirsk: Università Statale di Novosibirsk, 2007

4) Business Analytics: dai dati alla conoscenza / Paklin N.B., Oreshkov V.I. — 2ª ed. — San Pietroburgo: Piter, 2013

5) Data Science. Scienza dei dati da zero / Joel Grass — San Pietroburgo: BHV Petersburg, 2017

6) Statistica pratica per specialisti Data Science / P. Bruce, E. Bruce — San Pietroburgo: BHV Petersburg, 2018

2. Lezioni, 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 aperto ODS, Yury Kashnitsky

4) Lezione 4, Evgeny Sokolov (dal 47° minuto del video)

5) Regressione logistica, Vyacheslav Vorontsov

3. Fonti internet

1) Modelli lineari di classificazione e regressione

2) Come comprendere facilmente la regressione logistica

3) Funzione logistica di errore

4) Prove indipendenti e formula di Bernoulli

5) Ballata sul MMP

6) Metodo di massima verosimiglianza

7) Formule e proprietà dei logaritmi

8) Perché il numero Masticando la regressione logistica?

9) Classificatore lineare

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster