Žvakanje logističke regresije

Žvakanje logističke regresije

U ovom ćemo članku analizirati teorijske proračune transformacije funkcije linearne regresije в funkcija inverzne logit transformacije (drugače nazvana funkcija logističkog odgovora). Zatim, koristeći arsenal metoda najveće vjerojatnosti, u skladu s modelom logističke regresije, izvodimo funkciju gubitka Logistički gubitak, odnosno definirat ćemo funkciju kojom se biraju parametri težinskog vektora u modelu logističke regresije Žvakanje logističke regresije.

Pregled članka:

  1. Ponovimo linearni odnos između dviju varijabli
  2. Utvrdimo potrebu za transformacijom funkcije linearne regresije Žvakanje logističke regresije в funkcija logističkog odgovora Žvakanje logističke regresije
  3. Provedimo transformacije i izlaz funkcija logističkog odgovora
  4. Pokušajmo shvatiti zašto je metoda najmanjih kvadrata loša pri odabiru parametara Žvakanje logističke regresije funkcije Logistički gubitak
  5. Koristimo metoda najveće vjerojatnosti za utvrđivanje funkcije odabira parametara Žvakanje logističke regresije:

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

    Žvakanje logističke regresije

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

    Žvakanje logističke regresije


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

Ovaj je članak prvenstveno namijenjen podatkovnim znanstvenicima s početnom razinom znanja o osnovama strojnog učenja.

Članak će također pružiti kôd za crtanje grafikona i izračune. Sav kod je napisan na jeziku piton 2.7. Dopustite mi da unaprijed objasnim "novost" korištene verzije - to je jedan od uvjeta za pohađanje dobro poznatog tečaja iz Yandex na isto tako poznatoj online obrazovnoj platformi Coursera, i, kao što se moglo pretpostaviti, materijal je pripremljen na temelju ovog tečaja.

01. Pravocrtna ovisnost

Sasvim je razumno postaviti pitanje - kakve veze ima linearna ovisnost i logistička regresija?

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

U studiju je prvi primjer i radi se, točno, o pravocrtnoj ovisnosti veličina koje se proučavaju. U procesu pripreme članka naišao sam na primjer koji je već mnoge naljutio - ovisnost struje o naponu (“Primijenjena regresijska analiza”, N. Draper, G. Smith). Pogledat ćemo to i ovdje.

U skladu s Ohmov zakon:

Žvakanje logističke regresijeGdje Žvakanje logističke regresije - jakost struje, Žvakanje logističke regresije - napon, Žvakanje logističke regresije - otpor.

Da nismo znali Ohmov zakon, onda bismo mogli empirijski pronaći ovisnost promjenom Žvakanje logističke regresije i mjerenje Žvakanje logističke regresije, dok podržava Žvakanje logističke regresije fiksni. Tada bismo vidjeli da je graf ovisnosti Žvakanje logističke regresije iz Žvakanje logističke regresije daje više ili manje ravnu liniju kroz ishodište. Kažemo "više ili manje" jer, iako je odnos zapravo točan, naša mjerenja mogu sadržavati male pogreške, pa stoga točke na grafikonu možda neće pasti točno na liniju, već će biti nasumično raštrkane oko nje.

Grafikon 1 “Ovisnost” Ž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 jednadžbe linearne regresije

Pogledajmo još jedan primjer. Zamislimo da radimo u banci i naš je zadatak odrediti kolika je vjerojatnost da dužnik vrati kredit ovisno o određenim čimbenicima. Kako bismo pojednostavili zadatak, razmotrit ćemo samo dva faktora: mjesečnu plaću zajmoprimca i mjesečni iznos otplate kredita.

Zadatak je vrlo uvjetan, ali ovim primjerom možemo razumjeti zašto ga nije dovoljno koristiti funkcije linearne regresije, a također saznajte koje transformacije je potrebno provesti s funkcijom.

Vratimo se primjeru. Podrazumijeva se da što je veća plaća, dužnik će mjesečno moći izdvojiti više za otplatu kredita. Istodobno, za određeni raspon plaća taj će odnos biti prilično linearan. Na primjer, uzmimo raspon plaće od 60.000 200.000 RUR do 3 5.000 RUR i pretpostavimo da je u navedenom rasponu plaće ovisnost veličine mjesečne isplate o veličini plaće linearna. Recimo da je za navedeni raspon plaća otkriveno da omjer plaće i isplate ne može pasti ispod XNUMX, a zajmoprimac i dalje mora imati rezervu od XNUMX RUR. I samo u ovom slučaju, pretpostavit ćemo da će dužnik vratiti 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 plaće i otplate kredita s fiksnim parametrima u jednadžbu Žvakanje logističke regresije Možete odlučiti hoćete li izdati ili odbiti kredit.

