Razpravljanje logistične regresije

Razpravljanje logistične regresije

V tem članku bomo razdelali teoretične izpeljanke transformacije funkcije linearne regresije u funkcije obratne logit transformacije (drugače rečeno, funkcijo logistične reakcije). Nato bomo z uporabo arsenala metode maksimalne verjetnosti, v skladu z modelom logistične regresije, izpeljali funkcijo izgube Logistic Loss, oziroma drugimi besedami, definirali bomo funkcijo, s katero v modelu logistične regresije izbiramo parametre vektorja teže Razpravljanje logistične regresije.

Načrt članka:

  1. Ponovili bomo o linearni odvisnosti med dvema spremenljivkama
  2. Ugotovili bomo potrebo po transformaciji funkcije linearne regresije Razpravljanje logistične regresije u funkcije logistične reakcije Razpravljanje logistične regresije
  3. Izvedli bomo transformacije in izpeljali funkcije logistične reakcije
  4. Poskusili bomo razumeti, zakaj je metoda najmanjših kvadratov slaba pri izbiri parametrov Razpravljanje logistične regresije funkcije Logistic Loss
  5. Uporabljamo metod maksimalne verovatnoće za ugotavljanje funkcije izbire parametrov Razpravljanje logistične regresije:

    5.1. Primer 1: funkcija Logistic Loss za objekte z oznakami razredov 0 in 1:

    Razpravljanje logistične regresije

    5.2. Primer 2: funkcija Logistic Loss za objekte z oznakami razredov -1 in +1:

    Razpravljanje logistične regresije


Članek je poln preprostih primerov, kjer je vse izračune enostavno izvesti ustno ali na papirju, v nekaterih primerih pa je morda potreben kalkulator. Zato se pripravite 🙂

Ta članek je bolj namenjen podatkovnim znanstvenikom z osnovnim poznavanjem temeljev strojnega učenja.

V članku bo tudi koda za risanje grafikonov in izračune. Vsa koda je napisana v jeziku python 2.7. Vnaprej naj povem o 'novosti' uporabljene različice – to je eden od pogojev za uspešno zaključitev znanega tečaja od Yandex na prav tako znani spletni platformi za spletno izobraževanje Coursera, in, kot se lahko domisli, je bil material pripravljen na podlagi tega tečaja.

01. Linearna odvisnost

Popolnoma smiselno je postaviti vprašanje – kakšna povezava je med linearno odvisnostjo in logistično regresijo?

Vse je enostavno! Logistična regresija je ena izmed modelov, ki spadajo pod linearni klasifikator. Preprosto povedano, naloga linearnega klasifikatorja je napovedovanje ciljih vrednosti Razpravljanje logistične regresije iz spremenljivk (regressorjev) Razpravljanje logistične regresije. Pri tem se domneva, da je odvisnost med značilnostmi Razpravljanje logistične regresije in ciljnimi vrednostmi Razpravljanje logistične regresije linearna. Od tod izhaja tudi ime klasifikatorja — linearni. Če malo poenostavimo, je v osnovi modela logistične regresije predpostavka o obstoju linearne odvisnosti med značilnostmi. Razpravljanje logistične regresije in ciljnimi vrednostmi Razpravljanje logistične regresijeTukaj je — povezava.

V studiu je prvi primer, ki se pravilno nanaša na neposredno odvisnost raziskovanih količin. Med pripravo članka sem naletel na primer, ki je mnogim že znan — odvisnost toka od napetosti. („Praktična regresijska analiza“, N.Dreper, G.Smith). Tudi tukaj ga bomo obravnavali.

U skladu s z Ohmovim zakonom:

Razpravljanje logistične regresije, gde Razpravljanje logistične regresije — tok, Razpravljanje logistične regresije — napetost, Razpravljanje logistične regresije — upornost.

Če ne bi poznali Ohmovega zakona, bi lahko odvisnost našli empirično, tako da bi spremenili Razpravljanje logistične regresije in izmerili Razpravljanje logistične regresije, pri čemer bi Razpravljanje logistične regresije ostalo nespremenjeno. Takrat bi videli, da graf odvisnosti Razpravljanje logistične regresije od Razpravljanje logistične regresije prikazuje bolj ali manj ravno črto, ki poteka skozi izhodišče. Rekli smo „bolj ali manj“, saj, čeprav je odvisnost dejansko točna, lahko vsebuje naše meritve majhne napake, zato točke na grafu morda ne bodo točno na črti, temveč bodo razpršene okoli nje naključno.

Graf 1 „Odvisnost Razpravljanje logistične regresije od Razpravljanje logistične regresije»

Razpravljanje logistične regresije

Koda za risanje grafa

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

02. Potreba po pretvorbah v enačbi linearne regresije

Poglejmo še en primer. Predstavljajmo si, da delamo v banki in imamo nalogo določiti verjetnost vračila kredita s strani posojilojemalca, odvisno od nekaterih dejavnikov. Za poenostavitev problema bomo obravnavali le dve dejavniki: mesečno plačo posojilojemalca in mesečni znesek odplačila kredita.

Naloga je zelo hipotetična, vendar bomo na tem primeru lahko razumeli, zakaj samo uporaba funkcije linearne regresije, ni dovolj, ter ugotovili, katere pretvorbe funkcije je potrebno izvesti.

