Žvakanje logističke regresije

Žvakanje logističke regresije

U ovom članku ćemo analizirati teorijske proračune transformacije funkcije linearne regresije в funkcija inverzne logit transformacije (inače se naziva funkcija logističkog odgovora). Zatim, koristeći arsenal metoda maksimalne vjerovatnoće, u skladu sa modelom logističke regresije, izvodimo funkciju gubitka Logistički gubitak, ili drugim riječima, definirat ćemo funkciju kojom se biraju parametri vektora težine u modelu logističke regresije Žvakanje logističke regresije.

Pregled članka:

  1. Ponovimo linearni odnos između dvije varijable
  2. Hajde da identifikujemo potrebu za transformacijom funkcije linearne regresije Žvakanje logističke regresije в funkcija logističkog odgovora Žvakanje logističke regresije
  3. Izvršimo transformacije i izlaz funkcija logističkog odgovora
  4. Pokušajmo razumjeti zašto je metoda najmanjih kvadrata loša pri odabiru parametara Žvakanje logističke regresije funkcije Logistički gubitak
  5. Koristimo metoda maksimalne vjerovatnoće za utvrđivanje funkcije odabira parametara Žvakanje logističke regresije:

    5.1. Slučaj 1: funkcija Logistički gubitak za objekte sa oznakama klasa 0 и 1:

    Žvakanje logističke regresije

    5.2. Slučaj 2: funkcija Logistički gubitak za objekte sa oznakama klasa -1 и +1:

    Žvakanje logističke regresije


Članak je prepun jednostavnih primjera u kojima je sve proračune lako napraviti usmeno ili na papiru; u nekim slučajevima može biti potreban kalkulator. Zato spremite se :)

Ovaj članak je prvenstveno namijenjen naučnicima podataka sa početnim nivoom znanja o osnovama mašinskog učenja.

Članak će također pružiti kod za crtanje grafikona i izračunavanja. Sav kod je napisan na jeziku python 2.7. Dozvolite mi da unaprijed objasnim "novinu" korišćene verzije - ovo je jedan od uslova za pohađanje dobro poznatog kursa iz Yandex na jednako poznatoj platformi za online obrazovanje Coursera, i, kako se moglo pretpostaviti, materijal je pripremljen na osnovu ovog kursa.

01. Pravolinijska zavisnost

Sasvim je razumno postaviti pitanje - kakve veze s tim imaju linearna zavisnost i logistička regresija?

To je jednostavno! Logistička regresija je jedan od modela koji pripadaju linearnom klasifikatoru. Jednostavnim riječima, zadatak linearnog klasifikatora je da predvidi ciljne vrijednosti Žvakanje logističke regresije iz varijabli (regresora) Žvakanje logističke regresije. Smatra se da je zavisnost između karakteristika Žvakanje logističke regresije i ciljne vrijednosti Žvakanje logističke regresije linearno. Otuda i naziv klasifikatora - linearni. Vrlo grubo rečeno, model logističke regresije zasniva se na pretpostavci da postoji linearna veza između karakteristika Žvakanje logističke regresije i ciljne vrijednosti Žvakanje logističke regresije. Ovo je veza.

U studiju postoji prvi primjer, a radi se, tačno, o pravolinijskoj zavisnosti veličina koje se proučavaju. U procesu pripreme članka naišao sam na primjer koji je mnoge ljude već postavio na ivicu - ovisnost struje o naponu („Primijenjena regresiona analiza“, N. Draper, G. Smith). Pogledaćemo i ovde.

U skladu sa Ohmov zakon:

Žvakanje logističke regresijegde Žvakanje logističke regresije - jačina struje, Žvakanje logističke regresije - voltaža, Žvakanje logističke regresije - otpor.

Da ne znamo Ohmov zakon, tada bismo mogli empirijski pronaći zavisnost promjenom Žvakanje logističke regresije i merenje Žvakanje logističke regresije, dok podržava Žvakanje logističke regresije fiksno. Tada bismo vidjeli da je graf zavisnosti Žvakanje logističke regresije iz Žvakanje logističke regresije daje manje-više ravnu liniju kroz ishodište. Kažemo „manje ili više“ jer, iako je odnos zapravo tačan, naša mjerenja mogu sadržavati male greške, pa stoga tačke na grafikonu možda neće pasti točno na pravu, već će biti nasumično razbacane oko nje.

Grafikon 1 “Zavisnost” Žvakanje logističke regresije iz Žvakanje logističke regresije»

Žvakanje logističke regresije

Kod za crtanje 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 za transformacijom jednačine linearne regresije

Pogledajmo još jedan primjer. Zamislimo da radimo u banci i naš zadatak je da odredimo vjerovatnoću da će zajmoprimac otplatiti kredit u zavisnosti od određenih faktora. Da bismo pojednostavili zadatak, razmotrit ćemo samo dva faktora: mjesečnu platu zajmoprimca i mjesečni iznos otplate kredita.

Zadatak je vrlo uvjetovan, ali na ovom primjeru možemo razumjeti zašto ga nije dovoljno koristiti funkcije linearne regresije, a također saznajte koje transformacije treba izvršiti s funkcijom.