Gledajući unaprijed, napominjemo da, uz zadane parametre Žvakanje logističke regresije funkcija linearne regresije, korišteno u funkcije logističkog odgovora će proizvesti velike vrijednosti koje će komplicirati izračune za određivanje vjerojatnosti 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 ovo za ubuduće, ali sada, da bi bilo još jasnije o čemu govorimo, razmotrimo situaciju s tri potencijalna zajmoprimca.

Tablica 1 “Potencijalni zajmoprimci”

Žvakanje logističke regresije

Kod za generiranje tablice

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

Sukladno podacima u tablici, Vasya, s plaćom od 120.000 RUR, želi dobiti kredit kako bi ga mogao otplaćivati ​​mjesečno u iznosu od 3.000 RUR. Utvrdili smo da za odobrenje zajma Vasjina plaća mora biti tri puta veća od iznosa isplate, a mora ostati još 5.000 RUR. Vasya zadovoljava ovaj zahtjev: Žvakanje logističke regresije. Čak 106.000 RUR ostaje. Unatoč tome što se pri proračunu Žvakanje logističke regresije smanjili smo izglede Žvakanje logističke regresije 25.000 puta, rezultat je bio isti - kredit može biti odobren. Fedya će također dobiti kredit, ali Lesha će, unatoč činjenici da dobiva najviše, morati obuzdati svoje apetite.

Nacrtajmo graf za ovaj slučaj.

Grafikon 2 “Klasifikacija zajmoprimaca”

Žvakanje logističke regresije

Kod za crtanje 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()

Dakle, naša ravna crta, konstruirana u skladu s funkcijom Žvakanje logističke regresije, odvaja "loše" zajmoprimce od "dobrih". Oni zajmoprimci čije se želje ne poklapaju s njihovim mogućnostima nalaze se iznad crte (Lesha), dok su oni koji su, prema parametrima našeg modela, sposobni otplatiti kredit, ispod crte (Vasya i Fedya). Drugim riječima, možemo reći sljedeće: naša izravna linija dijeli zajmoprimce u dvije klase. Označimo ih na sljedeći način: klasi Žvakanje logističke regresije One zajmoprimce koji će najvjerojatnije vratiti kredit klasificirati ćemo kao Žvakanje logističke regresije ili Žvakanje logističke regresije Uključit ćemo one zajmoprimce koji najvjerojatnije neće moći vraćati kredit.

Sažmimo zaključke iz ovog jednostavnog primjera. Uzmimo bod Žvakanje logističke regresije i zamjenom koordinata točke u odgovarajuću jednadžbu pravca Žvakanje logističke regresije, razmotrite tri opcije:

  1. Ako je točka ispod crte i pripisujemo je klasi Žvakanje logističke regresije, zatim vrijednost funkcije Žvakanje logističke regresije bit će pozitivno od Žvakanje logističke regresije na Žvakanje logističke regresije. To znači da možemo pretpostaviti da je vjerojatnost otplate kredita unutar Žvakanje logističke regresije. Što je veća vrijednost funkcije, veća je vjerojatnost.
  2. Ako je točka iznad pravca i pridružujemo je klasi Žvakanje logističke regresije ili Žvakanje logističke regresije, tada će vrijednost funkcije biti negativna od Žvakanje logističke regresije na Žvakanje logističke regresije. Tada ćemo pretpostaviti da je vjerojatnost otplate duga unutar Žvakanje logističke regresije i što je veća apsolutna vrijednost funkcije, to je veće naše povjerenje.
  3. Točka je na ravnoj liniji, na granici između dva razreda. U ovom slučaju, vrijednost funkcije Žvakanje logističke regresije bit će jednaki Žvakanje logističke regresije a vjerojatnost vraćanja kredita jednaka je Žvakanje logističke regresije.