Vrnilimo se k primeru. Jasno je, da višja je plača, več lahko kreditojemalec mesečno nameni za odplačilo posojila. Pri tem je za določen razpon plač ta odvisnost povsem linearna. Recimo, da vzamemo razpon plač od 60.000 R do 200.000 R in domnevamo, da je odvisnost mesečnega plačila od višine plače v tem razponu linearna. Predpostavimo, da je bilo za ta določen razpon plač ugotovljeno, da razmerje med plačo in plačilom ne sme pasti pod 3, poleg tega pa mora imeti kreditojemalec še 5.000 R na voljo. Le v tem primeru bomo menili, da bo kreditojemalec vrnil posojilo banki. Tako bo enačba linearne regresije imela naslednjo obliko:

Razpravljanje logistične regresije

kjer Razpravljanje logistične regresije, Razpravljanje logistične regresije, Razpravljanje logistične regresije, Razpravljanje logistične regresije — plača Razpravljanje logistične regresije-ega kreditojemalca, Razpravljanje logistične regresije — plačilo za posojilo Razpravljanje logistične regresije-ega kreditojemalca.

Če v enačbo vstavimo plačo in plačilo za posojilo s fiksnimi parametri, Razpravljanje logistične regresije lahko sprejmemo odločitev o odobritvi ali zavrnitvi posojila.

Pogledamo vnaprej in opazimo, da bo pri danih parametrih Razpravljanje logistične regresije funkcija linearne regresije, uporabljena v logistični funkciji odgovora, dala visoke vrednosti, ki bodo otežile izračune glede verjetnosti odplačila posojila. Zato predlagamo, da naše koeficiente zmanjšamo, recimo, za 25.000-krat. Od te pretvorbe v koeficientih se odločitev o odobritvi posojila ne bo spremenila. Zapomnimo si ta trenutek za naprej, zdaj pa, da bo še bolj jasno, o čem govorimo, poglejmo situacijo s tremi potencialnimi kreditojemalci.

Tabela 1 »Potencialni kreditojemalci«

Razpravljanje logistične regresije

Koda za oblikovanje tabele

import pandas as pd

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

data = {'Kreditojemalec':np.array(['Vasya', 'Fedya', 'Lesha']), 
        'Plača':np.array([120000,180000,210000]),
       'Plačilo':np.array([3000,50000,70000])}

df = pd.DataFrame(data)

df['f(w,x)'] = w_0 + df['Plača']*w_1 + df['Plačilo']*w_2

decision = []
for i in df['f(w,x)']:
    if i > 0:
        dec = 'Odobreno'
        decision.append(dec)
    else:
        dec = 'Zavrnitev'
        decision.append(dec)
        
df['Odločitev'] = decision

df[['Kreditojemalec', 'Plača', 'Plačilo', 'f(w,x)', 'Odločitev']]

Na podlagi podatkov iz tabele Vasya, ki ima plačo 120.000 R, želi pridobiti posojilo, da bi ga mesečno odplačeval s 3.000 R. Določili smo, da mora biti plača Vasye trikrat večja od višine plačila, da bi bilo posojilo odobreno, in da mu mora ostati še 5.000 R. Ta zahtevek Vasya izpolnjuje: Razpravljanje logistične regresije. Ostaja se celo 106.000R. Kljub temu da smo pri izračunu Razpravljanje logistične regresije zmanjšali koeficiente Razpravljanje logistične regresije za 25.000-krat, je rezultat enak — kredit je lahko odobren. Fedor bo prav tako prejel kredit, medtem ko bo Aleksej, kljub temu da zasluži največ, moral umiriti svoje apetite.

Narisi graf za tak primer.

Graf 2 „Klasiifikacija posojilojemalcev“

Razpravljanje 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 = 'Odločitev - Kredit odobren')
plt.plot(df[df['Decision'] == 'Refusal']['Salary'], df[df['Decision'] == 'Refusal']['Payment'], 
         's', color = 'red', markersize = 12, label = 'Odločitev - Kredit zavrnjen')
plt.xlabel('Plača', size = 16)
plt.ylabel('Plačilo', size = 16)
plt.legend(prop = {'size': 14})
plt.show()

Torej, naša črta, zgrajena v skladu s funkcijo Razpravljanje logistične regresije, ločuje 'slabe' posojilojemalce od 'dobrih'. Tisti posojilojemalci, katerih želje se ne ujemajo z zmožnostmi, so nad črto (Aleksej), tisti, ki so sposobni vrniti kredit, pa so pod črto (Vasja in Fedor). Drugače rečeno — naša črta deli posojilojemalce na dve plasti. Oznacimo jih na naslednji način: v razred Razpravljanje logistične regresije uvrstimo tiste posojilojemalce, ki bodo verjetno vrnili kredit, v razred Razpravljanje logistične regresije ili Razpravljanje logistične regresije uvrstimo tiste posojilojemalce, ki verjetno ne bodo mogli vrniti kredita.