Vratimo se na primjer. Podrazumeva se da što je veća plata, zajmoprimac će moći da izdvaja mesečno za otplatu kredita. Istovremeno, za određeni raspon plata ovaj odnos će biti prilično linearan. Na primjer, uzmimo raspon plata od 60.000 RUR do 200.000 RUR i pretpostavimo da je u navedenom rasponu plata zavisnost veličine mjesečne uplate od veličine plate linearna. Recimo da je za navedeni raspon plata otkriveno da omjer plata i isplata ne može pasti ispod 3 i da zajmoprimac i dalje mora imati 5.000 RUR u rezervi. I samo u ovom slučaju, pretpostavit ćemo da će zajmoprimac otplatiti kredit banci. Tada će jednadžba linearne regresije poprimiti oblik:

Žvakanje logističke regresije

gdje Žvakanje logističke regresije, Žvakanje logističke regresije, Žvakanje logističke regresije, Žvakanje logističke regresije - plata Žvakanje logističke regresije-ti zajmoprimac, Žvakanje logističke regresije - plaćanje kredita Žvakanje logističke regresije-th zajmoprimac.

Zamjena plate i otplate kredita sa fiksnim parametrima u jednačinu Žvakanje logističke regresije Možete odlučiti da li ćete izdati ili odbiti kredit.

Gledajući unaprijed, napominjemo da, sa zadatim parametrima Žvakanje logističke regresije funkcija linearne regresije, korišten u funkcije logističkog odgovora će proizvesti velike vrijednosti koje će komplicirati proračune za određivanje vjerovatnoće otplate kredita. Stoga se predlaže smanjenje naših koeficijenata, recimo, 25.000 puta. Ova transformacija koeficijenata neće promijeniti odluku o izdavanju kredita. Upamtimo ovu tačku za budućnost, ali sada, da bude još jasnije o čemu govorimo, razmotrimo situaciju sa tri potencijalna zajmoprimca.

Tabela 1 “Potencijalni zajmoprimci”

Žvakanje logističke regresije

Kod za generisanje 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']]

U skladu sa podacima u tabeli, Vasya, sa platom od 120.000 RUR, želi da dobije zajam kako bi mogao da ga otplaćuje mesečno po 3.000 RUR. Utvrdili smo da Vasyina plata mora biti veća od trostrukog iznosa uplate da bi se odobrio zajam, a da još mora ostati 5.000 RUR. Vasya zadovoljava ovaj zahtjev: Žvakanje logističke regresije. Ostalo je čak 106.000 RUR. Uprkos činjenici da prilikom izračunavanja Žvakanje logističke regresije smanjili smo šanse Žvakanje logističke regresije 25.000 puta, rezultat je bio isti - kredit može biti odobren. Fedya će također dobiti pozajmicu, ali će Lesha, uprkos činjenici da prima najviše, morati obuzdati svoje apetite.

Nacrtajmo graf za ovaj slučaj.

Grafikon 2 “Klasifikacija zajmoprimaca”

Žvakanje logističke regresije

Kod za crtanje grafikona

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

Dakle, naša prava linija, konstruisana u skladu sa funkcijom Žvakanje logističke regresije, odvaja “loše” zajmoprimce od “dobrih”. Oni zajmoprimci čije se želje ne poklapaju sa njihovim mogućnostima su iznad crte (Lesha), dok su oni koji su, prema parametrima našeg modela u mogućnosti da otplate kredit, ispod crte (Vasya i Fedya). Drugim riječima, možemo reći ovo: naša direktna linija dijeli zajmoprimce u dvije klase. Označimo ih na sljedeći način: u klasu Žvakanje logističke regresije One zajmoprimce za koje postoji najveća vjerovatnoća da će otplatiti kredit ćemo klasificirati kao Žvakanje logističke regresije ili Žvakanje logističke regresije Uključićemo one zajmoprimce koji najverovatnije neće moći da otplate kredit.

Hajde da sumiramo zaključke iz ovog jednostavnog primjera. Hajde da uzmemo poentu Žvakanje logističke regresije i, zamjenom koordinata tačke u odgovarajuću jednačinu prave Žvakanje logističke regresije, razmotrite tri opcije:

  1. Ako je tačka ispod linije i dodeljujemo je klasi Žvakanje logističke regresije, zatim vrijednost funkcije Žvakanje logističke regresije će biti pozitivan od Žvakanje logističke regresije do Žvakanje logističke regresije. To znači da možemo pretpostaviti da je vjerovatnoća otplate kredita unutar granica Žvakanje logističke regresije. Što je veća vrijednost funkcije, veća je vjerovatnoća.
  2. Ako je tačka iznad prave i dodeljujemo je klasi Žvakanje logističke regresije ili Žvakanje logističke regresije, tada će vrijednost funkcije biti negativna od Žvakanje logističke regresije do Žvakanje logističke regresije. Tada ćemo pretpostaviti da je vjerovatnoća otplate duga unutar Žvakanje logističke regresije i, što je veća apsolutna vrijednost funkcije, to je veće naše povjerenje.
  3. Tačka je na pravoj liniji, na granici između dvije klase. U ovom slučaju, vrijednost funkcije Žvakanje logističke regresije biće jednaki Žvakanje logističke regresije a vjerovatnoća otplate kredita je jednaka Žvakanje logističke regresije.