Sada zamislimo da nemamo dva čimbenika, nego desetke, a ne tri, nego tisuće zajmoprimaca. Tada ćemo umjesto ravne linije imati m-dimenzionalni ravnina i koeficijenti Žvakanje logističke regresije nećemo biti izvađeni iz zraka, već izvedeni po svim pravilima, a na temelju prikupljenih podataka o dužnicima koji su ili nisu vratili kredit. I doista, imajte na umu da sada biramo zajmoprimce koristeći već poznate koeficijente Žvakanje logističke regresije. Zapravo, zadatak logističkog regresijskog modela je upravo određivanje parametara Žvakanje logističke regresije, pri kojoj je vrijednost funkcije gubitka Logistički gubitak težit će minimumu. Ali o tome kako se vektor izračunava Žvakanje logističke regresije, više ćemo saznati u 5. dijelu č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 zajam, a kome treba uskratiti. Ali s takvim podacima ne možete ići direktoru, jer su od nas htjeli dobiti vjerojatnost otplate kredita po svakom dužniku. Što uraditi? 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 inverzna 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. pretpostavit ćemo da znamo vrijednost vjerojatnosti, koja se nalazi u rasponu od Žvakanje logističke regresije na Žvakanje logističke regresije a zatim ćemo ovu vrijednost “odmotati” na cijeli niz brojeva od Žvakanje logističke regresije na Žvakanje logističke regresije.

03. Deriviramo logističku funkciju odgovora

Korak 1. Pretvorite vrijednosti vjerojatnosti u raspon Žvakanje logističke regresije

Tijekom transformacije funkcije Žvakanje logističke regresije в funkcija logističkog odgovora Žvakanje logističke regresije Ostavit ćemo našeg kreditnog analitičara na miru i umjesto toga krenuti u obilazak kladionica. Ne, naravno, nećemo se kladiti, sve što nas tu zanima je značenje izraza, npr. šansa je 4 prema 1. Koeficijenti, poznati svim kladioničarima, su omjer "uspjeha" i " neuspjesi”. U terminima vjerojatnosti, izgledi su vjerojatnost da će se događaj dogoditi podijeljena s vjerojatnošću da se događaj neće dogoditi. Zapišimo formulu za vjerojatnost događanja događaja Žvakanje logističke regresije:

Žvakanje logističke regresije

Gdje Žvakanje logističke regresije - vjerojatnost nastanka događaja, Žvakanje logističke regresije — vjerojatnost da se događaj NE dogodi

Na primjer, ako je vjerojatnost da mladi, snažni i razigrani konj po nadimku “Veterok” u utrci pobijedi staru i mlohavu staricu po imenu “Matilda” jednaka Žvakanje logističke regresije, onda će šanse za uspjeh za “Veterok” biti Žvakanje logističke regresije к Žvakanje logističke regresije Žvakanje logističke regresije i obrnuto, znajući izglede, neće nam biti teško izračunati vjerojatnost Žvakanje logističke regresije:

Žvakanje logističke regresije

Dakle, naučili smo "prevesti" vjerojatnost u šanse, koje uzimaju vrijednosti iz Žvakanje logističke regresije na Žvakanje logističke regresije. Napravimo još jedan korak i naučimo "prevesti" vjerojatnost na cijeli brojevni pravac Žvakanje logističke regresije na Žvakanje logističke regresije.

Korak 2. Pretvorite vrijednosti vjerojatnosti u raspon Žvakanje logističke regresije

Ovaj korak je vrlo jednostavan - uzmimo logaritam izgleda na bazi Eulerovog broja Žvakanje logističke regresije i dobivamo:

Ž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, štoviše, trebao bi biti pozitivan: Žvakanje logističke regresije. To je istina.

Iz znatiželje, provjerimo što 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 vjerojatnosti iz Žvakanje logističke regresije na Žvakanje logističke regresije duž cijelog brojevnog pravca od Žvakanje logističke regresije na Žvakanje logističke regresije. U sljedećem koraku ćemo učiniti suprotno.

Za sada napominjemo da u skladu s pravilima logaritma, znamo vrijednost funkcije Žvakanje logističke regresije, možete izračunati izglede:

Žvakanje logističke regresije

Ova metoda određivanja koeficijenata bit će nam korisna u sljedećem koraku.

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

Tako smo učili, znajući Žvakanje logističke regresije, pronađite vrijednosti funkcije Žvakanje logističke regresije. Međutim, zapravo nam je potrebno upravo suprotno – poznavanje vrijednosti Žvakanje logističke regresije pronaći Žvakanje logističke regresije. Da bismo to učinili, obratimo se konceptu kao što je funkcija inverznih izgleda, prema kojoj:

