In questu articulu, avemu da analizà i calculi teorichi di a trasfurmazioni funzioni di regressione lineari в funzione di trasformazione di logit inversa (altrimenti chjamata funzione di risposta logistica). Allora, usendu l'arsenale metudu di massima probabilità, in cunfurmità cù u mudellu di regressione logistica, derivemu a funzione di perdita Perdita logistica, o in altre parolle, avemu da definisce una funzione cù quale i paràmetri di u vettore di pesu sò selezziunati in u mudellu di regressione logistica. .
Schema di l'articulu:
- Ripitemu a relazione lineale trà duie variàbili
- Identifichemu a necessità di trasfurmazioni funzioni di regressione lineari в funzione di risposta logistica
- Facemu e trasfurmazioni è a pruduzzioni funzione di risposta logistica
- Pruvemu di capisce perchè u metudu di i minimi quadrati hè male quandu selezziunate i paràmetri funzioni Perdita logistica
- Avemu aduprà metudu di massima probabilità per a determinazione funzioni di selezzione di paràmetri :
5.1. Casu 1: funzione Perdita logistica per l'uggetti cù designazioni di classi 0 и 1:
5.2. Casu 2: funzione Perdita logistica per l'uggetti cù designazioni di classi -1 и +1:
L'articulu hè riccu cù esempi simplici in quale tutti i calculi sò faciuli di fà oralmente o nantu à carta; in certi casi, una calculatrice pò esse dumandata. Allora preparate :)
Questu articulu hè principalmente destinatu à i scientisti di dati cun un livellu iniziale di cunniscenza in i principii di l'apprendimentu automaticu.
L'articulu furnisce ancu codice per disegnu grafici è calculi. Tuttu u codice hè scrittu in a lingua pitone 2.7. Lasciami spiegà in anticipu nantu à a "novità" di a versione utilizata - questa hè una di e cundizioni per piglià u cursu ben cunnisciutu da Yandex nantu à una piattaforma di educazione in linea ugualmente cunnisciuta Coursera, è, cum'è si pò assume, u materiale hè statu preparatu basatu annantu à stu cursu.
01. Dipendenza dritta
Hè abbastanza raghjone di dumandà a quistione - chì a dependenza lineale è a regressione logistica anu da fà cun ella?
Hè simplice! A regressione logistica hè unu di i mudelli chì appartenenu à u classificatore lineale. In parolle simplici, u compitu di un classificatore lineale hè di predichendu i valori di destinazione da variabili (regressori) . Hè cresce chì a dependenza trà e caratteristiche è i valori di destinazione lineari. Da quì u nome di u classificatore - lineari. Per dì assai apprussimatamente, u mudellu di regressione logistica hè basatu annantu à l'assunzione chì ci hè una relazione lineare trà e caratteristiche. è i valori di destinazione . Questu hè a cunnessione.
Ci hè u primu esempiu in u studiu, è si tratta, currettamente, di a dependenza rettilinea di e quantità studiate. In u prucessu di a preparazione di l'articulu, aghju scontru un esempiu chì hà digià pusatu parechje persone nantu à a punta - a dependenza di u currente nantu à a tensione. ("Analisi di regressione applicata", N. Draper, G. Smith). Fighjeremu ancu quì.
In cunfurmità cù a lege di Ohm:
induve - forza attuale, - tensione, - resistenza.
Se ùn sapemu micca a lege di Ohm, tandu pudemu truvà a dependenza empirically cambiendu è misura , mentre sustene fissu. Allora avemu vistu chì u graficu di dependenza от dà una linea più o menu dritta attraversu l'origine. Dicemu "più o menu" perchè, ancu s'è a rilazioni hè veramente precisa, e nostre misurazioni ponu cuntene errori chjuchi, è per quessa i punti nantu à u graficu ùn ponu micca cascà esattamente nantu à a linea, ma seranu spargugliati intornu à l'aleatoriu.
Graficu 1 "Dipendenza" от »
Codice di disegnu di carta
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. U bisognu di trasfurmà l'equazioni di regressione lineale
Fighjemu un altru esempiu. Imaginemu chì travagliammu in un bancu è u nostru compitu hè di determinà a probabilità di u prestitu di rimbursà u prestitu secondu certi fatturi. Per simplificà u compitu, avemu da cunsiderà solu dui fatturi: u salariu mensu di u prestitu è a quantità di rimborsu di u prestitu.
U compitu hè assai cundizionale, ma cù questu esempiu pudemu capisce perchè ùn hè micca abbastanza per aduprà funzioni di regressione lineari, è ancu scopre chì trasfurmazioni deve esse realizatu cù a funzione.
Riturnemu à l'esempiu. Hè capitu chì u più altu u salariu, u più u prestitu hà da pudè assignà mensili per rimbursà u prestitu. À u listessu tempu, per un certu salariu, sta relazione serà abbastanza lineare. Per esempiu, pigghiamu un salariu da 60.000 200.000 RUR à 3 5.000 RUR è assume chì in u salariu specificatu, a dependenza di a dimensione di u pagamentu mensuale nantu à a dimensione di u salariu hè lineale. Dicemu chì per a gamma specifica di salarii hè statu revelatu chì u rapportu di u salariu à u pagamentu ùn pò micca falà sottu à XNUMX è u prestitu deve ancu avè XNUMX XNUMX RUR in riserva. È solu in questu casu, assumeremu chì u prestitu rimbursà u prestitu à u bancu. Allora, l'equazioni di regressione lineare pigliarà a forma:
induve , , , - salariu - u prestitu, - pagamentu di prestitu -emu prestitu.
Sustituisce u salariu è u pagamentu di prestitu cù parametri fissi in l'equazioni Pudete decide di emette o ricusà un prestitu.
Fighjendu avanti, avemu nutatu chì, cù i paràmetri datu funzione di regressione lineare, usatu in funzioni di risposta logistica pruducerà grandi valori chì complicà i calculi per determinà e probabilità di rimborsu di u prestitu. Dunque, hè prupostu di riduce i nostri coefficienti, per dì, da 25.000 XNUMX volte. Questa trasfurmazioni in i coefficienti ùn cambierà micca a decisione di issuà un prestitu. Ricurdemu stu puntu per u futuru, ma avà, per fà ancu più chjaru di ciò chì avemu parlatu, cunsideremu a situazione cù trè putenziali prestiti.
Tabella 1 "Prestiti potenziali"
Codice per generà a 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']]
In cunfurmità cù i dati in a tavula, Vasya, cù un salariu di 120.000 3.000 RUR, vole riceve un prestitu per pudè rimbursà ogni mese à 5.000 XNUMX RUR. Avemu determinatu chì, per appruvà u prestitu, u salariu di Vasya deve esse più di trè volte l'ammontu di u pagamentu, è deve esse XNUMX RUR restante. Vasya satisface stu requisitu: . Ancu 106.000 XNUMX RUR resta. Malgradu u fattu chì quandu calcula avemu riduciutu e probabilità 25.000 XNUMX volte, u risultatu era u listessu - u prestitu pò esse appruvatu. Fedya riceverà ancu un prestitu, ma Lesha, malgradu u fattu chì ellu riceve u più, duverà curbà i so appetiti.
Facemu un graficu per questu casu.
Graficu 2 "Classificazione di i prestiti"
Codice per disegnu u graficu
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()
Allora, a nostra linea dritta, custruita in cunfurmità cù a funzione , separa i prestatori "cattivi" da i "boni". Quelli borrowers chì i so desideri ùn coincidenu micca cù e so capacità sò sopra à a linea (Lesha), mentre chì quelli chì, sicondu i paràmetri di u nostru mudellu, sò capaci di rimbursà u prestitu sò sottu à a linea (Vasya è Fedya). In altri palori, pudemu dì questu: a nostra linea diretta divide i prestiti in dui classi. Denoteremu cusì: à classa Avemu da classificà quelli prestiti chì sò più prubabile di rimborsà u prestitu cum'è o Avemu da includere quelli prestiti chì assai prubabilmente ùn puderanu micca rimbursà u prestitu.
Riassumemu e cunclusioni da stu simplice esempiu. Pigliemu un puntu è, sustituisce e coordenate di u puntu in l'equazioni currispundenti di a linea , cunzidira trè opzioni:
- Se u puntu hè sottu à a linea è l'assignemu à a classa , allura u valore di a funzione serà pusitivu da à . Questu significa chì pudemu assume chì a probabilità di rimborsà u prestitu hè in l'internu . U più grande u valore di a funzione, più altu hè a probabilità.
- Se un puntu hè sopra à una linea è l'assignemu à a classa o , allura u valore di a funzione serà negativu da à . Allora assumeremu chì a probabilità di rimborsu di u debitu hè in l'internu è, u più grande u valore assolutu di a funzione, u più altu a nostra fiducia.
- U puntu hè nantu à una linea dritta, à u cunfini trà duie classi. In questu casu, u valore di a funzione sarà uguale è a probabilità di rimborsà u prestitu hè uguali à .
Avà, imaginemu chì ùn avemu micca dui fattori, ma decine, è micca trè, ma millaie di prestiti. Allora invece di una linea dritta averemu m-dimensionale pianu è coefficienti ùn seremu micca stati fora di l'aria magre, ma derivati secondu tutte e regule, è nantu à a basa di dati accumulati nantu à i borrowers chì anu o ùn anu micca rimbursatu u prestitu. È in verità, nutate chì avemu avà selezziunate i prestiti cù coefficienti digià cunnisciuti . In fatti, u compitu di u mudellu di regressione logistica hè precisamente di determinà i paràmetri , à quale u valore di a funzione di perdita Perdita logistica tenderà à u minimu. Ma circa cumu u vettore hè calculatu , Truveremu più in a 5a sezione di l'articulu. Intantu, vultemu à a terra prumessa - à u nostru banchieru è i so trè clienti.
Grazie à a funzione sapemu quale pò esse datu un prestitu è quale deve esse denegatu. Ma ùn pudete micca andà à u direttore cù tali informazioni, perchè vulianu avè da noi a probabilità di rimborsu di u prestitu da ogni prestatore. Chì fà ? A risposta hè simplice - avemu bisognu di trasfurmà a funzione , chì i valori si trovanu in a gamma à una funzione chì i valori si trovanu in u range . È una tale funzione esiste, hè chjamata funzione di risposta logistica o trasfurmazioni di logit inversa. Incontru:
Videmu passu per passu cumu funziona funzione di risposta logistica. Nota chì andemu in a direzzione opposta, i.e. avemu da assume chì sapemu u valore di probabilità, chì si trova in a gamma da à è tandu avemu da "unwind" stu valore à tutta a gamma di numeri da à .
03. Derivemu a funzione di risposta logistica
Passu 1. Cunvertite i valori di probabilità in un intervallu
Durante a trasfurmazioni di a funzione в funzione di risposta logistica Lasceremu u nostru analista di creditu solu è facemu un tour di i bookmakers invece. Innò, di sicuru, ùn faremu micca scumesse, tuttu ciò chì ci interessa ci hè u significatu di l'espressione, per esempiu, a chance hè 4 à 1. L'odds, familiar à tutti i bettors, sò a ratio di "successi" à " fallimenti". In termini di probabilità, l'odds sò a probabilità di un avvenimentu accadutu divisu da a probabilità di l'avvenimentu ùn accade micca. Scrivemu a formula per a pussibilità di un avvenimentu :
induve - probabilità di accadimentu di un avvenimentu, - probabilità chì un avvenimentu ùn sia micca accadutu
Per esempiu, se a probabilità chì un cavallu ghjovanu, forte è ghjucatu soprannominatu "Veterok" batte una vechja vechja è flaccida chjamata "Matilda" in una corsa hè uguale à , allura i chances di successu per "Veterok" seranu к è vice versa, sapendu e probabilità, ùn serà micca difficiule per noi di calculà a probabilità :
Cusì, avemu amparatu à "traduce" probabilità in chances, chì piglianu valori da à . Facemu un passu più è amparà à "traduce" a probabilità à tutta a linea numerica da à .
Passu 2. Cunvertite i valori di probabilità in un intervallu
Stu passu hè assai simplice - pigliamu u logaritmu di e probabilità à a basa di u numeru di Euler. è avemu:
Avà sapemu chì si , poi calculate u valore serà assai simplice è, in più, deve esse pusitivu: . Questu hè veru.
Per curiosità, andemu à verificà ciò chì si , allora aspittemu di vede un valore negativu . Avemu verificatu: . Hè ghjusta.
Avà sapemu cumu cunvertisce u valore di probabilità da à longu tutta a linea numerica da à . In u prossimu passu, faremu u cuntrariu.
Per avà, avemu nutatu chì in cunfurmità cù e regule di logaritmu, sapendu u valore di a funzione , pudete calculà e probabilità:
Stu metudu di determinà e probabilità serà utile per noi in u prossimu passu.
Step 3. Derivemu una formula per determinà
Allora avemu amparatu, sapendu , truvà i valori di funzione . Tuttavia, in fattu, avemu bisognu esattamente u cuntrariu - cunnosce u valore truvà . Per fà questu, andemu à un tali cuncettu cum'è a funzione di probabilità inversa, secondu a quale:
In l'articulu ùn deriveremu micca a formula sopra, ma avemu da verificà cù i numeri di l'esempiu sopra. Sapemu chì cù probabilità di 4 à 1 (), a probabilità di l'avvenimentu hè 0.8 (). Facemu una sustituzione: . Questu coincide cù i nostri calculi fatti prima. Andemu avanti.
In l'ultimu passu avemu dedutu chì , chì significa chì pudete fà una sustituzione in a funzione di probabilità inversa. Avemu ottene:
Divide u numeratore è u denominatore per , Allora:
In casu, per assicurà chì ùn avemu micca fattu un sbagliu in ogni locu, faremu un più chjucu cuntrollu. In u passu 2, avemu per determinatu chì . Allora, rimpiazzà u valore in a funzione di risposta logistica, aspittemu à ottene . Sustituemu è uttene:
Felicitazioni, caru lettore, avemu ghjustu derivatu è pruvatu a funzione di risposta logistica. Fighjemu u graficu di a funzione.
Graficu 3 "Funzione di risposta logistica"
Codice per disegnu u graficu
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 a literatura pudete ancu truvà u nome di sta funzione cum'è funzione sigmoide. U graficu mostra chjaramente chì u cambiamentu principale in a probabilità di un oggettu chì appartene à una classe si trova in un intervallu relativamente chjucu. , da qualchì parte à .
Suggeriu di vultà à u nostru analista di creditu è aiutallu à calculà a probabilità di rimborsu di u prestitu, altrimenti risicate di esse lasciatu senza bonus :)
Tabella 2 "Prestiti potenziali"
Codice per generà a 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']]
Dunque, avemu determinatu a probabilità di rimborsu di u prestitu. In generale, questu pare esse veru.
Infatti, a probabilità chì Vasya, cù un salariu di 120.000 3.000 RUR, puderà dà 100 0.3 RUR à u bancu ogni mese hè vicinu à XNUMX%. In modu, avemu da capisce chì un bancu pò emette un prestitu à Lesha se a pulitica di u bancu furnisce, per esempiu, per prestitu à i clienti cù una probabilità di rimborsu di prestitu di più di, dì, XNUMX. Hè solu chì in questu casu, u bancu creà una riserva più grande per i pussibuli pèrdite.
Deve ancu esse nutatu chì u rapportu di salariu à pagamentu di almenu 3 è cun un marghjenu di 5.000 XNUMX RUR hè statu pigliatu da u tettu. Dunque, ùn pudemu micca aduprà u vettore di pesi in a so forma originale . Avemu bisognu di riduce assai i coefficienti, è in questu casu avemu divisu ogni coefficient per 25.000 XNUMX, vale à dì, in essenza, aghjustatu u risultatu. Ma questu hè stata fatta apposta per simplificà a cunniscenza di u materiale in u stadiu iniziale. In a vita, ùn avemu micca bisognu di inventà è aghjustà i coefficienti, ma truvà. In i prossimi rùbbriche di l'articulu deriveremu l'equazioni cù quale i paràmetri sò selezziunati .
04. Metudu di i minimi quadrati per a determinazione di u vettore di pesi in a funzione di risposta logistica
Avemu digià cunnisciutu stu metudu per selezziunà un vettore di pesi , cum'è Metudu di i minimi quadrati (LSM) è in fattu, perchè ùn avemu micca allora aduprà in i prublemi di classificazione binaria? In verità, nunda ùn impedisce di aduprà MNC, solu stu metudu in i prublemi di classificazione dà risultati chì sò menu precisi cà Perdita logistica. Ci hè una basa teorica per questu. Fighjemu prima un esempiu simplice.
Assumimu chì i nostri mudelli (usu MSE и Perdita logistica) anu digià cuminciatu à selezziunate u vettore di pesi è avemu firmatu u calculu à qualchì passu. Ùn importa micca in u mità, à a fine o à u principiu, a cosa principal hè chì avemu digià qualchi valori di u vettore di pesi è supponemu chì in questu passu, u vettore di pesi. per i dui mudelli ùn ci sò micca differenzi. Allora pigliate i pesi resultanti è rimpiazzà in elli funzione di risposta logistica () per qualchì ughjettu chì appartene à a classa . Esaminemu dui casi quandu, in cunfurmità cù u vettore di pesi selezziunati, u nostru mudellu hè assai sbagliatu è vice versa - u mudellu hè assai cunfidendu chì l'ughjettu appartene à a classe. . Videmu ciò chì fine sarà emessu quandu si usa MNC и Perdita logistica.
Codice per calculà e penalità secondu a funzione di perdita utilizata
# класс объекта
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 casu di sbagghiatu - u mudellu assigna un oggettu à una classa cù una probabilità di 0,01
Penalità à l'usu MNC serà:
Penalità à l'usu Perdita logistica serà:
Un casu di forte fiducia - u mudellu assigna un oggettu à una classa cù una probabilità di 0,99
Penalità à l'usu MNC serà:
Penalità à l'usu Perdita logistica serà:
Stu esempiu illustra bè chì in casu di un errore grossu a funzione di perdita Perdita di log penalizeghja u mudellu significativamente più cà MSE. Andemu avà capisce ciò chì u fondu teorichi hè à aduprà a funzione di perdita Perdita di log in i prublemi di classificazione.
05. Metudu di probabilità massima è regressione logistica
Cum'è prumessu à u principiu, l'articulu hè pienu di esempi simplici. In u studiu ci hè un altru esempiu è vechji invitati - prestiti bancari: Vasya, Fedya è Lesha.
Solu in casu, prima di sviluppà l'esempiu, lasciami ricurdà chì in a vita avemu trattatu un campionu di furmazione di millaie o milioni d'uggetti cù decine o centinaie di funzioni. Tuttavia, quì i numeri sò pigliati in modu chì ponu facirmenti intruduce in u capu di un scientist di dati novi.
Riturnemu à l'esempiu. Fighjemu chì u direttore di u bancu hà decisu di emette un prestitu à tutti quelli chì anu bisognu, malgradu u fattu chì l'algoritmu hà dettu di ùn emette micca à Lesha. È avà hè passatu abbastanza tempu è sapemu quale di i trè eroi hà rimbursatu u prestitu è quale ùn hà micca. Ciò chì deve esse espertu: Vasya è Fedya rimbursatu u prestitu, ma Lesha ùn hà micca. Avà imaginemu chì stu risultatu serà un novu campionu di furmazione per noi è, à u stessu tempu, hè cum'è s'è tutti i dati nantu à i fatturi chì influenzanu a probabilità di rimborsu di u prestitu (salariu di u prestitu, dimensione di u pagamentu mensuale) hè sparitu. Allora, intuitivamente, pudemu suppone chì ogni terzu prestitu ùn rimborsa micca u prestitu à u bancu, o in altri palori, a probabilità di u prossimu prestitu di rimbursà u prestitu. . Questa supposizione intuitiva hà cunfirmazione teorica è si basa metudu di massima probabilità, spessu in a literatura hè chjamatu principiu di massima probabilità.
Prima, facemu cunniscenze cù l'apparatu cuncettuale.
Probabilità di campionamentu hè a probabilità di ottene esattamente un tali campionu, ottene esattamente tali osservazioni / risultati, i.e. u pruduttu di e probabilità di ottene ognuna di i risultati di mostra (per esempiu, se u prestitu di Vasya, Fedya è Lesha hè statu rimbursatu o micca rimbursatu à u stessu tempu).
Funzione di probabilità mette in relazione a probabilità di una mostra cù i valori di i paràmetri di distribuzione.
In u nostru casu, a mostra di furmazione hè un schema generalizatu di Bernoulli, in quale a variabile aleatoria piglia solu dui valori: o . Dunque, a probabilità di mostra pò esse scritta cum'è una funzione di probabilità di u paràmetru a siguenti:
L'entrata sopra pò esse interpretata cum'è seguita. A probabilità cumuna chì Vasya è Fedya rimborsanu u prestitu hè uguali à , a probabilità chì Lesha ùn rimbursà micca u prestitu hè uguali à (siccomu ùn era micca u rimborsu di u prestitu chì hè accadutu), dunque a probabilità cumuna di tutti i trè avvenimenti hè uguali .
Metudu di massima probabilità hè un metudu per stimà un paràmetru scunnisciutu per maximizà funzioni di probabilità. In u nostru casu, avemu bisognu di truvà un tali valore , à quale righjunghji u so massimu.
Da induve vene l'idea attuale - per circà u valore di un paràmetru scunnisciutu à quale a funzione di probabilità righjunghji u massimu? L'urighjini di l'idea venenu da l'idea chì una mostra hè l'unica fonte di cunniscenze dispunibile per noi nantu à a pupulazione. Tuttu ciò chì sapemu di a pupulazione hè rapprisintatu in a mostra. Dunque, tuttu ciò chì pudemu dì hè chì una mostra hè a riflessione più precisa di a pupulazione dispunibile per noi. Per quessa, avemu bisognu di truvà un paràmetru à quale a mostra dispunibule diventa u più prubabile.
Ovviamente, avemu trattatu un prublema di ottimisazione in quale avemu bisognu di truvà u puntu estremu di una funzione. Per truvà u puntu estremu, hè necessariu di cunsiderà a cundizione di primu ordine, vale à dì, equate a derivativa di a funzione à cero è risolve l'equazioni in quantu à u paràmetru desideratu. Tuttavia, a ricerca di u derivatu di un pruduttu di un gran numaru di fatturi pò esse un compitu longu; per evitari, ci hè una tecnica speciale - cambià à u logaritmu. funzioni di probabilità. Perchè una tale transizione hè pussibule? Fighjemu attente à u fattu chì ùn avemu micca circà l'estremu di a funzione stessu, è u puntu extremum, vale à dì u valore di u paràmetru scunnisciutu , à quale righjunghji u so massimu. Quandu si move à un logaritmu, u puntu di l'extremu ùn cambia micca (ancu chì l'estremu stessu serà diversu), postu chì u logaritmu hè una funzione monotonica.
Andemu, in cunfurmità cù u sopra, cuntinuà à sviluppà u nostru esempiu cù prestiti da Vasya, Fedya è Lesha. Prima andemu à logaritmu di a funzione di probabilità:
Avà pudemu facilmente diferenze l'espressione per :
È infine, cunzidira a cundizione di primu ordine - equatemu a derivativa di a funzione à zero:
Cusì, a nostra stima intuitiva di a probabilità di rimborsu di prestitu era teoricamente justificata.
Grande, ma chì duvemu fà cù sta infurmazione avà? Se assumemu chì ogni terzu prestitu ùn torna micca i soldi à u bancu, allora l'ultimi inevitabbilmente fallenu. Hè propiu, ma solu quandu valutà a probabilità di rimborsu di u prestitu uguale à Ùn avemu micca cunsideratu i fatturi chì influenzanu u rimborsu di u prestitu: u salariu di u prestitu è a dimensione di u pagamentu mensuale. Ricurdemu chì avemu calculatu prima a probabilità di rimborsu di u prestitu da ogni cliente, tenendu in contu sti stessi fattori. Hè logicu chì avemu ottenutu probabilità diverse da a constante uguale .
Definimu a probabilità di campioni:
Codice per u calculu di probabilità di mostra
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)
Probabilità di mostra à un valore constante :
Prubabilità di mostra quandu si calcula a probabilità di rimborsu di u prestitu in cunsiderà fattori :
A probabilità di una mostra cù una probabilità calculata sicondu i fatturi hè stata più altu ch'è a probabilità cun un valore di probabilità constante. Chì significà questu? Questu suggerisce chì a cunniscenza di i fatturi hà permessu di selezziunà più precisamente a probabilità di rimborsu di prestitu per ogni cliente. Dunque, quandu emette u prossimu prestitu, saria più currettu per utilizà u mudellu prupostu à a fine di a sezione 3 di l'articulu per evaluà a probabilità di rimborsu di u debitu.
Ma dopu, si vulemu maximizà funzione di probabilità di mostra, Allora perchè micca aduprà qualchì algoritmu chì pruducerà probabilità per Vasya, Fedya è Lesha, per esempiu, uguali à 0.99, 0.99 è 0.01, rispettivamente. Forse un tale algoritmu farà bè nantu à a mostra di furmazione, postu chì avvicinarà u valore di probabilità di mostra. , ma, prima, un tali algoritmu avarà assai prubabilmente difficultà cù a capacità di generalizazione, è in segundu, questu algoritmu ùn serà micca definitu lineare. È se i metudi di cumbattimentu di l'overtraining (ugualmente debule capacità di generalizazione) ùn sò chjaramente micca inclusi in u pianu di stu articulu, allora andemu à traversu u sicondu puntu in più detail. Per fà questu, basta à risponde à una quistione simplice. A probabilità di Vasya è Fedya di rimborsà u prestitu pò esse a stessa, tenendu in contu i fatturi cunnisciuti da noi? Da u puntu di vista di a logica sana, di sicuru micca, ùn pò micca. Allora Vasya hà da pagà 2.5% di u so salariu per mese per rimbursà u prestitu, è Fedya - quasi 27,8%. Ancu in u graficu 2 "Classificazione di u cliente" vedemu chì Vasya hè assai più luntanu da a linea chì separa e classi cà Fedya. È infine, sapemu chì a funzione per Vasya è Fedya piglia valori diffirenti: 4.24 per Vasya è 1.0 per Fedya. Avà, se Fedya, per esempiu, hà guadagnatu un ordine di grandezza più o dumandava un prestitu più chjucu, allora e probabilità di rimborsà u prestitu per Vasya è Fedya seranu simili. In altre parolle, a dependenza lineale ùn pò micca esse ingannata. È se avemu veramente calculatu e probabilità , È ùn li pigliò fora di l'aria magre, pudemu dì sicuru chì i nostri valori megliu permettenu di stimà a probabilità di rimborsu di u prestitu da ogni prestitu, ma postu chì avemu accunsentutu à suppone chì a determinazione di i coefficienti hè statu realizatu secondu tutte e regule, allora assumeremu cusì - i nostri coefficienti ci permettenu di dà una stima megliu di a probabilità :)
Tuttavia, avemu digressu. In questa sezione avemu bisognu di capiscenu cumu si determina u vettore di pesi , chì hè necessariu per valutà a probabilità di rimborsu di u prestitu da ogni prestitu.
Riassumemu brevemente cù quale arsenale andemu à circà probabilità :
1. Assumimu chì a relazione trà a variabile di destinazione (valore di prediczione) è u fattore chì influenza u risultatu hè lineale. Per questu mutivu hè utilizatu funzione di regressione lineare gentile , a linea di quale divide l'uggetti (clienti) in classi и o (clienti chì sò capaci di rimbursà u prestitu è quelli chì ùn sò micca). In u nostru casu, l'equazioni hà a forma .
2. Avemu aduprà funzione logit inversa gentile per determinà a probabilità di un oggettu chì appartene à una classe .
3. Cunsideremu u nostru gruppu di furmazione cum'è una implementazione di un generale schemi di Bernoulli, vale à dì, per ogni ughjettu una variabile aleatoria hè generata, chì cun probabilità (u so propiu per ogni ughjettu) piglia u valore 1 è cun probabilità - 0.
4. Sapemu ciò chì avemu bisognu di maximizà funzione di probabilità di mostra piglià in contu i fattori accettati per chì a mostra dispunibile diventa u più plausibile. In altri palori, avemu bisognu di selezziunà i paràmetri à quale a mostra serà più plausibile. In u nostru casu, u paràmetru sceltu hè a probabilità di rimborsu di prestitu , chì à u turnu dipende di coefficienti scunnisciuti . Allora avemu bisognu di truvà un tali vettore di pesi , à quale a probabilità di a mostra serà massima.
5. Sapemu ciò chì maximizà funzioni di probabilità di mostra pudete aduprà metudu di massima probabilità. È sapemu tutti i scherzi dilicati per travaglià cù stu metudu.
Questu hè cumu si hè una mossa in più tappe :)
Avà ricurdate chì à u principiu di l'articulu avemu vulsutu derivà dui tipi di funzioni di perdita Perdita logistica secondu cumu e classi di l'ughjetti sò designati. Hè accadutu chì in i prublemi di classificazione cù dui classi, i classi sò denotati cum'è и o . Sicondu a notazione, l'output avarà una funzione di perdita currispundente.
Casu 1. Classificazione di l'uggetti in и
Prima, quandu determinava a probabilità di un campione, in quale a probabilità di rimborsu di u debitu da u prestitu hè stata calculata in basa di fatturi è dati coefficienti. , avemu applicatu a formula:
In fattu hè u significatu funzioni di risposta logistica per un datu vettore di pesi
Allora nunda ci impedisce di scrive a funzione di probabilità di mostra cum'è seguente:
Succede chì qualchì volta hè difficiule per alcuni analisti principianti di capisce immediatamente cumu funziona sta funzione. Fighjemu 4 brevi esempi chì sbulicà tuttu:
1. se (vale à dì, secondu a mostra di furmazione, l'ughjettu appartene à a classa +1), è u nostru algoritmu determina a probabilità di classificà un oggettu à una classe uguali à 0.9, allora stu pezzu di probabilità di mostra serà calculatu cum'è seguente:
2. se e , allura u calculu serà cusì:
3. se e , allura u calculu serà cusì:
4. se e , allura u calculu serà cusì:
Hè ovvi chì a funzione di probabilità serà maximizata in i casi 1 è 3 o in u casu generale - cù i valori indovinati currettamente di e probabilità di assignà un oggettu à una classe. .
A causa di u fattu chì quandu si determina a probabilità di assignà un oggettu à una classa Ùn sapemu solu i coefficienti , allora li cercheremu. Cumu l'esitatu sopra, questu hè un prublema di ottimisazione in quale prima avemu bisognu di truvà a derivativa di a funzione di probabilità in quantu à u vettore di pesi. . In ogni casu, prima hè sensu per simplificà u compitu per noi stessu: cercheremu a derivativa di u logaritmu. funzioni di probabilità.
Perchè dopu à logaritmu, in funzioni di errore logisticu, avemu cambiatu u signu da nantu . Tuttu hè simplice, postu chì in i prublemi di valutà a qualità di un mudellu hè abitudine di minimizzà u valore di una funzione, avemu multiplicatu u latu drittu di l'espressione per è dunque, invece di maximizà, ora minimizemu a funzione.
In verità, avà, davanti à i vostri ochji, a funzione di perdita hè stata currettamente derivata - Perdita logistica per un set di furmazione cù dui classi: и .
Avà, per truvà i coefficienti, avemu solu bisognu di truvà a derivativa funzioni di errore logisticu è dopu, utilizendu metudi di ottimisazione numerica, cum'è a discesa di gradiente o a discesa di gradiente stochasticu, selezziunate i coefficienti più ottimali. . Ma, datu u voluminu considerableu di l'articulu, hè prupostu di realizà a differenziazione nantu à u vostru propiu, o forsi questu serà un tema per u prossimu articulu cù assai aritmetica senza tali esempi detallati.
Casu 2. Classificazione di l'uggetti in и
L'approcciu quì serà u listessu cum'è cù e classi и , ma u percorsu stessu à a pruduzzioni di a funzione di perdita Perdita logistica, serà più ornatu. Cuminciamu. Per a funzione di probabilità useremu l'operatore "se... allora...". Questu hè, se L'ughjettu th appartene à a classa , dopu per calculà a probabilità di u sample usemu a probabilità , se l'ughjettu appartene à a classa , tandu sustituemu in a probabilità . Eccu ciò chì pare a funzione di probabilità:
Descrivimu nantu à e nostre dite cumu funziona. Cunsideremu 4 casi:
1. se и , allora a probabilità di campionamentu "andà"
2. se и , allora a probabilità di campionamentu "andà"
3. se и , allora a probabilità di campionamentu "andà"
4. se и , allora a probabilità di campionamentu "andà"
Hè ovvi chì in i casi 1 è 3, quandu e probabilità sò state determinate currettamente da l'algoritmu, funzione di probabilità serà maximizatu, vale à dì, questu hè esattamente ciò chì vulemu ottene. Tuttavia, stu approcciu hè abbastanza ingombrante è dopu cunsideremu una notazione più compacta. Ma prima, logaritmimu a funzione di probabilità cù un cambiamentu di signu, postu chì avà avemu da minimizzà.
Sustituemu invece espressione :
Simplificàmu u termu ghjustu sottu u logaritmu utilizendu tecniche aritmetiche simplici è uttene:
Avà hè u tempu di caccià l'operatore "se... allora...". Nota chì quandu un ughjettu appartene à a classe , dopu in l'espressione sottu u logaritmu, in u denominatore, elevatu à u putere , se l'ughjettu appartene à a classa , tandu $e$ hè elevatu à u putere . Dunque, a notazione per u gradu pò esse simplificata cumminendu i dui casi in unu: . Allora funzione di errore logisticu prendrà a forma:
In cunfurmità cù e regule di logaritmu, vultemu a frazzioni è mette u segnu "."(minus) per u logaritmu, avemu:
Eccu a funzione di perdita perdita logistica, chì hè utilizatu in u settore di furmazione cù l'uggetti assignati à e classi: и .
Ebbè, à questu puntu pigliu u mo permessu è cuncludemu l'articulu.
Materiali ausiliari
1. Literatura
1) Analisi di regressione applicata / N. Draper, G. Smith - 2nd ed. – M.: Finance and Statistics, 1986 (traduzzione da l'inglese)
2) Teoria di probabilità è statistiche matematiche / V.E. Gmurman - 9ª ed. - M. : Liceu, 2003
3) Teoria di probabilità / N.I. Chernova - Novosibirsk: Università Statale di Novosibirsk, 2007
4) Analitiche cummerciale: da i dati à a cunniscenza / Paklin N. B., Oreshkov V. I. - 2nd ed. — San Petruburgu : Petru, 2013
5) Data Science Data Science da zero / Joel Gras - San Pietroburgo: BHV Petersburg, 2017
6) Statistiche pratiche per i specialisti di Data Science / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018
2. Lezioni, corsi (video)
1)
2)
3)
4)
5)
3. Fonti Internet
1)
2)
3)
4)
6)