Sada, zamislimo da nemamo dva faktora, već desetine, i ne tri, već hiljade zajmoprimaca. Tada ćemo umjesto prave linije imati m-dimenzionalni ravan i koeficijenti Žvakanje logističke regresije nećemo biti izvučeni iz vazduha, već izvedeni po svim pravilima, a na osnovu prikupljenih podataka o zajmoprimcima koji su ili nisu otplatili kredit. I zaista, imajte na umu da sada biramo zajmoprimce koristeći već poznate koeficijente Žvakanje logističke regresije. Zapravo, zadatak modela logističke regresije je upravo da odredi parametre Žvakanje logističke regresije, pri čemu je vrijednost funkcije gubitka Logistički gubitak težiće minimumu. Ali o tome kako se vektor izračunava Žvakanje logističke regresije, saznat ćemo više u 5. odjeljku članka. U međuvremenu se vraćamo u obećanu zemlju - našem bankaru i njegova tri klijenta.

Zahvaljujući funkciji Žvakanje logističke regresije znamo kome se može dati kredit, a kome odbiti. Ali ne možete ići kod direktora s takvim informacijama, jer su od nas htjeli dobiti vjerovatnoću otplate kredita od strane svakog zajmoprimca. sta da radim? Odgovor je jednostavan - moramo nekako transformirati funkciju Žvakanje logističke regresije, čije vrijednosti leže u rasponu Žvakanje logističke regresije na funkciju čije će vrijednosti ležati u rasponu Žvakanje logističke regresije. I takva funkcija postoji, zove se funkcija logističkog odgovora ili inverzno-logit transformacija. upoznajte:

Žvakanje logističke regresije

Pogledajmo korak po korak kako to funkcionira funkcija logističkog odgovora. Imajte na umu da ćemo hodati u suprotnom smjeru, tj. pretpostavićemo da znamo vrijednost vjerovatnoće koja leži u rasponu od Žvakanje logističke regresije do Žvakanje logističke regresije a zatim ćemo ovu vrijednost „odmotati“ na cijeli raspon brojeva iz Žvakanje logističke regresije do Žvakanje logističke regresije.

03. Izvodimo funkciju logističkog odgovora

Korak 1. Pretvorite vrijednosti vjerovatnoće u raspon Žvakanje logističke regresije

Tokom transformacije funkcije Žvakanje logističke regresije в funkcija logističkog odgovora Žvakanje logističke regresije Ostavićemo našeg kreditnog analitičara na miru i umjesto toga krenuti u obilazak kladionica. Ne, naravno, nećemo se kladiti, sve što nas zanima tu je značenje izraza, na primjer, šansa je 4 prema 1. Kvote, poznate svim kladionicima, su omjer "uspjeha" prema " neuspjesi”. U terminima vjerovatnoće, šanse su vjerovatnoća da se događaj dogodi podijeljena vjerovatnoćom da se događaj ne dogodi. Zapišimo formulu za mogućnost da se neki događaj dogodi Žvakanje logističke regresije:

Žvakanje logističke regresije

gde Žvakanje logističke regresije - vjerovatnoća da se dogodi neki događaj, Žvakanje logističke regresije — vjerovatnoća da se događaj NE dogodi

Na primjer, ako je vjerovatnoća da će mlad, snažan i razigran konj pod nadimkom “Veterok” pobijediti staru i mlohavu staricu po imenu “Matilda” na trci jednaka Žvakanje logističke regresije, tada će šanse za uspjeh “Veteroka” biti Žvakanje logističke regresije к Žvakanje logističke regresije Žvakanje logističke regresije i obrnuto, znajući šanse, neće nam biti teško izračunati vjerovatnoću Žvakanje logističke regresije:

Žvakanje logističke regresije

Tako smo naučili da „prevedemo“ verovatnoću u šanse, koje uzimaju vrednosti iz Žvakanje logističke regresije do Žvakanje logističke regresije. Napravimo još jedan korak i naučimo da “prevedemo” vjerovatnoću na cijelu brojevnu pravu iz Žvakanje logističke regresije do Žvakanje logističke regresije.

Korak 2. Pretvorite vrijednosti vjerovatnoće u raspon Žvakanje logističke regresije

Ovaj korak je vrlo jednostavan - uzmimo logaritam kvote na bazu Ojlerovog broja Žvakanje logističke regresije i dobijamo:

Žvakanje logističke regresije

Sada znamo da ako Žvakanje logističke regresije, zatim izračunajte vrijednost Žvakanje logističke regresije bit će vrlo jednostavan i, osim toga, trebao bi biti pozitivan: Žvakanje logističke regresije. Istina je.

Iz radoznalosti, hajde da proverimo šta ako Žvakanje logističke regresije, tada očekujemo da ćemo vidjeti negativnu vrijednost Žvakanje logističke regresije. Provjeravamo: Žvakanje logističke regresije. Tako je.

Sada znamo kako pretvoriti vrijednost vjerovatnoće iz Žvakanje logističke regresije do Žvakanje logističke regresije duž cijele brojevne prave od Žvakanje logističke regresije do Žvakanje logističke regresije. U sljedećem koraku ćemo učiniti suprotno.

Za sada napominjemo da u skladu sa pravilima logaritma, znajući vrijednost funkcije Žvakanje logističke regresije, možete izračunati šanse:

Žvakanje logističke regresije

Ova metoda određivanja kvota će nam biti od koristi u sljedećem koraku.

Korak 3. Izvedemo formulu za određivanje Žvakanje logističke regresije

Tako smo naučili, znajući Žvakanje logističke regresije, pronađite vrijednosti funkcije Žvakanje logističke regresije. Međutim, u stvari, potrebno nam je upravo suprotno - poznavanje vrijednosti Žvakanje logističke regresije naći Žvakanje logističke regresije. Da bismo to učinili, okrenimo se konceptu kao što je funkcija inverzne kvote, prema kojoj:

Žvakanje logističke regresije

U članku nećemo izvoditi gornju formulu, ali ćemo je provjeriti pomoću brojeva iz gornjeg primjera. Znamo da sa kvotama 4 prema 1 (Žvakanje logističke regresije), vjerovatnoća da će se događaj dogoditi je 0.8 (Žvakanje logističke regresije). Napravimo zamjenu: Žvakanje logističke regresije. To se poklapa s našim ranijim proračunima. Idemo dalje.

U zadnjem koraku smo to zaključili Žvakanje logističke regresije, što znači da možete izvršiti zamjenu u funkciji inverzne kvote. Dobijamo:

Žvakanje logističke regresije

Podijelite i brojilac i imenilac sa Žvakanje logističke regresije, Zatim:

Žvakanje logističke regresije

Za svaki slučaj, da se uvjerimo da nigdje nismo pogriješili, uradimo još jednu malu provjeru. U koraku 2, mi za Žvakanje logističke regresije utvrdio to Žvakanje logističke regresije. Zatim, zamjena vrijednosti Žvakanje logističke regresije u funkciju logističkog odgovora, očekujemo da dobijemo Žvakanje logističke regresije. Zamenimo i dobijemo: Žvakanje logističke regresije

Čestitamo, dragi čitatelju, upravo smo izveli i testirali funkciju logističkog odgovora. Pogledajmo graf funkcije.

Grafikon 3 “Funkcija logističkog odgovora”

Žvakanje logističke regresije

Kod za crtanje grafikona

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

U literaturi možete pronaći i naziv ove funkcije kao sigmoidna funkcija. Grafikon jasno pokazuje da se glavna promjena u vjerovatnoći da objekt pripada klasi događa unutar relativno malog raspona Žvakanje logističke regresije, odnekud Žvakanje logističke regresije do Žvakanje logističke regresije.

Predlažem da se vratite našem kreditnom analitičaru i pomognete mu da izračuna vjerovatnoću otplate kredita, inače rizikuje da ostane bez bonusa :)

Tabela 2 “Potencijalni zajmoprimci”

Žvakanje logističke regresije

Kod za generisanje 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']]

Dakle, utvrdili smo vjerovatnoću otplate kredita. Općenito, čini se da je ovo istina.

Zaista, vjerovatnoća da će Vasya, sa platom od 120.000 RUR, moći dati banci 3.000 RUR svakog mjeseca je blizu 100%. Usput, moramo shvatiti da banka može izdati kredit Leshi ako politika banke predviđa, na primjer, kreditiranje klijenata sa vjerovatnoćom otplate kredita većom od, recimo, 0.3. Samo što će u tom slučaju banka stvoriti veću rezervu za moguće gubitke.

Takođe treba napomenuti da je odnos plata i isplata od najmanje 3 i sa marginom od 5.000 RUR uzet sa plafona. Stoga nismo mogli koristiti vektor težina u njegovom izvornom obliku Žvakanje logističke regresije. Trebali smo jako smanjiti koeficijente, a u ovom slučaju smo svaki koeficijent podijelili sa 25.000, odnosno, u suštini, korigirali smo rezultat. Ali to je učinjeno posebno kako bi se pojednostavilo razumijevanje materijala u početnoj fazi. U životu nećemo morati izmišljati i prilagođavati koeficijente, već ih pronaći. U narednim odjeljcima članka ćemo izvesti jednadžbe pomoću kojih se biraju parametri Žvakanje logističke regresije.

04. Metoda najmanjih kvadrata za određivanje vektora težina Žvakanje logističke regresije u funkciji logističkog odgovora

Ovu metodu za odabir vektora težina već znamo Žvakanje logističke regresije, as metoda najmanjih kvadrata (LSM) i zapravo, zašto ga onda ne bismo koristili u problemima binarne klasifikacije? Zaista, ništa vas ne sprečava da koristite MNC, samo ova metoda u klasifikacionim problemima daje rezultate koji su manje tačni od Logistički gubitak. Za to postoji teorijska osnova. Pogledajmo prvo jedan jednostavan primjer.

Pretpostavimo da su naši modeli (koristeći MSE и Logistički gubitak) su već započeli odabir vektora težina Žvakanje logističke regresije i zaustavili smo proračun u nekom koraku. Nije bitno da li u sredini, na kraju ili na početku, glavno je da već imamo neke vrijednosti vektora težina i pretpostavimo da je u ovom koraku vektor težina Žvakanje logističke regresije za oba modela nema razlike. Zatim uzmite dobivene utege i zamijenite ih funkcija logističkog odgovora (Žvakanje logističke regresije) za neki objekat koji pripada klasi Žvakanje logističke regresije. Ispitujemo dva slučaja kada je, u skladu sa odabranim vektorom težina, naš model veoma pogrešan i obrnuto - model je veoma siguran da objekat pripada klasi Žvakanje logističke regresije. Da vidimo koje će kazne biti izdate prilikom upotrebe MNC и Logistički gubitak.

Kod za izračunavanje kazni ovisno o korištenoj funkciji gubitka

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

Slučaj greške — model dodjeljuje objekt klasi Žvakanje logističke regresije sa vjerovatnoćom od 0,01

Kazna za korištenje MNC bice:
Žvakanje logističke regresije

Kazna za korištenje Logistički gubitak bice:
Žvakanje logističke regresije

