Žvečenje logistične regresije

Žvečenje logistične regresije

V tem članku bomo analizirali teoretične izračune transformacije funkcije linearne regresije в funkcija inverzne logit transformacije (imenovana tudi funkcija logističnega odziva). Nato z uporabo arzenala metoda največje verjetnosti, v skladu z modelom logistične regresije izpeljemo funkcijo izgube Logistična izguba, ali z drugimi besedami, definirali bomo funkcijo, s katero se izberejo parametri vektorja uteži v modelu logistične regresije Žvečenje logistične regresije.

Oris članka:

  1. Ponovimo linearno razmerje med dvema spremenljivkama
  2. Ugotovimo potrebo po preobrazbi funkcije linearne regresije Žvečenje logistične regresije в funkcija logističnega odziva Žvečenje logistične regresije
  3. Izvedimo transformacije in izpis funkcija logističnega odziva
  4. Poskusimo razumeti, zakaj je metoda najmanjših kvadratov slaba pri izbiri parametrov Žvečenje logistične regresije funkcije Logistična izguba
  5. Uporaba metoda največje verjetnosti za določanje funkcije izbire parametrov Žvečenje logistične regresije:

    5.1. Primer 1: funkcija Logistična izguba za objekte z oznakami razreda 0 и 1:

    Žvečenje logistične regresije

    5.2. Primer 2: funkcija Logistična izguba za objekte z oznakami razreda -1 и +1:

    Žvečenje logistične regresije


Članek je poln preprostih primerov, v katerih je vse izračune enostavno narediti ustno ali na papirju, v nekaterih primerih bo morda potreben kalkulator. Torej pripravi se :)

Ta članek je namenjen predvsem podatkovnim znanstvenikom z začetnim nivojem znanja o osnovah strojnega učenja.

V članku bo tudi koda za risanje grafov in izračune. Vsa koda je napisana v jeziku pyton 2.7. Naj vnaprej razložim o “novosti” uporabljene različice - to je eden od pogojev za obisk znanega tečaja iz Yandex na prav tako znani platformi za spletno izobraževanje Coursera, in kot bi lahko domnevali, je bilo gradivo pripravljeno na podlagi tega predmeta.

01. Premočrtna odvisnost

Povsem razumno se je vprašati - kaj imata s tem linearna odvisnost in logistična regresija?

Enostavno je! Logistična regresija je eden izmed modelov, ki spadajo v linearni klasifikator. Preprosto povedano, naloga linearnega klasifikatorja je napovedovanje ciljnih vrednosti Žvečenje logistične regresije iz spremenljivk (regresorjev) Žvečenje logistične regresije. Menijo, da je odvisnost med značilnostmi Žvečenje logistične regresije in ciljne vrednosti Žvečenje logistične regresije linearni. Od tod tudi ime klasifikatorja - linearno. Zelo grobo povedano, logistični regresijski model temelji na predpostavki, da obstaja linearna povezava med značilnostmi Žvečenje logistične regresije in ciljne vrednosti Žvečenje logistične regresije. To je povezava.

V studiu je prvi primer in gre, pravilno, za premočrtno odvisnost preučevanih količin. V procesu priprave članka sem naletel na primer, ki je že marsikoga postavil na rob - odvisnost toka od napetosti (»Uporabna regresijska analiza«, N. Draper, G. Smith). Ogledali si ga bomo tudi tukaj.

V skladu z Ohmov zakon:

Žvečenje logistične regresijeČe Žvečenje logistične regresije - jakost toka, Žvečenje logistične regresije - Napetost, Žvečenje logistične regresije - odpornost.

Če ne bi vedeli Ohmov zakon, potem bi lahko empirično našli odvisnost s spreminjanjem Žvečenje logistične regresije in merjenje Žvečenje logistične regresije, medtem ko podpira Žvečenje logistične regresije fiksno. Potem bi videli, da je graf odvisnosti Žvečenje logistične regresije od Žvečenje logistične regresije daje bolj ali manj ravno črto skozi izhodišče. Pravimo "bolj ali manj", ker čeprav je razmerje dejansko natančno, lahko naše meritve vsebujejo majhne napake, zato točke na grafu morda ne bodo točno na črti, ampak bodo naključno razpršene okoli nje.

Graf 1 “Odvisnost” Žvečenje logistične regresije od Žvečenje logistične regresije»

Žvečenje logistične regresije

Koda za risanje grafikona

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. Potreba po transformaciji linearne regresijske enačbe

Poglejmo še en primer. Predstavljajmo si, da delamo v banki in je naša naloga določiti verjetnost, da bo posojilojemalec odplačal posojilo glede na določene dejavnike. Za poenostavitev naloge bomo upoštevali samo dva dejavnika: mesečno plačo posojilojemalca in znesek mesečnega odplačevanja posojila.

Naloga je zelo pogojna, vendar s tem primerom lahko razumemo, zakaj ni dovolj za uporabo funkcije linearne regresijein tudi ugotovite, katere transformacije je treba izvesti s funkcijo.