Žvakanje logističke regresije

U članku nećemo izvoditi gornju formulu, već ćemo je provjeriti pomoću brojeva iz gornjeg primjera. Znamo da s izgledima 4 prema 1 (Žvakanje logističke regresije), vjerojatnost da se događaj dogodi je 0.8 (Žvakanje logističke regresije). Napravimo zamjenu: Žvakanje logističke regresije. To se poklapa s našim ranijim izrač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 obrnutih omjera. Dobivamo:

Žvakanje logističke regresije

Podijelite i brojnik i nazivnik sa Žvakanje logističke regresije, zatim:

Žvakanje logističke regresije

Za svaki slučaj, da se uvjerimo da nigdje nismo pogriješili, napravit ćemo još jednu malu provjeru. U koraku 2, mi za Žvakanje logističke regresije odredio da Žvakanje logističke regresije. Zatim, zamjena vrijednosti Žvakanje logističke regresije u funkciju logističkog odgovora, očekujemo da ćemo dobiti Žvakanje logističke regresije. Zamijenimo 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 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()

U literaturi se također može pronaći naziv ove funkcije kao sigmoidna funkcija. Grafikon jasno pokazuje da se glavna promjena u vjerojatnosti da objekt pripada klasi događa unutar relativno malog raspona Žvakanje logističke regresije, negdje od Žvakanje logističke regresije na Žvakanje logističke regresije.

Predlažem da se vratite našem kreditnom analitičaru i pomognete mu izračunati vjerojatnost otplate kredita, inače riskira da ostane bez bonusa :)

Tablica 2 “Potencijalni zajmoprimci”

Žvakanje logističke regresije

Kod za generiranje tablice

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 vjerojatnost povrata kredita. Općenito, ovo se čini istinitim.

Doista, vjerojatnost da će Vasya, s plaćom od 120.000 RUR, moći dati 3.000 RUR banci svaki mjesec je blizu 100%. Usput, moramo razumjeti da banka može izdati zajam Leshi ako politika banke predviđa, na primjer, kreditiranje klijenata s vjerojatnošću 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đer treba napomenuti da je omjer plaće i isplate od najmanje 3 i s maržom od 5.000 RUR uzet sa stropa. Stoga nismo mogli koristiti vektor težine u izvornom obliku Žvakanje logističke regresije. Trebalo je jako smanjiti koeficijente, au ovom slučaju smo svaki koeficijent podijelili s 25.000, odnosno u biti smo korigirali rezultat. Ali to je učinjeno posebno kako bi se pojednostavilo razumijevanje materijala u početnoj fazi. U životu nećemo trebati izmišljati i prilagođavati koeficijente, već ih pronaći. U sljedećim odjeljcima članka izvest ćemo 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 odabira vektora težina već poznajemo Žvakanje logističke regresijeKao metoda najmanjih kvadrata (LSM) i zapravo, zašto ga onda ne bismo koristili u problemima binarne klasifikacije? Doista, ništa vas ne sprječava u korištenju MNC, samo ova metoda u problemima klasifikacije daje rezultate koji su manje točni od Logistički gubitak. Za to postoji teoretska osnova. Pogledajmo prvo jedan jednostavan primjer.

Pretpostavimo da naši modeli (koristeći MSE и Logistički gubitak) već su započeli odabir vektora težina Žvakanje logističke regresije i zaustavili smo izračun u nekom koraku. Nije važno 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 objekt koji pripada klasi Žvakanje logističke regresije. Ispitujemo dva slučaja kada je, u skladu s odabranim vektorom težina, naš model jako pogrešan i obrnuto - model je vrlo siguran da objekt pripada klasi Žvakanje logističke regresije. Da vidimo koje će se kazne izdati prilikom korištenja MNC и Logistički gubitak.

Kod za izračun 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 s vjerojatnošću od 0,01

Kazna za korištenje MNC bit će:
Žvakanje logističke regresije

Kazna za korištenje Logistički gubitak bit će:
Žvakanje logističke regresije

Slučaj snažnog povjerenja — model dodjeljuje objekt klasi Žvakanje logističke regresije s vjerojatnošću od 0,99

Kazna za korištenje MNC bit će:
Žvakanje logističke regresije

Kazna za korištenje Logistički gubitak bit će:
Žvakanje logističke regresije