Povzamemo zaključke iz tega preprostega primera. Vzemimo točko Razpravljanje logistične regresije in, nadomeščajoč koordinate točke v ustrezno enačbo črte Razpravljanje logistične regresije, obravnavamo tri možnosti:

  1. Če je točka pod črto in jo uvrstimo v razred Razpravljanje logistične regresije, bo vrednost funkcije Razpravljanje logistične regresije pozitivna od Razpravljanje logistične regresije do Razpravljanje logistične regresije. To pomeni, da lahko rečemo, da se verjetnost poplačila kredita giblje v okviru Razpravljanje logistične regresije. Večja kot je vrednost funkcije, višja je verjetnost.
  2. Če je točka nad črto in jo uvrstimo v razred Razpravljanje logistične regresije ili Razpravljanje logistične regresije, bo vrednost funkcije negativna od Razpravljanje logistične regresije do Razpravljanje logistične regresije. Takrat bomo menili, da se verjetnost poplačila dolga giblje v okviru Razpravljanje logistične regresije in, večja kot je absolutna vrednost funkcije, večje je naše zaupanje.
  3. Točka se nahaja na črti, na meji med dvema razredoma. V tem primeru bo vrednost funkcije Razpravljanje logistične regresije enaka Razpravljanje logistične regresije in verjetnost poplačila kredita je enaka Razpravljanje logistične regresije.

Zdaj pa si predstavljamo, da nimamo dveh dejavnikov, ampak desetine, posojilojemalcev ne tri, temveč tisoče. Takrat namesto črte ne bo. m-мерная плоскость и коэффициенты Razpravljanje logistične regresije не будут взяты с потолка, а будут выведены по всем правилам, на основе накопленных данных о заемщиках, вернувших или не вернувших кредит. И действительно, заметьте, мы сейчас отбираем заемщиков при уже известных коэффициентах Razpravljanje logistične regresije. На самом деле, задача модели логистической регрессии как раз и состоит в том, чтобы определить параметры Razpravljanje logistične regresije, при которых значение функции потерь Logistic Loss будет стремиться к минимальному. Но о том, как рассчитывается вектор Razpravljanje logistične regresije, мы еще узнаем в 5-м разделе статьи. А пока вернемся на землю обетованную — к нашему банкиру и трем его клиентам.

Zahvaljujoč funkciji Razpravljanje logistične regresije мы знаем, кому можно дать кредит, а кому нужно отказать. Но с такой информацией к директору идти нельзя, ведь от нас хотели получить вероятность возврата кредита каждым заемщиком. Что делать? Ответ простой — нам нужно как-то преобразовать функцию Razpravljanje logistične regresije, значения которой лежат в диапазоне Razpravljanje logistične regresije на функцию, значения которой будут лежать в диапазоне Razpravljanje logistične regresije. И такая функция существует, ее называют функцией логистического отклика или обратного логит-преобразования. Знакомьтесь:

Razpravljanje logistične regresije

Посмотрим по шагам, как получается функция логистического отклика. Отметим, что шагать мы будем в обратную сторону, т.е. мы предположим, что нам известно значение вероятности, которое лежит в пределах от Razpravljanje logistične regresije do Razpravljanje logistične regresije и далее мы будем «раскручивать» это значение на всю область чисел от Razpravljanje logistične regresije do Razpravljanje logistične regresije.

03. Выводим функцию логистического отклика

Шаг 1. Переведем значения вероятности в диапазон Razpravljanje logistične regresije

На время трансформации функции Razpravljanje logistične regresije u funkcije logistične reakcije Razpravljanje logistične regresije мы оставим в покое нашего кредитного аналитика, а вместо этого пройдемся по букмекерским конторам. Нет, конечно, ставки делать мы не будем, все что нас там интересует, это смысл выражения, например, шанс 4 к 1. Шансы, знакомые всем делающим ставки игрокам, являются соотношением «успехов» к «неуспехам». С точки зрения вероятностей, шансы — это вероятность наступления события, деленная на вероятность того, что событие не произойдет. Запишем формулу шанса наступления события Razpravljanje logistične regresije:

Razpravljanje logistične regresije

, gde Razpravljanje logistične regresije — вероятность наступления события, Razpravljanje logistične regresije — вероятность НЕ наступления события

Например, если вероятность того, что молодой, сильный и резвый конь по прозвищу «Ветерок» обойдет на скачках старую и дряблую старушку по кличке «Матильда», равняется Razpravljanje logistične regresije, to so bodo možnosti uspeha „Veterka“ Razpravljanje logistične regresije k Razpravljanje logistične regresije Razpravljanje logistične regresije in obratno, poznamo možnosti, zato ne bo težko izračunati verjetnosti Razpravljanje logistične regresije:

Razpravljanje logistične regresije

Tako smo se naučili „prevajati“ verjetnost v možnosti, ki lahko dobijo vrednosti od Razpravljanje logistične regresije do Razpravljanje logistične regresije. Storimo še en korak in se naučimo „prevajati“ verjetnost na celo številsko premico od Razpravljanje logistične regresije do Razpravljanje logistične regresije.

Korak 2. Pretvorimo vrednosti verjetnosti v razpon Razpravljanje logistične regresije

Ta korak je zelo preprost — logaritmiramo možnosti na osnovo števila Eulerja Razpravljanje logistične regresije in dobimo:

Razpravljanje logistične regresije

Zdaj vemo, da če Razpravljanje logistične regresije, potem bo vrednost Razpravljanje logistične regresije zelo lahka za izračunati in, kar je pomembno, mora biti pozitivna: Razpravljanje logistične regresije. Tako je.

Iz radovednosti preverimo, da če Razpravljanje logistične regresije, potem pričakujemo, da bomo videli negativno vrednost Razpravljanje logistične regresije. Preverimo: Razpravljanje logistične regresije. Vse drži.