Vrnimo se k primeru. Razume se, da višja kot je plača, več bo posojilojemalec lahko mesečno namenil za odplačilo posojila. Hkrati pa bo za določen plačni razred to razmerje precej linearno. Na primer, vzemimo razpon plače od 60.000 do 200.000 rubljev in predpostavimo, da je v navedenem razponu plače odvisnost višine mesečnega plačila od višine plače linearna. Recimo, da je bilo za določen obseg plač ugotovljeno, da razmerje med plačo in plačilom ne sme pasti pod 3, posojilojemalec pa mora imeti v rezervi še 5.000 rubljev. In samo v tem primeru bomo domnevali, da bo posojilojemalec odplačal posojilo banki. Nato bo enačba linearne regresije prevzela obliko:

Žvečenje logistične regresije

če Žvečenje logistične regresije, Žvečenje logistične regresije, Žvečenje logistične regresije, Žvečenje logistične regresije - plača Žvečenje logistične regresije- posojilojemalec, Žvečenje logistične regresije - plačilo posojila Žvečenje logistične regresije-ti posojilojemalec.

Zamenjava plače in plačila posojila s fiksnimi parametri v enačbo Žvečenje logistične regresije Odločite se lahko, ali boste posojilo izdali ali zavrnili.

Če pogledamo naprej, ugotavljamo, da z danimi parametri Žvečenje logistične regresije funkcija linearne regresije, ki se uporablja v funkcije logističnega odziva bo proizvedel velike vrednosti, ki bodo zapletle izračune za določitev verjetnosti odplačila posojila. Zato je predlagano zmanjšanje naših koeficientov, recimo, za 25.000-krat. To preoblikovanje koeficientov ne bo spremenilo odločitve o izdaji posojila. Zapomnimo si to točko za prihodnost, zdaj pa, da bo še bolj jasno, o čem govorimo, razmislimo o situaciji s tremi potencialnimi posojilojemalci.

Tabela 1 »Potencialni posojilojemalci«

Žvečenje logistične regresije

Koda za generiranje tabele

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']]

V skladu s podatki v tabeli želi Vasja s plačo 120.000 rubljev prejeti posojilo, da bi ga lahko mesečno odplačeval v višini 3.000 rubljev. Ugotovili smo, da mora za odobritev posojila Vasjina plača preseči trikratnik zneska plačila in mora ostati še 5.000 rubljev. Vasya izpolnjuje to zahtevo: Žvečenje logistične regresije. Ostaja celo 106.000 RUR. Kljub temu, da pri izračunu Žvečenje logistične regresije smo zmanjšali kvote Žvečenje logistične regresije 25.000-krat, rezultat je bil enak - posojilo se lahko odobri. Fedya bo prejel tudi posojilo, a Lesha, kljub dejstvu, da prejme največ, bo moral omejiti svoje apetite.

Narišimo graf za ta primer.

Graf 2 "Klasifikacija posojilojemalcev"

Žvečenje logistične regresije

Koda za risanje grafa

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()

Torej, naša ravna črta, zgrajena v skladu s funkcijo Žvečenje logistične regresije, loči "slabe" posojilojemalce od "dobrih". Tisti posojilojemalci, katerih želje ne sovpadajo z njihovimi zmožnostmi, so nad črto (Lesha), tisti, ki so glede na parametre našega modela sposobni odplačati posojilo, pa pod črto (Vasya in Fedya). Z drugimi besedami lahko rečemo takole: naša direktna linija deli kreditojemalce na dva razreda. Označimo jih takole: razredu Žvečenje logistične regresije Tiste kreditojemalce, ki bodo kredit najverjetneje odplačali, bomo razvrstili med Žvečenje logistične regresije ali Žvečenje logistične regresije Vključili bomo tiste kreditojemalce, ki posojila najverjetneje ne bodo mogli odplačati.

Povzemimo sklepe iz tega preprostega primera. Vzemimo točko Žvečenje logistične regresije in zamenjavo koordinat točke v ustrezno enačbo premice Žvečenje logistične regresije, razmislite o treh možnostih:

  1. Če je točka pod črto in jo pripišemo razredu Žvečenje logistične regresije, nato vrednost funkcije Žvečenje logistične regresije bo pozitivno od Žvečenje logistične regresije za Žvečenje logistične regresije. To pomeni, da lahko domnevamo, da je verjetnost odplačila posojila znotraj Žvečenje logistične regresije. Večja kot je vrednost funkcije, večja je verjetnost.
  2. Če je točka nad črto in jo pripišemo razredu Žvečenje logistične regresije ali Žvečenje logistične regresije, potem bo vrednost funkcije negativna od Žvečenje logistične regresije za Žvečenje logistične regresije. Potem bomo predpostavili, da je verjetnost odplačila dolga znotraj Žvečenje logistične regresije in večja kot je absolutna vrednost funkcije, večje je naše zaupanje.
  3. Točka je na ravni črti, na meji med dvema razredoma. V tem primeru vrednost funkcije Žvečenje logistične regresije bo enakovreden Žvečenje logistične regresije in verjetnost odplačila posojila je enaka Žvečenje logistične regresije.