Ovaj primjer dobro ilustrira da u slučaju velike pogreške funkcija gubitka Gubitak dnevnika penalizira model značajno više od MSE. Razmotrimo sada koja je teorijska pozadina korištenja funkcije gubitka Gubitak dnevnika u problemima klasifikacije.

05. Metoda najveće vjerojatnosti 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 - zajmoprimci banke: Vasya, Fedya i Lesha.

Za svaki slučaj, prije razvijanja primjera, podsjetit ću vas da u životu imamo posla s uzorkom za obuku od tisuća ili milijuna objekata s desecima ili stotinama karakteristika. Međutim, ovdje su brojke uzete tako da lako mogu stati u glavu podatkovnog znanstvenika početnika.

Vratimo se primjeru. Zamislimo da je direktor banke odlučio izdati kredit svima kojima je potreban, unatoč činjenici da mu je algoritam rekao da ga ne izda Leshi. A sada je prošlo dovoljno vremena i znamo tko je od trojice heroja vratio kredit, a tko nije. Što je bilo za očekivati: Vasja i Fedja su vratili kredit, ali Leša nije. Sada zamislimo da će nam ovaj rezultat biti novi uzorak za obuku, a istodobno kao da su nestali svi podaci o čimbenicima koji utječu na vjerojatnost otplate kredita (plaća zajmoprimca, veličina mjesečne rate). Tada, intuitivno, možemo pretpostaviti da svaki treći dužnik ne otplaćuje kredit banci, odnosno vjerojatnost da će sljedeći dužnik vratiti kredit Žvakanje logističke regresije. Ova intuitivna pretpostavka ima teoretsku potvrdu i temelji se na metoda najveće vjerojatnosti, često se u literaturi naziva načelo najveće vjerojatnosti.

Najprije se upoznajmo s pojmovnim aparatom.

Vjerojatnost uzorkovanja je vjerojatnost dobivanja točno takvog uzorka, dobivanja točno takvih opažanja/rezultata, tj. umnožak vjerojatnosti dobivanja svakog od rezultata uzorka (na primjer, je li zajam Vasje, Fedje i Leše otplaćen ili nije otplaćen u isto vrijeme).

Funkcija vjerojatnosti povezuje vjerojatnost uzorka s vrijednostima parametara distribucije.

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

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

Gornji unos može se protumačiti na sljedeći način. Zajednička vjerojatnost da će Vasja i Fedja vratiti zajam jednaka je Žvakanje logističke regresije, vjerojatnost da Lesha NEĆE vratiti zajam jednaka je Žvakanje logističke regresije (budući da se NIJE dogodila otplata kredita), stoga je zajednička vjerojatnost sva tri događaja jednaka Žvakanje logističke regresije.

Metoda najveće vjerojatnosti je metoda za procjenu nepoznatog parametra maksimiziranjem funkcije vjerojatnosti. U našem slučaju, moramo pronaći takvu vrijednost Žvakanje logističke regresijena kojem Žvakanje logističke regresije doseže svoj maksimum.

Odakle zapravo ideja - tražiti vrijednost nepoznatog parametra pri kojem funkcija vjerojatnosti doseže maksimum? Porijeklo ideje proizlazi iz ideje da je uzorak jedini izvor znanja koji nam je dostupan o populaciji. U uzorku je zastupljeno sve što znamo o populaciji. Dakle, sve što možemo reći jest da je uzorak najtočniji odraz populacije koja nam je dostupna. Stoga moramo pronaći parametar pri kojem raspoloživi uzorak postaje najvjerojatniji.

Očito se radi o problemu optimizacije u kojem treba pronaći točku ekstrema funkcije. Za pronalazak točke ekstrema potrebno je uzeti u obzir uvjet prvog reda, odnosno izjednačiti derivaciju funkcije s nulom i riješiti jednadžbu s obzirom na željeni parametar. Međutim, traženje derivacije umnoška velikog broja faktora može biti dugotrajan zadatak; da bi se to izbjeglo, postoji posebna tehnika - prebacivanje na logaritam funkcije vjerojatnosti. Zašto je takav prijelaz moguć? Obratimo pozornost na to da ne tražimo ekstrem same funkcijeŽvakanje logističke regresije, te točka ekstrema, odnosno vrijednost nepoznatog parametra Žvakanje logističke regresijena kojem Žvakanje logističke regresije doseže svoj maksimum. Kada prijeđemo na logaritam, točka ekstrema se ne mijenja (iako će se sam ekstrem razlikovati), budući da je logaritam monotona funkcija.