Slučaj jakog samopouzdanja — model dodjeljuje objekt klasi Žvakanje logističke regresije sa vjerovatnoćom od 0,99

Kazna za korištenje MNC bice:
Žvakanje logističke regresije

Kazna za korištenje Logistički gubitak bice:
Žvakanje logističke regresije

Ovaj primjer dobro ilustruje da u slučaju velike greške funkcija gubitka Log Loss kažnjava model znatno više od MSE. Hajde da sada shvatimo koja je teorijska pozadina korištenja funkcije gubitka Log Loss u problemima klasifikacije.

05. Metoda maksimalne vjerovatnoće i logistička regresija

Kao što je obećano na početku, članak je prepun jednostavnih primjera. U studiju je još jedan primjer i stari gosti - bankovni zajmoprimci: Vasya, Fedya i Lesha.

Za svaki slučaj, prije razvijanja primjera, dopustite mi da vas podsjetim da u životu imamo posla s uzorkom obuke od hiljada ili miliona objekata sa desetinama ili stotinama karakteristika. Međutim, ovdje su brojke uzete tako da se lako mogu uklopiti u glavu početnika koji se bavi podacima.

Vratimo se na primjer. Zamislimo da je direktor banke odlučio izdati kredit svima kojima je potrebna, uprkos činjenici da mu je algoritam rekao da ga ne izdaje Leshi. A sada je prošlo dovoljno vremena i znamo ko je od trojice heroja vratio kredit, a koji nije. Ono što se moglo očekivati: Vasya i Fedya su vratili zajam, ali Lesha nije. Zamislimo sada da će nam ovaj rezultat biti novi uzorak obuke, a istovremeno kao da su nestali svi podaci o faktorima koji utiču na vjerovatnoću otplate kredita (plata dužnika, visina mjesečne uplate). Tada, intuitivno, možemo pretpostaviti da svaki treći zajmoprimac ne otplaćuje kredit banci, odnosno da je vjerovatnoća da će sljedeći zajmoprimac otplatiti kredit. Žvakanje logističke regresije. Ova intuitivna pretpostavka ima teorijsku potvrdu i na njoj se zasniva metoda maksimalne vjerovatnoće, često se u literaturi naziva princip maksimalne vjerovatnoće.

Prvo, hajde da se upoznamo sa konceptualnim aparatom.

Vjerovatnoća uzorkovanja je vjerovatnoća da se dobije upravo takav uzorak, da se dobiju upravo takva zapažanja/rezultati, tj. proizvod vjerovatnoće dobijanja svakog od rezultata uzorka (na primjer, da li je zajam Vasye, Fedya i Lesha otplaćen ili nije otplaćen u isto vrijeme).

Funkcija vjerovatnoće povezuje vjerovatnoću uzorka sa vrijednostima parametara distribucije.

U našem slučaju, uzorak za obuku je generalizirana Bernoullijeva shema, u kojoj slučajna varijabla uzima samo dvije vrijednosti: Žvakanje logističke regresije ili Žvakanje logističke regresije. Stoga se vjerovatnoća uzorka može napisati kao funkcija vjerovatnoće parametra Žvakanje logističke regresije kako slijedi:

Žvakanje logističke regresije
Žvakanje logističke regresije

Gornji unos se može protumačiti na sljedeći način. Zajednička vjerovatnoća da će Vasya i Fedya otplatiti zajam jednaka je Žvakanje logističke regresije, vjerovatnoća da Lesha NEĆE otplatiti kredit je jednaka Žvakanje logističke regresije (budući da NIJE bila otplata kredita), stoga je zajednička vjerovatnoća sva tri događaja jednaka Žvakanje logističke regresije.

Metoda maksimalne vjerovatnoće je metoda za procjenu nepoznatog parametra maksimiziranjem funkcije vjerovatnoće. U našem slučaju, moramo pronaći takvu vrijednost Žvakanje logističke regresije, pri čemu Žvakanje logističke regresije dostiže svoj maksimum.

Odakle dolazi stvarna ideja - tražiti vrijednost nepoznatog parametra pri kojoj funkcija vjerovatnoće dostiže maksimum? Poreklo ideje proizlazi iz ideje da je uzorak jedini izvor znanja koji nam je dostupan o populaciji. Sve što znamo o populaciji predstavljeno je u uzorku. Stoga, sve što možemo reći je da je uzorak najprecizniji odraz populacije koja nam je dostupna. Stoga moramo pronaći parametar po kojem dostupni uzorak postaje najvjerovatniji.

Očigledno, imamo posla s optimizacijskim problemom u kojem trebamo pronaći točku ekstrema funkcije. Da bi se pronašla tačka ekstrema, potrebno je razmotriti uslov prvog reda, odnosno izjednačiti derivaciju funkcije sa nulom i rešiti jednačinu u odnosu na željeni parametar. Međutim, traženje derivacije proizvoda velikog broja faktora može biti dugotrajan zadatak; da bi se to izbjeglo, postoji posebna tehnika - prelazak na logaritam funkcije vjerovatnoće. Zašto je takva tranzicija moguća? Obratimo pažnju na činjenicu da ne tražimo ekstremum same funkcijeŽvakanje logističke regresije, i tačka ekstrema, odnosno vrijednost nepoznatog parametra Žvakanje logističke regresije, pri čemu Žvakanje logističke regresije dostiže svoj maksimum. Prilikom prelaska na logaritam, tačka ekstrema se ne mijenja (iako će se sam ekstremum razlikovati), budući da je logaritam monotona funkcija.