Zdaj vemo, kako pretvoriti vrednost verjetnosti od Razpravljanje logistične regresije do Razpravljanje logistične regresije na celo številsko premico od Razpravljanje logistične regresije do Razpravljanje logistične regresije. V naslednjem koraku bomo naredili vse obratno.

Za zdaj pa opazimo, da v skladu s pravili logaritimiranja, poznajoč vrednost funkcije Razpravljanje logistične regresije, lahko izračunamo možnosti:

Razpravljanje logistične regresije

Ta način določanja možnosti nam bo v pomoč v naslednjem koraku.

Korak 3. Izpeljimo formulo za določitev Razpravljanje logistične regresije

Torej, naučili smo se, da poznamo Razpravljanje logistične regresije, najdemo vrednosti funkcije Razpravljanje logistične regresije. Vendar pa v resnici potrebujemo vse natančno obratno — poznajoč vrednost Razpravljanje logistične regresije najdemo Razpravljanje logistične regresije. Za to se obrnimo na pojem obratne funkcije možnosti, po kateri:

Razpravljanje logistične regresije

V članku ne bomo izpeljali zgoraj omenjene formule, a preverili bomo s številkami iz zgornjega primera. Vemo, da pri možnostih 4 proti 1 (Razpravljanje logistične regresije), verjetnost dogodka znaša 0.8 (Razpravljanje logistične regresije). Naredimo zamenjavo: Razpravljanje logistične regresije. To se ujema z našimi izračuni, ki smo jih izvedli prej. Nadaljujemo.

V prejšnjem koraku smo izpeljali, da Razpravljanje logistične regresije, zato lahko naredimo zamenjavo v obratni funkciji možnosti. Dobimo:

Razpravljanje logistične regresije

Razdelimo tako števec kot imenovalec na Razpravljanje logistične regresije, torej:

Razpravljanje logistične regresije

Za vsak slučaj, da se prepričamo, da nismo nikjer naredili napake, bomo izvedli še en majhen test. V koraku 2 smo za Razpravljanje logistične regresije določili, da Razpravljanje logistične regresije. Potem, če vrednost Razpravljanje logistične regresije vstavimo v funkcijo logistične odzivnosti, pričakujemo, da bomo dobili Razpravljanje logistične regresije. Vstavljamo in dobimo: Razpravljanje logistične regresije

Čestitam, spoštovani bralec, pravkar smo izpeljali in testirali funkcijo logistične odzivnosti. Poglejmo graf funkcije.

Graf 3 „Funkcija logistične odzivnosti“

Razpravljanje 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 se lahko srečamo tudi z imenom te funkcije kot sigmoidna funkcija. Na grafu je dobro opaziti, da se večina sprememb verjetnosti pripadnosti objekta razredu zgodi v relativno majhnem obsegu Razpravljanje logistične regresije, nekje od Razpravljanje logistične regresije do Razpravljanje logistične regresije.

Predlagam, da se vrnemo k našemu analitiku kreditov in mu pomagamo pri izračunu verjetnosti vračila kreditov, sicer tvega, da bo ostal brez bonusa 🙂

Tabela 2 «Potencialni posojilojemniki»

Razpravljanje logistične regresije

Koda za oblikovanje tabele

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

df[['Posojilojemalec', 'Plača', 'Plačilo', 'f(w,x)', 'Odločitev', 'Verjetnost']]

Torej, verjetnost vračila kredita smo določili. Na splošno se to zdi resnično.

Dejansko je verjetnost, da bo Vašek s plačo 120.000R lahko mesečno vrnil 3.000R banki, blizu 100%. Mimogrede, moramo razumeti, da lahko banka Odrejku odobri kredit, če je politika banke, na primer, odobriti kredite strankam z verjetnostjo vračila kredita večjo od, recimo, 0.3. Samo v tem primeru bo banka oblikovala večji rezervat za morebitne izgube.

Prav tako je potrebno omeniti, da je razmerje med plačo in plačilom vsaj 3 in z rezervo 5.000R vzeto iz zraka. Zato niso mogli uporabiti v prvotni obliki vektor tež. Razpravljanje logistične regresije. Potrebno je bilo močno zmanjšati koeficiente in v takem primeru smo vsak koeficient delili s 25.000, torej v bistvu smo prilagodili rezultat. Toda to je bilo storjeno namerno, da bi poenostavili razumevanje gradiva v začetni fazi. V resničnem življenju ne bo potrebno izmišljati in prilagajati koeficientov, ampak jih iskanje. Ravno v naslednjih odstavkih članka bomo izpeljali enačbe, s pomočjo katerih se določijo parametri. Razpravljanje logistične regresije.

04. Metoda najmanjših kvadratov pri določitvi vektorja tež. Razpravljanje logistične regresije v funkciji logistične odzivnosti.

Takšna metoda iskanja vektorja tež nam je že znana. Razpravljanje logistične regresije, in sicer metoda najmanjših kvadratov (MNK) in zakaj je potem ne bi uporabili pri nalogah binarne klasifikacije? Resnično, nič ne ovira uporabe. MNK, le da ta način v nalogah klasifikacije daje manj natančne rezultate, kot Logistic LossZa tem stoji teoretično utemeljitev. Poglejmo najprej en preprost primer.