Idemo, u skladu s gore navedenim, nastaviti razvijati naš primjer s posudbama Vasye, Fedye i Leshe. Prvo prijeđimo na logaritam funkcije vjerojatnosti:

Žvakanje logističke regresije

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

Žvakanje logističke regresije

I na kraju, razmotrite uvjet prvog reda - izjednačavamo derivaciju funkcije s nulom:

Žvakanje logističke regresije

Dakle, naša intuitivna procjena vjerojatnosti otplate kredita Žvakanje logističke regresije bila teoretski opravdana.

Sjajno, ali što da sada radimo s ovom informacijom? Ako pretpostavimo da svaki treći dužnik ne vrati novac banci, onda će banka neizbježno bankrotirati. Tako je, ali samo kada se procjenjuje vjerojatnost otplate kredita jednakom Žvakanje logističke regresije Nismo uzeli u obzir čimbenike koji utječu na otplatu kredita: plaću zajmoprimca i veličinu mjesečne otplate. Podsjetimo, prethodno smo izračunali vjerojatnost otplate kredita za svakog klijenta, uzimajući u obzir te iste faktore. Logično je da smo dobili vjerojatnosti različite od konstantne jednake Žvakanje logističke regresije.

Definirajmo vjerojatnost uzoraka:

Kod za izračunavanje vjerojatnosti 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

Vjerojatnost uzorka pri izračunu vjerojatnosti otplate kredita uzimajući u obzir faktore Žvakanje logističke regresije:

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

Vjerojatnost uzorka s vjerojatnošću izračunatom ovisno o faktorima pokazala se većom od vjerojatnosti s konstantnom vrijednošću vjerojatnosti. Što to znači? To sugerira da je poznavanje faktora omogućilo točniji odabir vjerojatnosti otplate kredita za svakog klijenta. Stoga bi prilikom izdavanja sljedećeg kredita bilo ispravnije koristiti model predložen na kraju odjeljka 3. članka za procjenu vjerojatnosti otplate duga.

Ali onda, ako želimo maksimizirati funkcija vjerojatnosti uzorka, zašto onda ne upotrijebiti neki algoritam koji će proizvesti vjerojatnosti za Vasju, Fedju i Lešu, na primjer, jednake 0.99, 0.99 i 0.01, redom. Možda će takav algoritam imati dobre rezultate na uzorku za obuku, budući da će približiti vrijednost vjerojatnosti uzorka Žvakanje logističke regresije, ali, prvo, takav algoritam će najvjerojatnije imati poteškoća sa sposobnošću generalizacije, i 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 vjerojatnost da Vasya i Fedya vrate zajam biti ista, uzimajući u obzir faktore koji su nam poznati? Sa stajališta zdrave logike, naravno da ne, ne može. Tako će Vasya plaćati 2.5% svoje plaće mjesečno za otplatu kredita, a Fedya - gotovo 27,8%. Također u grafikonu 2 "Klasifikacija klijenata" vidimo da je Vasja mnogo dalje od linije koja razdvaja razrede nego Fedja. I konačno, znamo da funkcija Žvakanje logističke regresije za Vasju i Fedju ima različite vrijednosti: 4.24 za Vasju i 1.0 za Fedju. Sada, ako je Fedja, na primjer, zarađivao red veličine više ili tražio manji zajam, tada bi vjerojatnost otplate zajma za Vasju i Fedju bila slična. Drugim riječima, linearna ovisnost se ne može prevariti. A kad bismo zapravo izračunali izglede Žvakanje logističke regresije, i nismo ih uzeli iz zraka, slobodno možemo reći da su naše vrijednosti Žvakanje logističke regresije najbolje nam omogućuju da procijenimo vjerojatnost otplate kredita od strane svakog zajmoprimca, ali budući da smo se složili pretpostaviti da je određivanje koeficijenata Žvakanje logističke regresije provedeno u skladu sa svim pravilima, onda ćemo pretpostaviti da je tako - naši koeficijenti omogućuju nam bolju procjenu vjerojatnosti :)

Međutim, skrenuli smo. U ovom odjeljku moramo razumjeti kako se određuje vektor težina Žvakanje logističke regresije, što je potrebno za procjenu vjerojatnosti otplate kredita od strane svakog dužnika.

Ukratko rezimiramo s kojim arsenalom idemo tražiti šanse Žvakanje logističke regresije:

1. Pretpostavljamo da je odnos između ciljane varijable (vrijednosti predviđanja) i faktora koji utječe na rezultat linearan. Iz tog razloga se koristi funkcija linearne regresije vrsta Ž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 sposobni otplaćivati ​​kredit i oni koji nisu). U našem slučaju jednadžba ima oblik Žvakanje logističke regresije.

2. Koristimo inverzna logit funkcija vrsta Žvakanje logističke regresije odrediti vjerojatnost pripadnosti objekta klasi Žvakanje logističke regresije.

3. Naš set za obuku smatramo implementacijom generaliziranog Bernoullijeve sheme, odnosno za svaki objekt se generira slučajna varijabla koja s vjerojatnošću Žvakanje logističke regresije (svoj za svaki objekt) poprima vrijednost 1 i s vjerojatnošću Žvakanje logističke regresije - 0.

4. Znamo što nam je potrebno za maksimiziranje funkcija vjerojatnosti uzorka uzimajući u obzir prihvaćene čimbenike kako bi dostupni uzorak postao najvjerojatniji. Drugim riječima, moramo odabrati parametre pri kojima će uzorak biti najvjerojatniji. U našem slučaju odabrani parametar je vjerojatnost povrata kredita Žvakanje logističke regresije, što pak ovisi o nepoznatim koeficijentima Žvakanje logističke regresije. Dakle, moramo pronaći takav vektor težina Žvakanje logističke regresije, pri čemu će vjerojatnost uzorka biti najveća.

5. Znamo što maksimizirati funkcije vjerojatnosti uzorka možete koristiti metoda najveće vjerojatnosti. I znamo sve lukave trikove za rad s ovom metodom.

Ovako ispada 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 označene klase objekata. Dogodilo se da se u problemima klasifikacije s dvije klase klase označavaju kao Žvakanje logističke regresije и Žvakanje logističke regresije ili Žvakanje logističke regresije. Ovisno o zapisu, izlaz će imati odgovarajuću funkciju gubitka.

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

Ranije, prilikom utvrđivanja vjerojatnosti uzorka, u kojem je vjerojatnost otplate duga od strane zajmoprimca izračunata na temelju faktora i zadanih koeficijenata Žvakanje logističke regresije, primijenili smo formulu:

Žvakanje logističke regresije

Zapravo Žvakanje logističke regresije je smisao 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 zapišemo funkciju vjerojatnosti uzorka na sljedeći način:

Žvakanje logističke regresije

Događa se da je ponekad nekim analitičarima početnicima teško odmah razumjeti kako ova funkcija funkcionira. Pogledajmo 4 kratka primjera koji će razjasniti stvari:

1. Ako Žvakanje logističke regresije (tj. prema uzorku za obuku, objekt pripada klasi +1), i naš algoritam Žvakanje logističke regresije određuje vjerojatnost svrstavanja objekta u klasu Žvakanje logističke regresije jednako 0.9, tada će se ovaj dio vjerojatnosti uzorka izračunati na sljedeći način:

Žvakanje logističke regresije

2. Ako Žvakanje logističke regresijeI Žvakanje logističke regresije, tada će izračun biti ovakav:

Žvakanje logističke regresije

3. Ako Žvakanje logističke regresijeI Žvakanje logističke regresije, tada će izračun biti ovakav:

Žvakanje logističke regresije

4. Ako Žvakanje logističke regresijeI Žvakanje logističke regresije, tada će izračun biti ovakav:

Žvakanje logističke regresije

Očito je da će funkcija vjerojatnosti biti maksimizirana u slučajevima 1 i 3 ili u općem slučaju - s točno pogodenim vrijednostima vjerojatnosti dodjele objekta klasi Žvakanje logističke regresije.

Zbog činjenice da pri određivanju vjerojatnosti dodjele objekta klasi Žvakanje logističke regresije Jedino 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 vjerojatnosti u odnosu na vektor težina Žvakanje logističke regresije. Međutim, prvo ima smisla pojednostaviti zadatak za sebe: tražit ćemo izvod logaritma funkcije vjerojatnosti.

Žvakanje logističke regresije

Zašto nakon logaritma, in funkcije logističke greške, promijenili smo znak od Žvakanje logističke regresije na Žvakanje logističke regresije. Sve je jednostavno, budući da je u problemima procjene kvalitete modela uobičajeno minimizirati vrijednost funkcije, pomnožili smo desnu stranu izraza s Žvakanje logističke regresije i sukladno tome, umjesto maksimiziranja, sada minimiziramo funkciju.