Hajdemo, u skladu s gore navedenim, nastaviti razvijati naš primjer s pozajmicama od Vasya, Fedya i Lesha. Prvo pređimo na logaritam funkcije vjerovatnoće:

Žvakanje logističke regresije

Sada možemo lako razlikovati izraz po Žvakanje logističke regresije:

Žvakanje logističke regresije

I na kraju, razmotrite uslov prvog reda - izjednačavamo derivaciju funkcije sa nulom:

Žvakanje logističke regresije

Dakle, naša intuitivna procjena vjerovatnoće otplate kredita Žvakanje logističke regresije bilo teorijski opravdano.

Odlično, ali šta da radimo sa ovom informacijom sada? Ako pretpostavimo da svaki treći zajmoprimac ne vrati novac banci, onda će ova neminovno bankrotirati. Tako je, ali samo kada se procijeni vjerovatnoća otplate kredita jednaka Žvakanje logističke regresije Nismo uzeli u obzir faktore koji utiču na otplatu kredita: platu zajmoprimca i visinu mesečne uplate. Podsjetimo, prethodno smo izračunali vjerovatnoću otplate kredita od strane svakog klijenta, uzimajući u obzir te iste faktore. Logično je da smo dobili vjerovatnoće različite od konstante jednake Žvakanje logističke regresije.

Definirajmo vjerovatnoću uzoraka:

Kod za izračunavanje vjerovatnoće uzorka

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)

Vjerojatnost uzorka pri konstantnoj vrijednosti Žvakanje logističke regresije:

Žvakanje logističke regresije

Uzorak vjerovatnoće prilikom izračunavanja vjerovatnoće otplate kredita uzimajući u obzir faktore Žvakanje logističke regresije:

Žvakanje logističke regresije
Žvakanje logističke regresije

Ispostavilo se da je vjerovatnoća uzorka sa vjerovatnoćom izračunatom u zavisnosti od faktora veća od vjerovatnoće sa konstantnom vrijednošću vjerovatnoće. Šta to znači? To sugerira da je poznavanje faktora omogućilo tačniji odabir vjerovatnoće otplate kredita za svakog klijenta. Zbog toga bi pri izdavanju sledećeg kredita ispravnije bilo koristiti model koji je predložen na kraju odeljka 3 ovog člana za procenu verovatnoće otplate duga.

Ali onda, ako želimo maksimizirati funkcija vjerovatnoće uzorka, zašto onda ne koristiti neki algoritam koji će proizvesti vjerovatnoće za Vasyu, Fedyu i Lesha, na primjer, jednake 0.99, 0.99 i 0.01, respektivno. Možda će takav algoritam dobro funkcionirati na uzorku za obuku, jer će približiti vrijednost vjerovatnoće uzorka Žvakanje logističke regresije, ali, prvo, takav algoritam će najvjerovatnije imati poteškoća sa sposobnošću generalizacije, a drugo, ovaj algoritam definitivno neće biti linearan. A ako metode borbe protiv pretreniranosti (jednako slaba sposobnost generalizacije) očito nisu uključene u plan ovog članka, prođimo kroz drugu točku detaljnije. Da biste to učinili, samo odgovorite na jednostavno pitanje. Može li vjerovatnoća da će Vasya i Fedya otplatiti kredit biti ista, uzimajući u obzir nama poznate faktore? Sa stanovišta zdrave logike, naravno da nije, ne može. Tako će Vasya plaćati 2.5% svoje plate mjesečno za otplatu kredita, a Fedya - skoro 27,8%. Takođe u grafikonu 2 „Klasifikacija klijenata“ vidimo da je Vasya mnogo dalje od linije koja razdvaja klase od Fedya. I konačno, znamo da je funkcija Žvakanje logističke regresije za Vasyu i Fedya uzima različite vrijednosti: 4.24 za Vasyu i 1.0 za Fedya. Sada, ako je Fedya, na primjer, zaradio red veličine više ili zatražio manji zajam, tada bi vjerovatnoće otplate kredita za Vasju i Fedyu bile slične. Drugim riječima, linearna ovisnost se ne može prevariti. I ako smo stvarno izračunali šanse Žvakanje logističke regresije, i nije ih uzeo iz zraka, možemo sa sigurnošću reći da su naše vrijednosti Žvakanje logističke regresije najbolje nam omogućavaju da procijenimo vjerovatnoću otplate kredita od strane svakog zajmoprimca, ali pošto smo se dogovorili da pretpostavimo da će određivanje koeficijenata Žvakanje logističke regresije izvršeno po svim pravilima, onda ćemo tako pretpostaviti - naši koeficijenti nam omogućavaju da damo bolju procjenu vjerovatnoće :)

Međutim, skrećemo pažnju. U ovom dijelu moramo razumjeti kako se određuje vektor težina Žvakanje logističke regresije, što je neophodno za procjenu vjerovatnoće otplate kredita od strane svakog zajmoprimca.

Hajde da ukratko sumiramo koji arsenal tražimo Žvakanje logističke regresije:

1. Pretpostavljamo da je odnos između ciljne varijable (predviđene vrijednosti) i faktora koji utječe na rezultat linearan. Iz tog razloga se koristi funkcija linearne regresije takve vrste Žvakanje logističke regresije, čija linija dijeli objekte (klijente) u klase Žvakanje logističke regresije и Žvakanje logističke regresije ili Žvakanje logističke regresije (klijenti koji su u mogućnosti da otplate kredit i oni koji nisu). U našem slučaju, jednačina ima oblik Žvakanje logističke regresije.