Zdaj pa si predstavljajmo, da nimamo dveh dejavnikov, ampak na desetine in ne tri, ampak na tisoče posojilojemalcev. Potem bomo namesto ravne črte imeli m-dimenzionalno ravnina in koeficienti Žvečenje logistične regresije ne bomo vzeti iz zraka, ampak izpeljani po vseh pravilih in na podlagi zbranih podatkov o kreditojemalcih, ki so ali niso odplačali kredit. In res, upoštevajte, da zdaj izbiramo posojilojemalce z že znanimi koeficienti Žvečenje logistične regresije. Pravzaprav je naloga logističnega regresijskega modela prav določanje parametrov Žvečenje logistične regresije, pri kateri je vrednost funkcije izgube Logistična izguba se bo nagibalo k minimumu. Toda o tem, kako se vektor izračuna Žvečenje logistične regresije, bomo izvedeli več v 5. delu članka. Vmes se vračamo v obljubljeno deželo – k našemu bankirju in njegovim trem strankam.

Zahvaljujoč funkciji Žvečenje logistične regresije vemo, komu je mogoče dati posojilo in komu ga je treba zavrniti. Toda s takimi podatki ne morete iti do direktorja, saj so od nas želeli pridobiti verjetnost odplačila kredita po posameznem kreditojemalcu. Kaj storiti? Odgovor je preprost - funkcijo moramo nekako preoblikovati Žvečenje logistične regresije, katerih vrednosti ležijo v območju Žvečenje logistične regresije na funkcijo, katere vrednosti bodo v območju Žvečenje logistične regresije. In takšna funkcija obstaja, imenuje se logistična odzivna funkcija ali inverzna logit transformacija. Srečati:

Žvečenje logistične regresije

Poglejmo korak za korakom, kako deluje funkcija logističnega odziva. Upoštevajte, da bomo hodili v nasprotni smeri, tj. predpostavili bomo, da poznamo vrednost verjetnosti, ki leži v območju od Žvečenje logistične regresije za Žvečenje logistične regresije nato pa bomo to vrednost "odvili" na celoten obseg števil od Žvečenje logistične regresije za Žvečenje logistične regresije.

03. Izpeljemo logistično odzivno funkcijo

Korak 1. Pretvorite vrednosti verjetnosti v obseg Žvečenje logistične regresije

Med transformacijo funkcije Žvečenje logistične regresije в funkcija logističnega odziva Žvečenje logistične regresije Pustili bomo našega kreditnega analitika pri miru in se raje odpravili na ogled stavnic. Ne, seveda ne bomo stavili, vse, kar nas tam zanima, je pomen izraza, na primer možnost je 4 proti 1. Kvote, ki jih poznajo vsi igralci stav, so razmerje med "uspehi" in " neuspehi«. V smislu verjetnosti so kvote verjetnost, da se dogodek zgodi, deljena z verjetnostjo, da se dogodek ne zgodi. Zapišimo formulo za možnost, da se zgodi dogodek Žvečenje logistične regresije:

Žvečenje logistične regresije

Če Žvečenje logistične regresije - verjetnost nastanka dogodka, Žvečenje logistične regresije — verjetnost, da se dogodek NE zgodi

Na primer, če je verjetnost, da bo mlad, močan in igriv konj z vzdevkom "Veterok" na dirki premagal staro in mlohavo starko z imenom "Matilda", enaka Žvečenje logistične regresije, potem bodo možnosti za uspeh za "Veterok" velike Žvečenje logistične regresije к Žvečenje logistične regresije Žvečenje logistične regresije in obratno, če poznamo kvote, nam ne bo težko izračunati verjetnosti Žvečenje logistične regresije:

Žvečenje logistične regresije

Tako smo se naučili "prevesti" verjetnost v možnosti, ki vzamejo vrednosti iz Žvečenje logistične regresije za Žvečenje logistične regresije. Naredimo še en korak in se naučimo "prevesti" verjetnost na celotno številsko premico Žvečenje logistične regresije za Žvečenje logistične regresije.

Korak 2. Pretvorite vrednosti verjetnosti v obseg Žvečenje logistične regresije

Ta korak je zelo preprost - vzemimo logaritem kvot na osnovo Eulerjevega števila Žvečenje logistične regresije in dobimo:

Žvečenje logistične regresije

Zdaj vemo, da če Žvečenje logistične regresije, nato izračunajte vrednost Žvečenje logistične regresije bo zelo preprosto in poleg tega mora biti pozitivno: Žvečenje logistične regresije. To je resnica.

Iz radovednosti preverimo, kaj če Žvečenje logistične regresije, potem pričakujemo, da bomo videli negativno vrednost Žvečenje logistične regresije. Preverjamo: Žvečenje logistične regresije. Tako je.

Zdaj vemo, kako pretvoriti vrednost verjetnosti iz Žvečenje logistične regresije za Žvečenje logistične regresije vzdolž celotne številske premice od Žvečenje logistične regresije za Žvečenje logistične regresije. V naslednjem koraku bomo naredili nasprotno.

Za zdaj ugotavljamo, da v skladu s pravili logaritma poznamo vrednost funkcije Žvečenje logistične regresije, lahko izračunate kvote:

Žvečenje logistične regresije

Ta metoda določanja kvot nam bo koristila v naslednjem koraku.

Korak 3. Izpeljimo formulo za določitev Žvečenje logistične regresije

Tako smo se učili, vedeli Žvečenje logistične regresije, poiščite vrednosti funkcij Žvečenje logistične regresije. Vendar pa v resnici potrebujemo ravno nasprotno - poznavanje vrednosti Žvečenje logistične regresije najti Žvečenje logistične regresije. Če želite to narediti, se obrnemo na koncept, kot je inverzna funkcija kvot, v skladu s katero:

Žvečenje logistične regresije