Recimo, da naše modele (ki uporabljajo MSE in Logistic Loss) že začenjajo iskanje vektorja teže Razpravljanje logistične regresije in smo prenehali s izračunom na neki točki. Nič hudega, ali je sredi, na koncu ali na začetku, glavna stvar je, da imamo že neke vrednosti vektorja teže in recimo, da v tej točki vektorja teže Razpravljanje logistične regresije za oba modela nimata razlik. Potem vzamemo dobljene teže in jih vstavimo v funkcije logistične reakcije (Razpravljanje logistične regresije) za nek objekt, ki spada v razred Razpravljanje logistične regresije. Preučimo dva primera, ko na podlagi izbranega vektorja teže naš model močno zgreši in obratno — model je zelo prepričan, da objekt spada v razred Razpravljanje logistične regresije. Poglejmo, kakšne kazni bodo "dodeljene" pri uporabi MNK in Logistic Loss.

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 z grobo napako — model uvršča objekt v razred Razpravljanje logistične regresije s verjetnostjo 0,01

Kazni pri uporabi MNK bodo znašale:
Razpravljanje logistične regresije

Kazni pri uporabi Logistic Loss bodo znašale:
Razpravljanje logistične regresije

Primer z močno prepričanjem — model uvršča objekt v razred Razpravljanje logistične regresije s verjetnostjo 0,99

Kazni pri uporabi MNK bodo znašale:
Razpravljanje logistične regresije

Kazni pri uporabi Logistic Loss bodo znašale:
Razpravljanje logistične regresije

Ta primer dobro ilustrira, da pri grobi napaki funkcija izgube Log Loss kaznuje model znatno močneje kot MSE. Zdaj poglejmo, kakšne so teoretične predpostavke za uporabo funkcije izgube Log Loss v nalogah klasifikacije.

05. Metoda maksimuma verjetnosti in logistična regresija

Kot je bilo obljubljeno na začetku, članek obiluje s preprostimi primeri. V studiu je nov primer in stari gostje — posojilojemalci banke: Vaša, Fedor in Aleksej.

Za vsak slučaj, pred nadaljevanjem primera, opominjam, da v življenju delamo z učnimi vzorci tisočih ali milijonov objektov z desetimi ali stotimi značilnostmi. Tukaj pa so številke izbrane, da jih lahko enostavno dojame začetnik v podatkovni znanosti.

Vrnem se nazaj k primeru. Predstavljajmo si, da je direktor banke sklenil odobriti kredit vsem, ki ga potrebujejo, kljub temu da je algoritem svetoval, naj ga ne izda Leši. In tako je minilo dovolj časa in razbrali smo, kdo od treh junakov je vrnil kredit in kdo ne. Kot smo tudi pričakovali: Vaša in Fedya sta vrnila kredit, Leša pa ne. Zdaj si zamišljamo, da bo ta rezultat za nas nova učna skupina in da hkrati nimamo podatkov o dejavnikih, ki vplivajo na verjetnost odplačila kredita (plača posojilojemalca, znesek mesečnega obroka). Potem lahko intuitivno domnevamo, da vsak tretji posojilojemalec ne vrne kredita banki, oziroma je verjetnost vračila kredita naslednjemu posojilojemalcu Razpravljanje logistične regresije. To intuitivno domnevanje ima teoretično potrditev in temelji na metodi največje verjetnosti, ki jo pogosto imenujemo princip največje verjetnosti.

Najprej se seznanimo s pojmi.

Verjetnost vzorca je verjetnost, da dobimo natančno tak vzorec, natančno take opazovanja / rezultate, tj. produkt verjetnosti pridobitve vsakega izmed rezultatov vzorca (na primer, odplačan ali neodplačan kredit Vasya, Fedya in Leše hkrati).

Funkcija verjetnosti povezuje verjetnost vzorca s vrednostmi parametrov porazdelitve.

V našem primeru učni vzorec predstavlja generalizirano Bernoullijevo shemo, v kateri naključna spremenljivka sprejme le dve vrednosti: Razpravljanje logistične regresije ili Razpravljanje logistične regresije. Zato lahko verjetnost vzorca zapišemo kot funkcijo verjetnosti parametra Razpravljanje logistične regresije takole:

Razpravljanje logistične regresije
Razpravljanje logistične regresije

Zgornji zapis lahko interpretiramo tako: skupna verjetnost, da bosta Vaša in Fedya odplačala kredit, je Razpravljanje logistične regresije, verjetnost, da Leša NE odplača kredita, pa je Razpravljanje logistične regresije (saj je šlo prav za NE odplačilo kredita), zato je skupna verjetnost vseh treh dogodkov enaka Razpravljanje logistične regresije.

Metod maksimalne verovatnoće - to je metoda ocenjevanja neznanega parametra z maksimizacijo funkcije verovatnoće. V našem primeru je potrebno najti tako vrednost Razpravljanje logistične regresije, pri kateri Razpravljanje logistične regresije doseže maksimum.

Od kod se je vlastně vzala myšlenka hledat hodnotu neznámého parametru, při které dosahuje funkce věrohodnosti maxima? Příčiny této myšlenky vycházejí z představy, že vzorek je jediným zdrojem znalostí o populaci. Vše, co víme o populaci, je obsaženo ve vzorku. Proto můžeme říci, že vzorek je nejpřesnějším odrazem populace, který máme k dispozici. Následně potřebujeme najít takový parametr, při kterém je stávající vzorek nejpravděpodobnější.