2. Koristimo inverzna logit funkcija takve vrste Žvakanje logističke regresije kako bi se odredila vjerovatnoća da objekt pripada klasi Žvakanje logističke regresije.

3. Naš set za obuku smatramo implementacijom generalizovanog Bernoullijeve šeme, odnosno za svaki objekat se generiše slučajna varijabla, koja sa vjerovatnoćom Žvakanje logističke regresije (svoj za svaki objekt) uzima vrijednost 1 i sa vjerovatnoćom Žvakanje logističke regresije - 0.

4. Znamo šta treba da maksimiziramo funkcija vjerovatnoće uzorka uzimajući u obzir prihvaćene faktore kako bi raspoloživi uzorak postao najvjerovatniji. Drugim riječima, potrebno je odabrati parametre po kojima će uzorak biti najvjerovatniji. U našem slučaju, odabrani parametar je vjerovatnoća otplate kredita Žvakanje logističke regresije, što opet zavisi od nepoznatih koeficijenata Žvakanje logističke regresije. Dakle, moramo pronaći takav vektor težina Žvakanje logističke regresije, pri čemu će vjerovatnoća uzorka biti maksimalna.

5. Znamo šta da povećamo funkcije uzorka vjerovatnoće mogu koristiti metoda maksimalne vjerovatnoće. I znamo sve lukave trikove za rad s ovom metodom.

Ovako se ispostavilo da je to potez u više koraka :)

Zapamtite da smo na samom početku članka htjeli izvesti dvije vrste funkcija gubitka Logistički gubitak ovisno o tome kako su klase objekata označene. Desilo se da se u klasifikacionim problemima sa dve klase klase označavaju kao Žvakanje logističke regresije и Žvakanje logističke regresije ili Žvakanje logističke regresije. Ovisno o notaciji, izlaz će imati odgovarajuću funkciju gubitka.

Slučaj 1. Klasifikacija objekata u Žvakanje logističke regresije и Žvakanje logističke regresije

Ranije, prilikom utvrđivanja vjerovatnoće uzorka, u kojem je vjerovatnoća otplate duga od strane zajmoprimca izračunata na osnovu faktora i datih koeficijenata Žvakanje logističke regresije, primijenili smo formulu:

Žvakanje logističke regresije

Zapravo Žvakanje logističke regresije je značenje funkcije logističkog odgovora Žvakanje logističke regresije za dati vektor težina Žvakanje logističke regresije

Tada nas ništa ne sprječava da napišemo funkciju vjerovatnoće uzorka na sljedeći način:

Žvakanje logističke regresije

Dešava se da je nekim analitičarima početnicima ponekad teško odmah shvatiti kako ova funkcija funkcionira. Pogledajmo 4 kratka primjera koji će sve razjasniti:

1. ako Žvakanje logističke regresije (tj. prema uzorku za obuku, objekat pripada klasi +1), i naš algoritam Žvakanje logističke regresije određuje vjerovatnoću klasificiranja objekta u klasu Žvakanje logističke regresije jednako 0.9, tada će se vjerovatnoća ovog dijela uzorka izračunati na sljedeći način:

Žvakanje logističke regresije

2. ako Žvakanje logističke regresijei Žvakanje logističke regresije, tada će računica biti ovakva:

Žvakanje logističke regresije

3. ako Žvakanje logističke regresijei Žvakanje logističke regresije, tada će računica biti ovakva:

Žvakanje logističke regresije

4. ako Žvakanje logističke regresijei Žvakanje logističke regresije, tada će računica biti ovakva:

Žvakanje logističke regresije

Očigledno je da će funkcija vjerovatnoće biti maksimizirana u slučajevima 1 i 3 ili u općenitom slučaju - s ispravno nagađanim vrijednostima vjerojatnosti dodjeljivanja objekta u klasu Žvakanje logističke regresije.

Zbog činjenice da prilikom određivanja vjerovatnoće dodjeljivanja objekta u klasu Žvakanje logističke regresije Samo ne znamo koeficijente Žvakanje logističke regresije, onda ćemo ih potražiti. Kao što je gore spomenuto, ovo je problem optimizacije u kojem prvo trebamo pronaći derivaciju funkcije vjerovatnoće u odnosu na vektor pondera Žvakanje logističke regresije. Međutim, prvo ima smisla pojednostaviti zadatak za sebe: potražit ćemo izvod logaritma funkcije vjerovatnoće.

Žvakanje logističke regresije

Zašto nakon logaritma, u funkcije logističke greške, promijenili smo znak iz Žvakanje logističke regresije na Žvakanje logističke regresije. Sve je jednostavno, pošto je u problemima procene kvaliteta modela uobičajeno minimizirati vrednost funkcije, desnu stranu izraza množimo sa Žvakanje logističke regresije i prema tome, umjesto maksimiziranja, sada minimiziramo funkciju.

Zapravo, upravo sada, pred vašim očima, funkcija gubitka je mukotrpno izvedena - Logistički gubitak za trening set sa dva razreda: Žvakanje logističke regresije и Žvakanje logističke regresije.