V članku ne bomo izpeljali zgornje formule, ampak jo bomo preverili s številkami iz zgornjega primera. Vemo, da s kvotami 4 proti 1 (Žvečenje logistične regresije), je verjetnost, da se dogodek zgodi, 0.8 (Žvečenje logistične regresije). Naredimo zamenjavo: Žvečenje logistične regresije. To sovpada z našimi prejšnjimi izračuni. Gremo naprej.

V zadnjem koraku smo to ugotovili Žvečenje logistične regresije, kar pomeni, da lahko naredite zamenjavo v inverzni funkciji kvot. Dobimo:

Žvečenje logistične regresije

Števec in imenovalec delite z Žvečenje logistične regresije, potem:

Žvečenje logistične regresije

Za vsak slučaj, da se prepričamo, da se nismo kje zmotili, bomo naredili še en manjši pregled. V 2. koraku smo za Žvečenje logistične regresije določil, da Žvečenje logistične regresije. Nato nadomestite vrednost Žvečenje logistične regresije v funkcijo logističnega odziva, pričakujemo, da bomo dobili Žvečenje logistične regresije. Zamenjamo in dobimo: Žvečenje logistične regresije

Čestitamo, dragi bralec, pravkar smo izpeljali in preizkusili funkcijo logističnega odziva. Poglejmo si graf funkcije.

Graf 3 “Funkcija logističnega odziva”

Žvečenje logistične regresije

Koda za risanje grafa

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()

V literaturi lahko najdete tudi ime te funkcije kot sigmoidno funkcijo. Graf jasno kaže, da se glavna sprememba v verjetnosti, da predmet pripada razredu, zgodi v razmeroma majhnem obsegu Žvečenje logistične regresije, nekje od Žvečenje logistične regresije za Žvečenje logistične regresije.

Predlagam, da se vrnete k našemu kreditnemu analitiku in mu pomagate izračunati verjetnost odplačila kredita, sicer tvega, da ostane brez bonusa :)

Tabela 2 »Potencialni posojilojemalci«

Žvečenje logistične regresije

Koda za generiranje tabele

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']]

Torej smo ugotovili verjetnost odplačila posojila. Na splošno se zdi, da je to res.

Dejansko je verjetnost, da bo Vasja s plačo 120.000 rubljev sposoben dati banki 3.000 rubljev vsak mesec, blizu 100%. Mimogrede, razumeti moramo, da lahko banka izda posojilo Leshi, če politika banke predvideva na primer posojila strankam z verjetnostjo odplačila posojila več kot, recimo, 0.3. Samo v tem primeru bo banka ustvarila večjo rezervo za morebitne izgube.

Prav tako je treba opozoriti, da je bilo razmerje med plačo in plačilom najmanj 3 in z maržo 5.000 rubljev vzeto iz zgornje meje. Zato vektorja uteži ne moremo uporabiti v izvirni obliki Žvečenje logistične regresije. Koeficiente smo morali zelo zmanjšati in v tem primeru smo vsak koeficient delili s 25.000, torej smo v bistvu prilagodili rezultat. Toda to je bilo storjeno posebej za poenostavitev razumevanja gradiva v začetni fazi. V življenju nam ne bo treba izumljati in prilagajati koeficientov, ampak jih najti. V naslednjih razdelkih članka bomo izpeljali enačbe, s katerimi so izbrani parametri Žvečenje logistične regresije.

04. Metoda najmanjših kvadratov za določanje vektorja uteži Žvečenje logistične regresije v funkciji logističnega odziva

To metodo za izbiro vektorja uteži že poznamo Žvečenje logistične regresijeKot metoda najmanjših kvadratov (LSM) in pravzaprav, zakaj ga potem ne uporabimo pri problemih binarne klasifikacije? Dejansko vam nič ne preprečuje uporabe MNC, samo ta metoda pri težavah s klasifikacijo daje rezultate, ki so manj natančni kot Logistična izguba. Za to obstaja teoretična osnova. Najprej si poglejmo en preprost primer.

Predpostavimo, da naši modeli (z uporabo MSE и Logistična izguba) že začeli z izbiro vektorja uteži Žvečenje logistične regresije in v nekem koraku smo ustavili izračun. Ni važno ali na sredini, na koncu ali na začetku, glavno je, da že imamo nekaj vrednosti vektorja uteži in predpostavimo, da je v tem koraku vektor uteži Žvečenje logistične regresije pri obeh modelih ni razlik. Nato vzemite dobljene uteži in jih zamenjajte funkcija logističnega odziva (Žvečenje logistične regresije) za nek objekt, ki pripada razredu Žvečenje logistične regresije. Preučili smo dva primera, ko je v skladu z izbranim vektorjem uteži naš model zelo zmoten in obratno – model je zelo prepričan, da predmet pripada razredu Žvečenje logistične regresije. Poglejmo, kakšne globe bodo izdane pri uporabi MNC и Logistična izguba.

Koda za izračun kazni glede na uporabljeno funkcijo izgube

# класс объекта
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

Primer napake — model dodeli objekt razredu Žvečenje logistične regresije z verjetnostjo 0,01

Kazen za uporabo MNC bo:
Žvečenje logistične regresije

Kazen za uporabo Logistična izguba bo:
Žvečenje logistične regresije