Zapravo, upravo sada, pred vašim očima, funkcija gubitka je mukotrpno izvedena - Logistički gubitak za set za vježbanje s dvije klase: Ž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 pomoću metoda numeričke optimizacije, poput gradijentnog spuštanja ili stohastičkog gradijentnog spuštanja, odaberite najoptimalnije koeficijente Žvakanje logističke regresije. No, s obzirom na popriličan obujam članka, predlaže se da diferencijaciju provedete sami ili će to možda biti tema za sljedeći članak s puno aritmetike bez tako detaljnih primjera.

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

Ovdje će pristup biti isti kao i kod nastave Žvakanje logističke regresije и Žvakanje logističke regresije, već sam put do izlaza funkcije gubitka Logistički gubitak, bit će kićeniji. Započnimo. Za funkciju vjerojatnosti koristit ćemo operator "ako tada..."... Odnosno, ako Žvakanje logističke regresijeObjekt pripada klasi Žvakanje logističke regresije, tada za izračunavanje vjerojatnosti uzorka koristimo vjerojatnost Žvakanje logističke regresije, ako objekt pripada klasi Žvakanje logističke regresije, zatim zamjenjujemo u vjerojatnost Žvakanje logističke regresije. Ovako izgleda funkcija vjerojatnosti:

Žvakanje logističke regresije

Opišimo na prstima kako to radi. Razmotrimo 4 slučaja:

1. Ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerojatnost uzorkovanja "ići" Žvakanje logističke regresije

2. Ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerojatnost uzorkovanja "ići" Žvakanje logističke regresije

3. Ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerojatnost uzorkovanja "ići" Žvakanje logističke regresije

4. Ako Žvakanje logističke regresije и Žvakanje logističke regresije, tada će vjerojatnost uzorkovanja "ići" Žvakanje logističke regresije

Očito je da u slučajevima 1 i 3, kada su vjerojatnosti ispravno određene algoritmom, funkcija vjerojatnosti će biti maksimiziran, odnosno to je upravo ono što smo htjeli dobiti. Međutim, ovaj je pristup prilično glomazan i sljedeće ćemo razmotriti kompaktniju notaciju. Ali prvo, logaritmirajmo funkciju vjerojatnosti s promjenom predznaka, budući da ćemo je sada minimizirati.

Žvakanje logističke regresije

Umjesto toga zamijenimo Žvakanje logističke regresije izraz Žvakanje logističke regresije:

Žvakanje logističke regresije

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

Žvakanje logističke regresije

Sada je vrijeme da se riješite operatera "ako tada...". Imajte na umu da kada objekt Ž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 potenciju Žvakanje logističke regresije. Stoga se oznaka za stupanj može pojednostaviti kombiniranjem oba slučaja u jedan: Žvakanje logističke regresije, tada funkcija logističke pogreške poprimit će oblik:

Žvakanje logističke regresije

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

Žvakanje logističke regresije

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

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

Žvakanje logističke regresije Autorov prethodni rad je "Dovođenje jednadžbe linearne regresije u matrični oblik"

Pomoćni materijali

1. Književnost

1) Primijenjena regresijska analiza / N. Draper, G. Smith - 2. izd. – M.: Financije i statistika, 1986. (prijevod s engleskog)

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

3) Teorija vjerojatnosti / N.I. Chernova - Novosibirsk: Novosibirsko državno sveučilište, 2007

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

5) Znanost o podacima Znanost o podacima od nule / Joel Gras - St. Petersburg: BHV Petersburg, 2017.

6) Praktična statistika za stručnjake za znanost o podacima / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018.

2. Predavanja, tečajevi (video)

1) Suština metode maksimalne vjerojatnosti, Boris Demeshev

2) Metoda najveće vjerojatnosti u kontinuiranom slučaju, Boris Demeshev

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

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

5) Logistička regresija, Vjačeslav Voroncov

3. Internetski izvori

1) Linearna klasifikacija i regresijski modeli

2) Kako jednostavno razumjeti logističku regresiju

3) Funkcija logističke pogreške

4) Neovisni testovi i Bernoullijeva formula

5) Balada o MMP-u

6) Metoda najveće vjerojatnosti

7) Formule i svojstva logaritama

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

9) Linearni klasifikator

Izvor: www.habr.com

Dodajte komentar