Sada, da bismo pronašli koeficijente, samo trebamo pronaći izvod funkcije logističke greške a zatim, koristeći metode numeričke optimizacije, kao što je gradijentni pad ili stohastički gradijent pad, odaberite najoptimalnije koeficijente Žvakanje logističke regresije. Ali, s obzirom na popriličan obim članka, predlaže se da sami izvršite diferencijaciju, ili će to možda biti tema za sljedeći članak s puno aritmetike bez tako detaljnih primjera.

Slučaj 2. Klasifikacija objekata u Žvakanje logističke regresije и Žvakanje logističke regresije

Ovdje će pristup biti isti kao i kod časova Žvakanje logističke regresije и Žvakanje logističke regresije, već sam put do izlaza funkcije gubitka Logistički gubitak, bit će ukrašeniji. Hajde da počnemo. Za funkciju vjerovatnoće koristićemo operator "ako onda...". Odnosno, ako Žvakanje logističke regresijeth objekt pripada klasi Žvakanje logističke regresije, zatim da izračunamo vjerovatnoću uzorka koristimo vjerovatnoću Žvakanje logističke regresije, ako objekt pripada klasi Žvakanje logističke regresije, onda zamjenjujemo u vjerovatnoću Žvakanje logističke regresije. Ovako izgleda funkcija vjerovatnoće:

Žvakanje logističke regresije

Opišimo na prste kako to funkcionira. Razmotrimo 4 slučaja:

1. ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerovatnoća uzorkovanja "proći" Žvakanje logističke regresije

2. ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerovatnoća uzorkovanja "proći" Žvakanje logističke regresije

3. ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerovatnoća uzorkovanja "proći" Žvakanje logističke regresije

4. ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerovatnoća uzorkovanja "proći" Žvakanje logističke regresije

Očigledno je da u slučajevima 1 i 3, kada su vjerovatnoće ispravno određene algoritmom, funkcija vjerovatnoće će biti maksimizirana, odnosno to je upravo ono što smo željeli dobiti. Međutim, ovaj pristup je prilično glomazan i sljedeće ćemo razmotriti kompaktniju notaciju. Ali prvo, hajde da logaritmiramo funkciju vjerovatnoće s promjenom predznaka, jer ćemo je sada minimizirati.

Žvakanje logističke regresije

Zamenimo umesto toga Žvakanje logističke regresije izraz Žvakanje logističke regresije:

Žvakanje logističke regresije

Pojednostavimo pravi pojam pod logaritmom koristeći jednostavne aritmetičke tehnike i dobijemo:

Žvakanje logističke regresije

Sada je vrijeme da se riješite operatera "ako onda...". Imajte na umu da kada objekat Žvakanje logističke regresije pripada klasi Žvakanje logističke regresije, zatim u izrazu pod logaritmom, u nazivniku, Žvakanje logističke regresije podignut na vlast Žvakanje logističke regresije, ako objekt pripada klasi Žvakanje logističke regresije, tada se $e$ diže na stepen Žvakanje logističke regresije. Stoga se notacija stepena može pojednostaviti kombinovanjem oba slučaja u jedan: Žvakanje logističke regresije. Onda funkcija logističke greške će poprimiti oblik:

Žvakanje logističke regresije

U skladu s pravilima logaritma, okrećemo razlomak i stavljamo znak "Žvakanje logističke regresije" (minus) za logaritam, dobijamo:

Žvakanje logističke regresije

Ovdje je funkcija gubitka logistički gubitak, koji se koristi u skupu za obuku sa objektima dodijeljenim klasama: Žvakanje logističke regresije и Žvakanje logističke regresije.

Pa, u ovom trenutku odlazim i zaključujemo članak.

Žvakanje logističke regresije Prethodni autorov rad je “Dovođenje jednadžbe linearne regresije u matrični oblik”

Pomoćni materijali

1. Književnost

1) Primijenjena regresiona analiza / N. Draper, G. Smith - 2. izd. – M.: Finansije i statistika, 1986 (prevod s engleskog)

2) Teorija vjerovatnoće i matematička statistika / V.E. Gmurman - 9. izd. - M.: Viša škola, 2003

3) Teorija vjerovatnoće / N.I. Černova - Novosibirsk: Novosibirski državni univerzitet, 2007

4) Poslovna analitika: od podataka do znanja / Paklin N. B., Oreshkov V. I. - 2. izd. — Sankt Peterburg: Petar, 2013

5) Nauka o podacima Nauka o podacima od nule / Joel Gras - Sankt Peterburg: BHV Petersburg, 2017.

6) Praktična statistika za stručnjake iz nauke o podacima / P. Bruce, E. Bruce - Sankt Peterburg: BHV Petersburg, 2018.

2. Predavanja, kursevi (video)

1) Suština metode maksimalne vjerovatnoće, Boris Demeshev

2) Metoda maksimalne vjerovatnoće u kontinuiranom slučaju, Boris Demeshev

3) Logistička regresija. Otvoreni ODS kurs, Yury Kashnitsky

4) Predavanje 4, Evgenij Sokolov (od 47 minuta videa)

5) Logistička regresija, Vjačeslav Voroncov

3. Internet izvori

1) Linearna klasifikacija i regresijski modeli

2) Kako lako razumjeti logističku regresiju

3) Funkcija logističke greške

4) Nezavisni testovi i Bernulijeva formula

5) Balada o MMP-u

6) Metoda maksimalne vjerovatnoće

7) Formule i svojstva logaritama

8) Zašto broj Žvakanje logističke regresije?

9) Linearni klasifikator

izvor: www.habr.com

Dodajte komentar