Primer močnega zaupanja — model dodeli objekt razredu Žvečenje logistične regresije z verjetnostjo 0,99

Kazen za uporabo MNC bo:
Žvečenje logistične regresije

Kazen za uporabo Logistična izguba bo:
Žvečenje logistične regresije

Ta primer dobro ponazarja, da je v primeru hude napake funkcija izgube Izguba dnevnika manekenko kaznuje bistveno bolj kot MSE. Poglejmo zdaj, kakšno je teoretično ozadje uporabe funkcije izgube Izguba dnevnika pri težavah s klasifikacijo.

05. Metoda največje verjetnosti in logistična regresija

Kot je bilo obljubljeno na začetku, je članek poln preprostih primerov. V studiu je še en primer in stari gostje - bančni posojilojemalci: Vasya, Fedya in Lesha.

Za vsak slučaj, preden razvijem primer, naj vas spomnim, da imamo v življenju opravka z učnim vzorcem na tisoče ali milijone predmetov z desetinami ali stotinami funkcij. Vendar so tukaj številke vzete tako, da se zlahka prilegajo v glavo začetnika podatkovnega znanstvenika.

Vrnimo se k primeru. Predstavljajmo si, da se je direktor banke odločil izdati posojilo vsem v stiski, kljub dejstvu, da mu je algoritem rekel, naj ga ne izda Leshi. In zdaj je minilo dovolj časa in vemo, kateri od treh junakov je posojilo vrnil in kateri ne. Kar je bilo pričakovati: Vasja in Fedja sta posojilo odplačala, Leša pa ne. Zdaj pa si predstavljajmo, da bo ta rezultat za nas nov vzorec usposabljanja, hkrati pa je, kot da bi izginili vsi podatki o dejavnikih, ki vplivajo na verjetnost odplačila posojila (plača posojilojemalca, višina mesečnega obroka). Potem lahko intuitivno predpostavimo, da vsak tretji kreditojemalec ne odplača kredita banki, ali z drugimi besedami, verjetnost, da bo naslednji kreditojemalec kredit vrnil Žvečenje logistične regresije. Ta intuitivna predpostavka ima teoretično potrditev in temelji na metoda največje verjetnosti, pogosto se v literaturi imenuje načelo največje verjetnosti.

Najprej se seznanimo s pojmovnim aparatom.

Verjetnost vzorčenja je verjetnost pridobitve točno takšnega vzorca, pridobitve točno takih opazovanj/rezultatov, tj. zmnožek verjetnosti pridobitve vsakega od rezultatov vzorca (na primer, ali je bilo posojilo Vasje, Fedje in Leše odplačano ali ne hkrati).

Funkcija verjetnosti povezuje verjetnost vzorca z vrednostmi parametrov porazdelitve.

V našem primeru je učni vzorec posplošena Bernoullijeva shema, v kateri ima naključna spremenljivka samo dve vrednosti: Žvečenje logistične regresije ali Žvečenje logistične regresije. Zato lahko verjetnost vzorca zapišemo kot funkcijo verjetnosti parametra Žvečenje logistične regresije kot sledi:

Žvečenje logistične regresije
Žvečenje logistične regresije

Zgornji vnos si lahko razlagamo na naslednji način. Skupna verjetnost, da bosta Vasja in Fedja odplačala posojilo, je enaka Žvečenje logistične regresije, je verjetnost, da Lesha NE bo odplačal posojila, enaka Žvečenje logistične regresije (ker NI šlo za odplačilo posojila), je torej skupna verjetnost vseh treh dogodkov enaka Žvečenje logistične regresije.

Metoda največje verjetnosti je metoda za ocenjevanje neznanega parametra z maksimiranjem funkcije verjetnosti. V našem primeru moramo najti takšno vrednost Žvečenje logistične regresijepri katerem Žvečenje logistične regresije doseže svoj maksimum.

Od kod pravzaprav ideja - iskati vrednost neznanega parametra, pri katerem funkcija verjetnosti doseže maksimum? Izvor ideje izhaja iz ideje, da je vzorec edini vir znanja, ki nam je na voljo o populaciji. V vzorcu je predstavljeno vse, kar vemo o populaciji. Zato lahko rečemo le, da je vzorec najbolj natančen odraz populacije, ki nam je na voljo. Zato moramo najti parameter, pri katerem postane razpoložljivi vzorec najbolj verjeten.

Očitno imamo opravka z optimizacijskim problemom, pri katerem moramo najti ekstremno točko funkcije. Za iskanje ekstremne točke je potrebno upoštevati pogoj prvega reda, to je izenačiti odvod funkcije na nič in rešiti enačbo glede na želeni parameter. Iskanje izpeljanke produkta velikega števila faktorjev pa je lahko dolgotrajna naloga, da bi se temu izognili, obstaja posebna tehnika - preklop na logaritem funkcije verjetnosti. Zakaj je tak prehod mogoč? Bodimo pozorni na to, da ne iščemo ekstrema same funkcijeŽvečenje logistične regresije, in ekstremna točka, to je vrednost neznanega parametra Žvečenje logistične regresijepri katerem Žvečenje logistične regresije doseže svoj maksimum. Pri prehodu na logaritem se ekstremna točka ne spremeni (čeprav se sam ekstrem razlikuje), saj je logaritem monotona funkcija.