Zřejmé je, že se jedná o optimalizační úlohu, ve které je potřeba najít bod extrému funkce. Pro nalezení bodu extrému je nutné zvážit podmínku prvního řádu, tedy položit derivaci funkce rovnu nule a vyřešit rovnici vůči hledanému parametru. Nicméně hledání derivace součinu velkého množství faktorů může být zdlouhavé, a aby se tomu předešlo, existuje speciální technika — přechod k logaritmu. funkcije verovatnoće. Proč je takový přechod možný? Všimněme si, že hledáme nikoli samotný extrém funkceRazpravljanje logistične regresije, ale bod extrému, tedy to, jaká hodnota neznámého parametru Razpravljanje logistične regresije, pri kateri Razpravljanje logistične regresije dosahuje maxima. Při přechodu k logaritmu se bod extrému nemění (i když samotný extrém bude jiný), neboť logaritmus je monotónní funkce.

Pojďme tedy v souladu s výše uvedeným pokračovat v našem příkladu s úvěry od Vaši, Fedi a Leši. Nejprve přejdeme k logaritmu funkce věrohodnosti:

Razpravljanje logistične regresije

Nyní můžeme snadno diferenciovat výraz podle Razpravljanje logistične regresije:

Razpravljanje logistične regresije

A nakonec zvážíme podmínku prvního řádu — položíme derivaci funkce rovnu nule:

Razpravljanje logistične regresije

Takže naše intuitivní hodnocení pravděpodobnosti splácení úvěru Razpravljanje logistične regresije bylo teoreticky zdůvodněno.

Skvěle, ale co teď dělat s takovými informacemi? Pokud budeme předpokládat, že každý třetí dlužník nevrátí bance peníze, tak ta by nevyhnutelně zkrachovala. To je sice pravda, ale při hodnocení pravděpodobnosti splácení úvěru rovné Razpravljanje logistične regresije nismo upoštevali dejavnike, ki vplivajo na vračilo posojila: plačo posojilojemalca in znesek mesečnega plačila. Spomnimo se, da smo prej izračunali verjetnost vračila posojila za vsakega od strank ob upoštevanju teh dejavnikov. Logično je, da so verjetnosti drugačne od konstante, ki znaša Razpravljanje logistične regresije.

Določimo verjetnost vzorcev:

Koda za izračun verjetnosti vzorcev

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 'Verjetnost vzorca pri konstantni vrednosti p=2/3:', round(likelihood(y,p_const),3)

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

print 'Verjetnost vzorca pri izračunani vrednosti p:', round(likelihood(y,p_log_response),3)

Verjetnost vzorca pri konstantni vrednosti Razpravljanje logistične regresije:

Razpravljanje logistične regresije

Verjetnost vzorca pri izračunu verjetnosti vračila posojila ob upoštevanju dejavnikov Razpravljanje logistične regresije:

Razpravljanje logistične regresije
Razpravljanje logistične regresije

Verjetnost vzorca s verjetnostjo, izračunano glede na dejavnike, se je izkazala za višjo od verjetnosti pri konstantni vrednosti. Kaj to pomeni? To pomeni, da so znanja o dejavnikih omogočila natančnejše prilagajanje verjetnosti vračila posojila za vsakega od strank. Zato bo ob odobritvi novega posojila pravilneje uporabiti model ocenjevanja verjetnosti vračila dolga, ki je predlagan na koncu 3. poglavja članka.

Ampak takrat, če želimo maksimalizirati funkcijo verjetnosti vzorca, zakaj ne uporabiti kakšnega algoritma, ki bi za Vasjo, Fedi in Lešo na primer izdal verjetnosti 0.99, 0.99 in 0.01. Morda se bo tak algoritem dobro obnesel na učni vzorcu, saj bo približal vrednost verjetnosti vzorca k Razpravljanje logistične regresije, ampak, najprej, tak algoritem bo verjetno imel težave z generalizacijo, poleg tega pa algoritem zagotovo ne bo linearen. In če metode za boj proti prekomernemu učenju (prav tako slaba sposobnost generalizacije) očitno niso del načrta tega članka, se pod drugega točko podrobneje sprehodimo. Za to je dovolj odgovoriti na preprosto vprašanje. Lahko imata možnost odplačila posojila Vasja in Fedja enako, ob upoštevanju znanih dejstev? Z vidika zdrave pameti seveda ne, ne moreta. Tako bo Vasja za odplačilo posojila odnašal 2,5 % svoje plače na mesec, Fedja pa skoraj 27,8 %. Na grafu 2 'Klasifikacija strank' prav tako vidimo, da je Vasja precej dlje od črte, ki deli razrede, kot Fedja. In nazadnje, vemo, da funkcija Razpravljanje logistične regresije za Vasjo in Fedjo prevzema različne vrednosti: 4,24 za Vasjo in 1,0 za Fedjo. Če bi Fedja na primer zaslužil bistveno več ali bi prosil za manjše posojilo, bi bile verjetnosti odplačila posojila pri Vasji in Fedji podobne. Z drugimi besedami, linearne odvisnosti ne moremo prevarati. In če bi dejansko preračunali koeficiente Razpravljanje logistične regresije, ne pa jih vzeli s stropa, bi lahko mirno trdili, da naše vrednosti Razpravljanje logistične regresije najbolje ocenjujejo verjetnost odplačila posojila za vsakega posojilojemalca, toda ker smo se dogovorili, da je določitev koeficientov Razpravljanje logistične regresije potekalo v skladu z vsemi pravili, bomo to tudi upoštevali — naši koeficienti omogočajo dajanje najboljše ocene verjetnosti 🙂

Vendar smo se odmaknili od teme. V tem poglavju moramo razumeti, kako se določi vektor teže Razpravljanje logistične regresije, ki je potreben za oceno verjetnosti vračila posojila za vsakega posojilojemalca.

Na kratko povzamemo, s kakšnim arzenalom nastopamo pri iskanju koeficientov Razpravljanje logistične regresije:

1. Predpostavljamo, da je odvisnost med ciljno spremenljivko (napovedno vrednostjo) in faktorjem, ki vpliva na rezultat — linearna. Iz tega razloga se uporablja funkcija linearne regresije oblik Razpravljanje logistične regresije, katere črta deli objekte (stranke) na razrede Razpravljanje logistične regresije in Razpravljanje logistične regresije ili Razpravljanje logistične regresije (stranke, ki lahko odplačajo posojilo, in tiste, ki ne morejo). V našem primeru ima enačba obliko Razpravljanje logistične regresije.

2. Uporabljamo funkcijo obratne logit-transformacije oblik Razpravljanje logistične regresije za določitev verjetnosti pripadnosti objekta razredu Razpravljanje logistične regresije.

3. Našo učno izbiro obravnavamo kot uresničitev generalizirane Bernoulli schemes, meaning that for each object a random variable is generated that with a probability Razpravljanje logistične regresije (its own for each object) takes the value 1 and with a probability Razpravljanje logistične regresije – 0.

4. We know that we need to maximize funkcijo verjetnosti vzorca considering the accepted factors so that the existing sample becomes most plausible. In other words, we need to find parameters such that the sample is most plausible. In our case, the parameter we are looking for is the probability of loan repayment Razpravljanje logistične regresije, which in turn depends on unknown coefficients Razpravljanje logistične regresije. Therefore, we need to find such a weight vector Razpravljanje logistične regresije, for which the sample likelihood will be maximum.

5. We know how to maximize the likelihood function of the sample možete koristiti metod maksimalne verovatnoće. And we know all the clever tricks for working with this method.

This is how the intricate scheme turns out 🙂

Now, let's remember that at the very beginning of the article we wanted to derive two types of loss functions Logistic Loss depending on how the object classes are designated. It has become customary that in classification tasks with two classes, the classes are denoted as Razpravljanje logistične regresije in Razpravljanje logistične regresije ili Razpravljanje logistične regresije. Depending on the designation, the resulting loss function will correspond.

Case 1. Classification of objects into Razpravljanje logistične regresije in Razpravljanje logistične regresije

Earlier, when determining the sample likelihood, where the probability of debt repayment by the borrower was calculated based on factors and given coefficients Razpravljanje logistične regresije, we applied the formula:

Razpravljanje logistične regresije

In fact, Razpravljanje logistične regresije — this is the value of the logistic response function Razpravljanje logistične regresije given a specified weight vector Razpravljanje logistične regresije

Then nothing prevents us from writing the likelihood function of the sample as follows:

Razpravljanje logistične regresije

Sometimes, it happens that some novice analysts find it difficult to quickly understand how this function works. Let's consider 4 short examples that will clarify everything:

1. Если Razpravljanje logistične regresije (i.e., according to the training sample, an object belongs to class +1), and our algorithm Razpravljanje logistične regresije determines the probability of the object belonging to class Razpravljanje logistične regresije equal to 0.9, so this piece of the sample likelihood will be calculated as follows:

Razpravljanje logistične regresije

2. Если Razpravljanje logistične regresije, a Razpravljanje logistične regresije, thus the calculation will be as follows:

Razpravljanje logistične regresije

3. Если Razpravljanje logistične regresije, a Razpravljanje logistične regresije, thus the calculation will be as follows:

Razpravljanje logistične regresije

4. Если Razpravljanje logistične regresije, a Razpravljanje logistične regresije, thus the calculation will be as follows:

Razpravljanje logistične regresije

It is obvious that the likelihood function will be maximized in cases 1 and 3 or in general—in cases of correctly guessed probability values for the object belonging to the class Razpravljanje logistične regresije.

Due to the fact that when determining the probability of an object's class affiliation Razpravljanje logistične regresije mi niso znani samo koeficienti Razpravljanje logistične regresije, jih bomo iskali. Kot je bilo omenjena zgoraj, je to optimizacijska naloga, pri kateri moramo najprej poiskati derivat funkcije verjetnosti po vektorju teže Razpravljanje logistične regresije. Vendar ima smisel predhodno poenostaviti nalogo: derivat bomo iskali od logaritma funkcije verovatnoće.

Razpravljanje logistične regresije

Zakaj po logaritmiranju, v funkciji logistične napake, smo spremenili znak na Razpravljanje logistične regresije na Razpravljanje logistične regresije. Vse je preprosto, saj v nalogah ocenjevanja kakovosti modela običajno minimiziramo vrednost funkcije, zato smo desno stran izraza pomnožili z Razpravljanje logistične regresije in tako namesto maksimizacije zdaj minimiziramo funkcijo.