V skladu z zgoraj navedenim nadaljujmo z razvojem našega primera s posojili Vasye, Fedye in Leshe. Najprej pojdimo na logaritem funkcije verjetnosti:

Žvečenje logistične regresije

Zdaj lahko izraz zlahka razlikujemo po Žvečenje logistične regresije:

Žvečenje logistične regresije

In končno, upoštevajte pogoj prvega reda - izenačimo odvod funkcije na nič:

Žvečenje logistične regresije

Tako naša intuitivna ocena verjetnosti odplačila posojila Žvečenje logistične regresije je bilo teoretično utemeljeno.

Super, ampak kaj naj zdaj naredimo s to informacijo? Če predpostavimo, da vsak tretji posojilojemalec ne bo vrnil denarja banki, potem bo ta neizogibno bankrotirala. Tako je, vendar le, če ocenimo, da je verjetnost odplačila posojila enaka Žvečenje logistične regresije Nismo upoštevali dejavnikov, ki vplivajo na odplačilo posojila: plače posojilojemalca in višine mesečnega obroka. Naj spomnimo, da smo predhodno izračunali verjetnost odplačila kredita za vsako stranko ob upoštevanju istih dejavnikov. Logično je, da smo dobili verjetnosti, ki se razlikujejo od enake konstante Žvečenje logistične regresije.

Določimo verjetnost vzorcev:

Koda za izračun verjetnosti vzorca

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)

Verjetnost vzorca pri konstantni vrednosti Žvečenje logistične regresije:

Žvečenje logistične regresije

Vzorčna verjetnost pri izračunu verjetnosti odplačila posojila ob upoštevanju dejavnikov Žvečenje logistične regresije:

Žvečenje logistične regresije
Žvečenje logistične regresije

Verjetnost vzorca z verjetnostjo, izračunano glede na dejavnike, se je izkazala za večjo od verjetnosti s konstantno vrednostjo verjetnosti. Kaj to pomeni? To nakazuje, da je poznavanje dejavnikov omogočilo natančnejšo izbiro verjetnosti odplačila kredita za vsako stranko. Zato bi bilo pri izdaji naslednjega posojila pravilneje uporabiti model, predlagan na koncu 3. razdelka članka za oceno verjetnosti odplačila dolga.

Ampak potem, če želimo maksimirati funkcija verjetnosti vzorca, zakaj potem ne bi uporabili nekega algoritma, ki bo ustvaril verjetnosti za Vasjo, Fedjo in Lešo, na primer enake 0.99, 0.99 oziroma 0.01. Morda se bo takšen algoritem dobro obnesel na učnem vzorcu, saj bo vrednost verjetnosti vzorca približal Žvečenje logistične regresije, ampak, prvič, takšen algoritem bo najverjetneje imel težave s sposobnostjo posploševanja, in drugič, ta algoritem zagotovo ne bo linearen. In če metode boja proti pretreniranosti (enako šibka sposobnost posploševanja) očitno niso vključene v načrt tega članka, potem pojdimo podrobneje skozi drugo točko. Če želite to narediti, odgovorite na preprosto vprašanje. Ali je verjetnost, da bosta Vasya in Fedya odplačala posojilo, enaka ob upoštevanju dejavnikov, ki so nam znani? Z vidika zdrave logike seveda ne, ne more. Tako bo Vasya plačal 2.5% svoje plače na mesec za odplačilo posojila, Fedya pa skoraj 27,8%. Tudi v grafu 2 »Razvrstitev strank« vidimo, da je Vasja veliko dlje od črte, ki ločuje razrede, kot Fedja. In končno vemo, da funkcija Žvečenje logistične regresije za Vasya in Fedya ima različne vrednosti: 4.24 za Vasya in 1.0 za Fedya. Zdaj, če bi Fedja na primer zaslužil za red velikosti več ali prosil za manjše posojilo, bi bile verjetnosti odplačila posojila za Vasjo in Fedjo podobne. Z drugimi besedami, linearne odvisnosti ni mogoče preslepiti. In če bi dejansko izračunali kvote Žvečenje logistične regresije, in jih nismo vzeli iz nič, bi lahko mirno rekli, da naše vrednote Žvečenje logistične regresije nam najbolje omogočajo, da ocenimo verjetnost odplačila posojila s strani posameznega posojilojemalca, ker pa smo se strinjali, da predpostavimo, da je določitev koeficientov Žvečenje logistične regresije je bilo izvedeno po vseh pravilih, potem bomo predpostavili tako - naši koeficienti nam omogočajo boljšo oceno verjetnosti :)

Vendar smo se oddaljili. V tem razdelku moramo razumeti, kako se določi vektor uteži Žvečenje logistične regresije, ki je nujen za oceno verjetnosti odplačevanja posojila s strani posameznega posojilojemalca.

Naj na kratko povzamemo, s kakšnim arzenalom gremo iskati kvote Žvečenje logistične regresije:

1. Predpostavljamo, da je razmerje med ciljno spremenljivko (vrednostjo napovedi) in dejavnikom, ki vpliva na rezultat, linearno. Zaradi tega se uporablja funkcija linearne regresije vrste Žvečenje logistične regresije, katerega črta deli objekte (odjemalce) v razrede Žvečenje logistične regresije и Žvečenje logistične regresije ali Žvečenje logistične regresije (stranke, ki so sposobne odplačati kredit in tiste, ki niso). V našem primeru ima enačba obliko Žvečenje logistične regresije.

2. Uporabljamo inverzna logit funkcija vrste Žvečenje logistične regresije za določitev verjetnosti, da predmet pripada razredu Žvečenje logistične regresije.

3. Naš nabor za usposabljanje obravnavamo kot izvedbo posplošenega Bernoullijeve sheme, to pomeni, da se za vsak predmet generira naključna spremenljivka, ki z verjetnostjo Žvečenje logistične regresije (za vsak objekt svojo) ima z verjetnostjo vrednost 1 in Žvečenje logistične regresije - 0.

4. Vemo, kaj moramo povečati funkcija verjetnosti vzorca ob upoštevanju sprejetih dejavnikov, tako da razpoložljivi vzorec postane najbolj verjeten. Z drugimi besedami, izbrati moramo parametre, pri katerih bo vzorec najbolj verjeten. V našem primeru je izbrani parameter verjetnost odplačila kredita Žvečenje logistične regresije, kar pa je odvisno od neznanih koeficientov Žvečenje logistične regresije. Torej moramo najti tak vektor uteži Žvečenje logistične regresije, pri katerem bo verjetnost vzorca največja.

5. Vemo, kaj je treba povečati vzorčne funkcije verjetnosti lahko uporabite metoda največje verjetnosti. In poznamo vse zapletene trike za delo s to metodo.

Tako se izkaže, da gre za večstopenjsko potezo :)

Ne pozabite, da smo na samem začetku članka želeli izpeljati dve vrsti funkcij izgube Logistična izguba odvisno od tega, kako so označeni objektni razredi. Tako se je zgodilo, da so pri klasifikacijskih problemih z dvema razredoma razredi označeni kot Žvečenje logistične regresije и Žvečenje logistične regresije ali Žvečenje logistične regresije. Odvisno od zapisa bo imel izhod ustrezno funkcijo izgube.

Primer 1. Razvrščanje predmetov v Žvečenje logistične regresije и Žvečenje logistične regresije

Prej pri ugotavljanju verjetnosti vzorca, v katerem je bila verjetnost odplačila dolga s strani posojilojemalca izračunana na podlagi faktorjev in danih koeficientov. Žvečenje logistične regresijesmo uporabili formulo:

Žvečenje logistične regresije

Pravzaprav Žvečenje logistične regresije je pomen funkcije logističnega odziva Žvečenje logistične regresije za dani vektor uteži Žvečenje logistične regresije

Potem nam nič ne preprečuje, da funkcijo verjetnosti vzorca zapišemo na naslednji način:

Žvečenje logistične regresije

Dogaja se, da je nekaterim analitikom začetnikom včasih težko takoj razumeti, kako deluje ta funkcija. Poglejmo si 4 kratke primere, ki bodo razjasnili vse:

1. če Žvečenje logistične regresije (tj. glede na učni vzorec objekt spada v razred +1) in naš algoritem Žvečenje logistične regresije določa verjetnost razvrstitve predmeta v razred Žvečenje logistične regresije enako 0.9, potem bo ta del vzorčne verjetnosti izračunan na naslednji način:

Žvečenje logistične regresije

2. če Žvečenje logistične regresijeIn Žvečenje logistične regresije, potem bo izračun tak:

Žvečenje logistične regresije

3. če Žvečenje logistične regresijeIn Žvečenje logistične regresije, potem bo izračun tak:

Žvečenje logistične regresije

4. če Žvečenje logistične regresijeIn Žvečenje logistične regresije, potem bo izračun tak:

Žvečenje logistične regresije

Očitno je, da bo funkcija verjetnosti maksimirana v primerih 1 in 3 ali v splošnem primeru - s pravilno ugibanimi vrednostmi verjetnosti dodelitve predmeta razredu Žvečenje logistične regresije.

Zaradi dejstva, da pri določanju verjetnosti dodelitve predmeta razredu Žvečenje logistične regresije Samo koeficientov ne poznamo Žvečenje logistične regresije, potem jih bomo poiskali. Kot je navedeno zgoraj, je to optimizacijski problem, pri katerem moramo najprej najti odvod funkcije verjetnosti glede na vektor uteži Žvečenje logistične regresije. Vendar je najprej smiselno, da si nalogo poenostavimo: poiskali bomo izpeljanko logaritma funkcije verjetnosti.

Žvečenje logistične regresije

Zakaj po logaritmu, v funkcije logistične napake, smo spremenili znak iz Žvečenje logistične regresije o Žvečenje logistične regresije. Vse je preprosto, ker je pri problemih ocenjevanja kakovosti modela običajno minimizirati vrednost funkcije, smo desno stran izraza pomnožili z Žvečenje logistične regresije in v skladu s tem namesto maksimiranja zdaj minimiziramo funkcijo.

Pravzaprav je bila ravno zdaj, pred vašimi očmi, funkcija izgube skrbno izpeljana - Logistična izguba za komplet za usposabljanje z dvema razredoma: Žvečenje logistične regresije и Žvečenje logistične regresije.

Zdaj, da bi našli koeficiente, moramo najti samo odvod funkcije logistične napake in nato z uporabo numeričnih optimizacijskih metod, kot je gradientni spust ali stohastični gradientni spust, izberite najbolj optimalne koeficiente Žvečenje logistične regresije. Toda glede na precejšen obseg članka je predlagano, da diferenciacijo izvedete sami ali pa bo to tema za naslednji članek z veliko aritmetike brez tako podrobnih primerov.

Primer 2. Razvrščanje predmetov v Žvečenje logistične regresije и Žvečenje logistične regresije

Tu bo pristop enak kot pri razredih Žvečenje logistične regresije и Žvečenje logistične regresije, ampak sama pot do izhoda funkcije izgube Logistična izguba, bo bolj okrašena. Začnimo. Za funkcijo verjetnosti bomo uporabili operator "če, potem...". To je, če Žvečenje logistične regresijePredmet th pripada razredu Žvečenje logistične regresije, potem za izračun verjetnosti vzorca uporabimo verjetnost Žvečenje logistične regresije, če predmet pripada razredu Žvečenje logistične regresije, potem nadomestimo z verjetnostjo Žvečenje logistične regresije. Tako izgleda funkcija verjetnosti:

Žvečenje logistične regresije

Naj na prste opišemo, kako deluje. Razmislimo o 4 primerih:

1. če Žvečenje logistične regresije и Žvečenje logistične regresije, potem bo verjetnost vzorčenja "šla" Žvečenje logistične regresije

2. če Žvečenje logistične regresije и Žvečenje logistične regresije, potem bo verjetnost vzorčenja "šla" Žvečenje logistične regresije

3. če Žvečenje logistične regresije и Žvečenje logistične regresije, potem bo verjetnost vzorčenja "šla" Žvečenje logistične regresije

4. če Žvečenje logistične regresije и Žvečenje logistične regresije, potem bo verjetnost vzorčenja "šla" Žvečenje logistične regresije

Očitno je, da v primerih 1 in 3, ko sta bili verjetnosti pravilno določeni z algoritmom, funkcija verjetnosti bo maksimiziran, to je točno to, kar smo želeli dobiti. Vendar je ta pristop precej okoren in v nadaljevanju bomo razmislili o bolj kompaktnem zapisu. Toda najprej logaritmirajmo verjetnostno funkcijo s spremembo predznaka, saj jo bomo sedaj minimizirali.

Žvečenje logistične regresije

Namesto tega zamenjajmo Žvečenje logistične regresije izraz Žvečenje logistične regresije:

Žvečenje logistične regresije

Poenostavimo pravi izraz pod logaritmom z uporabo preprostih aritmetičnih tehnik in dobimo:

Žvečenje logistične regresije

Zdaj je čas, da se znebite operaterja "če, potem...". Upoštevajte, da ko predmet Žvečenje logistične regresije spada v razred Žvečenje logistične regresije, nato v izrazu pod logaritmom, v imenovalcu, Žvečenje logistične regresije dvignjen na moč Žvečenje logistične regresije, če predmet pripada razredu Žvečenje logistične regresije, potem se $e$ dvigne na potenco Žvečenje logistične regresije. Zato lahko zapis za diplomo poenostavimo tako, da oba primera združimo v enega: Žvečenje logistične regresije. Potem funkcija logistične napake bo imel obliko:

Žvečenje logistične regresije

V skladu s pravili logaritma ulomek obrnemo in izpišemo znak "Žvečenje logistične regresije" (minus) za logaritem dobimo:

Žvečenje logistične regresije

Tukaj je funkcija izgube logistična izguba, ki se uporablja v učnem nizu s predmeti, dodeljenimi razredom: Žvečenje logistične regresije и Žvečenje logistične regresije.

No, na tej točki se poslovim in zaključimo članek.

Žvečenje logistične regresije Avtorjevo prejšnje delo je "Prenos enačbe linearne regresije v matrično obliko"

Pomožni materiali

1. Literatura

1) Uporabljena regresijska analiza / N. Draper, G. Smith - 2. izd. – M.: Finance in statistika, 1986 (prevod iz angleščine)

2) Teorija verjetnosti in matematična statistika / V.E. Gmurman - 9. izd. - M.: Višja šola, 2003

3) Teorija verjetnosti / N.I. Chernova - Novosibirsk: Novosibirska državna univerza, 2007

4) Poslovna analitika: od podatkov do znanja / Paklin N. B., Oreškov V. I. - 2. izd. — Sankt Peterburg: Peter, 2013

5) Podatkovna znanost Podatkovna znanost iz nič / Joel Gras - St. Petersburg: BHV Petersburg, 2017

6) Praktična statistika za strokovnjake za podatkovno znanost / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018

2. Predavanja, tečaji (video)

1) Bistvo metode največje verjetnosti, Boris Demeshev

2) Metoda največje verjetnosti v zveznem primeru, Boris Demeshev

3) Logistična regresija. Odprti tečaj ODS, Yury Kashnitsky

4) Predavanje 4, Evgeny Sokolov (iz 47 minut videa)

5) Logistična regresija, Vjačeslav Voroncov

3. Internetni viri

1) Linearna klasifikacija in regresijski modeli

2) Kako preprosto razumeti logistično regresijo

3) Funkcija logistične napake

4) Neodvisni testi in Bernoullijeva formula

5) Balada o MMP

6) Metoda največje verjetnosti

7) Formule in lastnosti logaritmov

8) Zakaj številka Žvečenje logistične regresije?

9) Linearni klasifikator

Vir: www.habr.com

Dodaj komentar