Dejansko, trenutno, pred vašimi očmi je bila težko izvedena funkcija izgube — Logistic Loss za učni sklop z dvema razredoma: Razpravljanje logistične regresije in Razpravljanje logistične regresije.

Zdaj, da bi našli koeficiente, moramo samo poiskati derivat funkciji logistične napake in nadalje, z uporabo numeričnih metod optimizacije, kot sta gradientni spust ali stohastični gradientni spust, poiskati najbolj optimalne koeficiente Razpravljanje logistične regresije. Vendar, ob upoštevanju že zmernega obsega članka, se predlaga, da izvedete diferenciranje sami ali pa morda to postane tema za naslednji članek z več aritmike brez tako podrobnih primerov.

Primer 2. Klassifikacija objektov na Razpravljanje logistične regresije in Razpravljanje logistične regresije

Pristop bo enak kot pri razredih Razpravljanje logistične regresije in Razpravljanje logistične regresije, vendar bo sama pot do izhoda funkcije izgube Logistic Loss, bolj vijugava. Začnimo. Za funkcijo verjetnosti bomo uporabili operator »če…, potem…«. To pomeni, če Razpravljanje logistične regresije-i objekt pripada razredu Razpravljanje logistične regresije, potem za izračun verjetnosti vzorca uporabimo verjetnost Razpravljanje logistične regresije, če objekt pripada razredu Razpravljanje logistične regresije, potem v verjetnost vstavimo Razpravljanje logistične regresije. Tako izgleda funkcija verjetnosti:

Razpravljanje logistične regresije

Na prste bomo opisali, kako to deluje. Razmislimo o 4 primerih:

1. Если Razpravljanje logistične regresije in Razpravljanje logistične regresije, potem bo v verjetnost vzorca «šlo» Razpravljanje logistične regresije

2. Если Razpravljanje logistične regresije in Razpravljanje logistične regresije, potem bo v verjetnost vzorca «šlo» Razpravljanje logistične regresije

3. Если Razpravljanje logistične regresije in Razpravljanje logistične regresije, potem bo v verjetnost vzorca «šlo» Razpravljanje logistične regresije

4. Если Razpravljanje logistične regresije in Razpravljanje logistične regresije, potem bo v verjetnost vzorca «šlo» Razpravljanje logistične regresije

Očitno je, da v 1. in 3. primeru, ko so bile verjetnosti pravilno določene z algoritmom, funkcija verjetnosti bo maksimizirana, torej točno to smo želeli doseči. Vendar je tak pristop dokaj obsežen in nadalje bomo obravnavali bolj kompakten zapis. Najprej pa bomo logaritmizirali funkcijo verjetnosti z zamenjavo znaka, saj jo bomo zdaj minimizirali.

Razpravljanje logistične regresije

Vstavimo namesto Razpravljanje logistične regresije izraze Razpravljanje logistične regresije:

Razpravljanje logistične regresije

Poenostavimo desni del logaritma z uporabo preprostih aritmetičnih tehnik in dobimo:

Razpravljanje logistične regresije

Zdaj pa je čas, da se znebimo operatorja »če…, potem…«. Opazimo, da ko objekt Razpravljanje logistične regresije pripada razredu Razpravljanje logistične regresije, potem je v izrazu pod logaritmom v imenovalcu Razpravljanje logistične regresije dvignjen na potenco Razpravljanje logistične regresije, če objekt pripada razredu Razpravljanje logistične regresije, potem se $e$ dvigne na potenco Razpravljanje logistične regresije. Zato lahko zapis potenc preprosto poenostavimo - združimo oba primera v enega: Razpravljanje logistične regresije. Takrat funcija logistične napake imela obliko:

Razpravljanje logistične regresije

V skladu s pravili logaritmizacije obrnemo ulomek in znak "Razpravljanje logistične regresije" (minus) damo pred logaritem, dobimo:

Razpravljanje logistične regresije

Pred vami je funkcija izgub logistic Loss, ki se uporablja pri učni množici z objekti, ki pripadajo razredom: Razpravljanje logistične regresije in Razpravljanje logistične regresije.

No, na tej točki se poslavljam in zaključujemo članek.

Razpravljanje logistične regresije Prejšnje delo avtorja — „Pretvarjanje enačbe linearne regresije v matrico“

Dodatni materiali

1. Literatura

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

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

3) Teorija verjetnosti / N.I. Černova — Novosibirsk: Novosibirjska državna univerza, 2007

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

5) Data Science Znanost o podatkih od začetka / Joel Grass — Sankt Peterburg: BХВ Peterburg, 2017

6) Praktična statistika za strokovnjake Data Science / P. Bruce, E. Bruce — Sankt Peterburg: BХВ Peterburg, 2018

2. Predavanja, tečaji (video)

1) Bistvo metode največje verjetnosti, Boris Demešev

2) Metoda največje verjetnosti v neprekinjenem primeru, Boris Demešev

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

4) Predavanje 4, Evgenij Sokolov (od 47. minute videa)

5) Logistična regresija, Vjačeslav Voroncov

3. Internetni viri

1) Linearne modele klasifikacije in regresije

2) Kako enostavno razumeti logistično regresijo

3) Logistična funkcija napake

4) Neodvisni poskusi in Bernoullijeva formula

5) Balada o MMP

6) Metod maksimalne verovatnoće

7) Formule in lastnosti logaritamov

8) Zakaj število Razpravljanje logistične regresije?

9) Linearni klasifikator

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster