Logistilise regressiooni analüüs

Logistilise regressiooni analüüs

Selles artiklis käsitleme teoreetilisi põhialuseid lineaarse regressioonifunktsiooni ja tagasilogitiseerimise funktsiooni (tuntud ka kui logistilise vastuse funktsioon). Seejärel, kasutades maksimaalsete tõenäosuste meetodit, tuletame välja kaotuse funktsiooni vastavalt logistilise regressiooni mudelile Logistic Loss, teisisõnu, määratleme funktsioon, millega logistilise regressiooni mudelis kohandatakse kaaluvektori parameetreid Logistilise regressiooni analüüs.

Artikli plaan:

  1. Korrame ka sirgjoonelist sõltuvust kahe muutuja vahel
  2. Määratleme vajaduse transformeerimise järele lineaarse regressioonifunktsiooni Logistilise regressiooni analüüs ja logistilise vastuse funktsiooni Logistilise regressiooni analüüs
  3. Teeme ümberkujundusi ja tuletame välja logistilise vastuse funktsiooni
  4. Püüame mõista, miks on minimaalsete ruutude meetod parameetrite kohandamisel halb valik Logistilise regressiooni analüüs funktsioone Logistic Loss
  5. Kasutame maksimaalse tõenäosuse meetodit selleks, et tuvastada parameetrite kohandamise funktsioonid Logistilise regressiooni analüüs:

    5.1. Juhtum 1: funktsioon Logistic Loss klassimärgistuse objektide jaoks 0 ja 1:

    Logistilise regressiooni analüüs

    5.2. Juhtum 2: funktsioon Logistic Loss klassimärgistuse objektide jaoks -1 ja +1:

    Logistilise regressiooni analüüs


Artikkel on täis lihtsaid näiteid, kus kõik arvutused on kergesti teostatavad suuliselt või paberil, mõningatel juhtudel võib osutuda vajalikuks kalkulaator. Nii et valmistuge 🙂

See artikkel on rohkem suunatud andeteadlastele, kellel on algteadmised masinõppe põhialustes.

Artiklis on lisatud ka kood jooniste ja arvutuste tegemiseks. Kogu kood on kirjutatud keeles python 2.7. Selgitan eelnevalt, et „uuendus“ seotud versioonist on üks tingimustest tuntud kursuse läbitamiseks Yandexilt tuntud veebihariduse platvormil Coursera, ja nagu võib arvata, on materjal koostatud selle kursuse põhjal.

01. Sirgjooneline sõltuvus

On täiesti mõistlik küsida - mis tähenduses on sirgjooneline sõltuvus ja logistiline regressioon?

Kõik on lihtne! Logistiline regressioon on üks mudeleid, mis kuuluvad lineaarsete klassifikaatorite rikkausse. Lihtsustatult öeldes, lineaarse klassifikaatori ülesanne on ennustada sihtväärtusi Logistilise regressiooni analüüs muutujatest (regressoritest) Logistilise regressiooni analüüs. Samuti eeldatakse, et seos tunnuste vahel Logistilise regressiooni analüüs ja sihtväärtuste Logistilise regressiooni analüüs on lineaarne. Sealt ka klassifikaatori nimi - lineaarne. Kui väga üldiselt kokku võtta, siis logistilise regressiooni mudeli aluseks on eeldus, et tunnuste vahel on lineaarne sõltuvus Logistilise regressiooni analüüs ja sihtväärtuste Logistilise regressiooni analüüs. Siin on see - seos.

Stuudios on esimene näide, ja see on õigesti, otsene seos uuritavate suuruste vahel. Artikli ettevalmistamise käigus sattusin näite peale, mis on paljudele juba üpris tuttav – sõltuvus voolust pingest. („Rakenduslik regressioonianalüüs“, N. Dreiper, G. Smith). Siin vaatleme seda samuti.

Vastavalt Oma seaduse järgi:

Logistilise regressiooni analüüs, kus Logistilise regressiooni analüüs — vool, Logistilise regressiooni analüüs — pinge, Logistilise regressiooni analüüs — takistus.

Kui me ei teaks Oma seadust, võiksime leida sõltuvuse empiiriliselt, muutes Logistilise regressiooni analüüs ja mõõtes Logistilise regressiooni analüüs, hoides samas Logistilise regressiooni analüüs constantsena. Siis näeksime, et sõltuvuse graafik Logistilise regressiooni analüüs alates Logistilise regressiooni analüüs annab rohkem või vähem sirge joone, mis läbib koordinaatide alguspunkti. Ütlesime „rohkem või vähem“, kuna kuigi sõltuvus on tegelikult täpne, võivad meie mõõtmised sisaldada väikeseid vigu ja seetõttu ei pruugi punktid graafikul rangelt joonele langeda, vaid on juhuslikult selle ümber hajutatud.

Graafik 1 „Sõltuvus Logistilise regressiooni analüüs alates Logistilise regressiooni analüüs»

Logistilise regressiooni analüüs

Graafiku joonistamise kood

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

02. Lineaarse regressiooni võrrandi ümberkujundamise vajadus

Käime läbi järgmise näite. Kujutame ette, et töötame pangas ja meil on ülesanne kindlaks teha krediidi tagasimaksmise tõenäosus laenuvõtja poolt sõltuvalt mõnest tegurist. Ülesande lihtsustamiseks vaatleme ainult kahte tegurit: laenuvõtja kuu palk ja kuu suurus, mida makstakse krediidi tagasimakseks.

Ülesanne on väga teoreetiline, kuid selle näite kaudu suudame mõista, miks selle lahendamiseks ei piisa lineaarse regressioonifunktsiooni, ja saame teada, milliseid muudatusi funktsiooniga on vaja teha.

Tagasi meie näite juurde. On arusaadav, et mida kõrgem on palk, seda rohkem suudab laenuvõtja igakuiselt maksta laenu tagasimiseks. Samuti, teatud palgarange puhul on see seos suhteliselt lineaarne. Oletame, et võtame palgavahemiku 60 000 R kuni 200 000 R ja eeldame, et antud palgavahemikus on igakuise makse ja palga suhe lineaarne. Oletame, et antud palgavahemikus on leitud, et laenuvõtja palk ei tohi olla madalam kui kolmandik makset ning laenuvõtjal peab jääma 5 000 R varuks. Ainult sel juhul arvame, et laenuvõtja suudab laenu pangale tagasi maksta. Seega, lineaarse regressiooni valem on järgmine:

Logistilise regressiooni analüüs

kus Logistilise regressiooni analüüs, Logistilise regressiooni analüüs, Logistilise regressiooni analüüs, Logistilise regressiooni analüüslaenuvõtja palk Logistilise regressiooni analüüs- Logistilise regressiooni analüüslaenu makse Logistilise regressiooni analüüs-i laenuvõtja.

Asendades valemisse palga ja laenu makse fikseeritud parameetritega Logistilise regressiooni analüüs saame teha otsuse laenu andmise või keeldumise osas.

Kiire ülevaate tegemiseks tasub märkida, et antud parameetrite puhul Logistilise regressiooni analüüs lineaarse regressiooni funktsioon, mida kasutatakse logistilise vastuse funktsiooni kaalud, toovad välja suured väärtused, mis muudavad laenu tagasimaksetõenäosuste arvutamiseks keeruliseks. Seetõttu on soovitatav meie koefitsiente vähendada näiteks 25 000 korda. Sellest koefitsientide muutmisest laenu andmise otsus ei muutu. Jätame selle hetke meelde tuleviku tarbeks ja et oleks veel selgem, millest räägime, vaatleme kolme potentsiaalset laenuvõtjat.

Tabel 1 «Potentsiaalsed laenuvõtjad»

Logistilise regressiooni analüüs

Kood tabeli loomiseks

import pandas as pd

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

data = {'Laenuvõtja':np.array(['Vasya', 'Fedya', 'Lesha']), 
        'Palk':np.array([120000,180000,210000]),
       'Makse':np.array([3000,50000,70000])}

df = pd.DataFrame(data)

df['f(w,x)'] = w_0 + df['Palk']*w_1 + df['Makse']*w_2

decision = []
for i in df['f(w,x)']:
    if i > 0:
        dec = 'Kinnitatud'
        decision.append(dec)
    else:
        dec = 'Keeldumine'
        decision.append(dec)
        
df['Otsus'] = decision

df[['Laenuvõtja', 'Palk', 'Makse', 'f(w,x)', 'Otsus']]

Tabeli andmete kohaselt soovib Vasya, kelle palk on 120 000 R, saada laenu, mille taotlemiseks peab ta igakuiselt maksma 3 000 R. Oleme kindlaks teinud, et laenu kinnitamiseks peab Vasya palk olema vähemalt kolm korda suurem kui makse ning tal peab olema veel 5 000 R varuks. See nõue on Vasya puhul täidetud: Logistilise regressiooni analüüs. Jääb isegi 106.000R. Hoolimata sellest, et arvutamisel Logistilise regressiooni analüüs vähendasime koefitsiente Logistilise regressiooni analüüs 25.000 korda, saime sama tulemuse — laen võib olla kinnitatud. Fedja saab ka laenu, kuid Leonid, hoolimata sellest, et ta teenib kõige rohkem, peab oma soove alandama.

Joonistame selle puhul graafiku.

Graafik 2 «Laenuvõtjate klassifikatsioon»

Logistilise regressiooni analüüs

Kood graafiku joonistamiseks

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='Otsus - Laen kinnitatud')
plt.plot(df[df['Decision'] == 'Refusal']['Salary'], df[df['Decision'] == 'Refusal']['Payment'], 
         's', color='red', markersize=12, label='Otsus - Laenu tagasi lükatud')
plt.xlabel('Palga', size=16)
plt.ylabel('Makse', size=16)
plt.legend(prop={'size':14})
plt.show()

Nii et meie sirge, mis on koostatud funktsiooni Logistilise regressiooni analüüs, eraldab «halbu» laenuvõtjaid «headest». Need laenuvõtjad, kelle soovid ei lange kokku võimalustega, asuvad sirge kohal (Leonid), need, kes on suuteline vastavalt meie mudeli parameetritele laenu tagasi maksma, asuvad sirge all (Vassja ja Fedja). Teisisõnu, meie sirge jagab laenuvõtjad kaheks klassiks. Määratleme need järgmiselt: klassi Logistilise regressiooni analüüs kuuluvad need laenuvõtjad, kes tõenäoliselt maksavad laenu tagasi, klassi Logistilise regressiooni analüüs või Logistilise regressiooni analüüs kuuluvad need laenuvõtjad, kes tõenäoliselt ei suuda laenu tagasi maksta.

Kokkuvõtvalt teeme selle lihtsa näite põhjal järeldused. Vambilge punkt Logistilise regressiooni analüüs ja, sisestades punktide koordinaadid vastavasse sirge võrrandisse Logistilise regressiooni analüüs, vaatleme kolme varianti:

  1. Kui punkt asub sirge all ja me kuulume selle klassi Logistilise regressiooni analüüs, siis funktsiooni väärtus Logistilise regressiooni analüüs on positiivne väärtus Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs. See tähendab, et meie arvestus krediidi tagasimaksmise tõenäosusest on Logistilise regressiooni analüüs. Mida suurem on funktsiooni väärtus, seda suurem on tõenäosus.
  2. Kui punkt on sirge kohal ja me kuulume selle klassi Logistilise regressiooni analüüs või Logistilise regressiooni analüüs, siis funktsiooni väärtus on negatiivne väärtus Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs. Sel juhul arvame, et makseraskuste tõenäosus on Logistilise regressiooni analüüs ja, mida suurem on funktsiooni absoluutne väärtus, seda suurem on meie kindel tunne.
  3. Punkt asub sirgel, kahe klassi piiril. Sellisel juhul on funktsiooni väärtus Logistilise regressiooni analüüs võrdne Logistilise regressiooni analüüs ja krediidi tagasimaksmise tõenäosus on Logistilise regressiooni analüüs.

Nüüd kujutame ette, et meil ei ole kahte tegurit, vaid kümneid, laenuvõtjaid mitte kolme, vaid tuhandeid. Siis on meil sirge asemel m-mõõteline tasand ja koefitsiendid Logistilise regressiooni analüüs meie koefitsiendid ei ole välja mõeldud, vaid määratud kõigi reeglite kohaselt, tuginedes kogunenud andmetele laenuvõtjate kohta, kes on oma laenu tagasi maksma või mitte. Ja tõesti, palun märkige, et me valime laenuvõtjaid juba tuntud koefitsientide põhjal Logistilise regressiooni analüüs. Tegelikult on logistilise regressiooni mudeli ülesanne just määrata parameetreid, Logistilise regressiooni analüüs, mille puhul kaotusfunktsiooni väärtus Logistic Loss püüab olla minimaalne. Kuid sellest, kuidas vektorit Logistilise regressiooni analüüs, me veel saame teada artikli 5. osast. Ja praegu naaseme tõotatud maale — meie pangandusesse ja kolme tema kliendi juurde.

Tänu funktsioonile Logistilise regressiooni analüüs me teame, kellele võib laenu anda ja kellele tuleb keelduda. Kuid sellise teabega ei saa direktori juurde minna, sest me soovisime saada iga laenuvõtja laenu tagastamise tõenäosust. Mis teha? Vastus on lihtne — meil on vajalik mingil moel funktsioon Logistilise regressiooni analüüs, mille väärtused jäävad vahemikku Logistilise regressiooni analüüs funktsiooniks, mille väärtused jäävad vahemikku Logistilise regressiooni analüüs. Ja selline funktsioon eksisteerib, seda nimetatakse logistilise vastuse funktsiooniks või vastupidise logit-muutmiseks. Tere tulemast:

Logistilise regressiooni analüüs

Vaadakem samm-sammult, kuidas saadakse logistilise vastuse funktsioon.Märkus, et me liigume vastupidises suunas, st eeldame, et me teame tõenäosuse väärtust, mis jääb vahemikku Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs ja siis me „aukudame” selle väärtuse kõikide arvude vahemikku Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs.

03. Saame logistilise vastuse funktsiooni

Samm 1. Muudame tõenäosuse väärtused vahemikku Logistilise regressiooni analüüs

Aja jooksul funktsiooni muundamise Logistilise regressiooni analüüs ja logistilise vastuse funktsiooni Logistilise regressiooni analüüs me jätame meie krediidianalüütiku rahule ja selle asemel käime läbi mänguportaalide. Ei, loomulikult me ei hakka panuseid tegema, kõik, mis meid seal huvitab, on väljendi tähendus, näiteks, võimalus 4:1. Võimalused, mida tunnevad kõik mängijad, on „edukuse” ja „ebaedukuse” suhe. Tõenäosuste seisukohalt on võimalus - see on toimumise tõenäosus, jagatud tõenäosusega, et sündmus ei toimu. Kirjutame sündmuse toimumise tõenäosuse valemi Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs

, kus Logistilise regressiooni analüüs — sündmuse toimumise tõenäosus, Logistilise regressiooni analüüs — sündmuse mitte toimumise tõenäosus

Näiteks, kui tõenäosus, et noor, tugev ja energiline hobune nimega "Tuulehaug" möödub jõulise ja vanast vanamoodsast naise nimega "Matilda" võistlustel Logistilise regressiooni analüüs, siis „Vetrika“ edu võimalused on Logistilise regressiooni analüüs aadressile Logistilise regressiooni analüüs Logistilise regressiooni analüüs ja vastupidi, teades võimalusi, ei ole meil raske arvutada tõenäosust Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs

Nii oleme õppinud „tõlkima“ tõenäosust võimalusteks, mille väärtused jäävad vahemikku Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs. Teeme veel ühe sammu ja õpime „tõlkima“ tõenäosust kogu arvulisel sirgel alates Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs.

Samm 2. Tõlgime tõenäosuse väärtused vahemikku Logistilise regressiooni analüüs

See samm on väga lihtne - võtame logaritmi Euler'i arvust Logistilise regressiooni analüüs ja saame:

Logistilise regressiooni analüüs

Nüüd teame, et kui Logistilise regressiooni analüüs, siis on väärtuse arvutamine Logistilise regressiooni analüüs väga lihtne ja mis kõige tähtsam, see peaks olema positiivne: Logistilise regressiooni analüüs. Nii see on.

Huvitav, kontrollime, et kui Logistilise regressiooni analüüs, siis loodame näha negatiivset väärtust Logistilise regressiooni analüüs. Kontrollime: Logistilise regressiooni analüüs. Kõik on õige.

Nüüd teame, kuidas tõlkida tõenäosuse väärtus alates Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs kogu arvulisele sirgele alates Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs. Järgmises etapis teeme kõik vastupidi.

Kuni selle ajani, märkige, et logaritmeermise reeglite kohaselt, teades funktsiooni väärtust Logistilise regressiooni analüüs, on võimalik arvutada võimalusi:

Logistilise regressiooni analüüs

See meetod võimaluste määramiseks tuleb meile kasuks järgmises etapis.

Samm 3. Jõudke valemini määramiseks Logistilise regressiooni analüüs

Nii oleme õppinud, teades Logistilise regressiooni analüüs, leidma funktsiooni väärtused Logistilise regressiooni analüüs. Kuid tegelikult peame me kõik kõike teha vastupidi - teades väärtust Logistilise regressiooni analüüs leidma Logistilise regressiooni analüüs. Selleks läheme tagasi sellise mõiste juurde nagu võimaluste pöördfunktsioon, mille kohaselt:

Logistilise regressiooni analüüs

Käesolevas artiklis me ei tohi tuletada ülalmainitud valemit, kuid kontrollime numbrite põhjal eelnevalt. Teame, et 4:1 võimaluste juures (Logistilise regressiooni analüüs), on sündmuse tõenäosus 0.8 (Logistilise regressiooni analüüs). Teeme asenduse: Logistilise regressiooni analüüs. See vastab meie varem tehtud arvutustele. Jätkame.

Eelmisel sammul oleme tuletanud, et Logistilise regressiooni analüüs, seega saame teha asenduse võimaluste pöördfunktsioonis. Saame:

Logistilise regressiooni analüüs

Jagame nii nimetaja kui ka nimetaja Logistilise regressiooni analüüs, siis:

Logistilise regressiooni analüüs

Igal juhul, et veenduda, et me ei ole kuskil eksinud, teeme veel ühe väikese kontrolli. Samm 2, me määrasime, et Logistilise regressiooni analüüs . Seega, asendades väärtuse Logistilise regressiooni analüüslogistilise vastuse funktsiooni, loodame saada Logistilise regressiooni analüüs . Asendame ja saame: Logistilise regressiooni analüüsPalju õnne, austatud lugeja, me oleme just tuletanud ja testinud logistilise vastuse funktsiooni. Vaadakem, milline on funktsiooni graafik. Logistilise regressiooni analüüs

Graafik 3 „Logistilise vastuse funktsioon“

Graafik 3 „Logistilise vastuse funktsioon“

Logistilise regressiooni analüüs

Kood graafiku joonistamiseks

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

Kirjanduses võib seda funktsiooni leida ka nimetuses sigmoidi funktsioon. Graafikust on selgelt näha, et tõenäosuse muutus objekti klassi kuulumisele toimub suhteliselt kitsas vahemikus Logistilise regressiooni analüüs, kuskil vahemikus Logistilise regressiooni analüüs kuni Logistilise regressiooni analüüs.

Pakun, et naaseme meie krediidianalüüsi juurde ja aitame tal arvutada krediitide tagasimaksmise tõenäosust, vastasel juhul riskib ta jääda ilma preemiata 🙂

Tabel 2 "Potentsiaalsed laenuvõtjad"

Logistilise regressiooni analüüs

Kood tabeli loomiseks

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

df[['Laenuvõtja', 'Palk', 'Makse', 'f(w,x)', 'Otsus', 'Tõenäosus']]

Nii et me oleme määranud krediidi tagastamise tõenäosuse. Üldiselt on see tõele lähedane.

Tõepoolest, tõenäosus, et Vassil, kelle palk on 120.000R, suudab igakuiselt pangale maksta 3.000R, on ligi 100%. Muide, me peame aru saama, et pank võib anda laenu ka Lešale juhul, kui panga poliitika lubab näiteks laenata kliente, kelle tagastamise tõenäosus on üle 0.3. Lihtsalt sellisel juhul moodustab pank suurema varu võimalike kaotuste jaoks.

Samuti tuleks märkida, et palga ja makse suhe mitte alla 3 ja varuga 5.000R võeti õhust. Seetõttu ei saanud me esialgsetel andmetel kaaluvektoreid kasutada. Logistilise regressiooni analüüs. Me pidime koefitsiente oluliselt vähendama, jagades iga koefitsendi 25.000-ga, see tähendab, et tegelikult sättisime tulemuse. Kuid see tehti spetsiaalselt, et lihtsustada materjali mõistmist esimesel etapil. Tegelikus elus peab me leidma koefitsiendid, mitte neid välja mõtlema või kohandama. Just järgmistes artikli osades tuletame valemid, millega parameetreid kohandatakse. Logistilise regressiooni analüüs.

04. Väikseimate ruutude meetod kaaluvektorite määramisel Logistilise regressiooni analüüs logistilise regressiooni funktsioonis

Meil on juba selline meetod kaaluvektori leidmiseks Logistilise regressiooni analüüs, nagu väikseimate ruutude meetod (VRM) ja miks me ei saaks seda kasutada binaarse klassifitseerimise ülesannetes? Tõepoolest, miski ei takista meid kasutamast MNLK, kuid see meetod annab klassifitseerimise ülesannetes vähem täpseid tulemusi kui Logistic Loss. Sellel on teoreetiline alus. Alustame lihtsa näitega.

Oletame, et meie mudelid (kasutades MSE ja Logistic Loss) on juba alustanud kaaluvektori valimist Logistilise regressiooni analüüs ja me peatasime arvutuse mingil sammul. Pole tähtis, kas keskel, lõpus või alguses, peamine on see, et meil on juba mingid kaalvektorite väärtused ja oletame, et sel hetkel ei ole mõlema mudeli kaaluväärtuste Logistilise regressiooni analüüs erinevusi. Võtame siis saadud kaalud ja paigutame need logistilise vastuse funktsiooni (Logistilise regressiooni analüüs) mingisuguse objekti jaoks, mis kuulub klassi Logistilise regressiooni analüüs. Uurime kahte juhtumit, kui vastavalt valitud kaaluväärtusele meie mudel eksib tõsiselt ja vastupidi — mudel on kindel, et objekt kuulub klassi Logistilise regressiooni analüüs. Vaatame, millised karistused „väljastatakse“ kasutamise korral MNLK ja Logistic Loss.

Kood karistuste arvutamiseks sõltuvalt kasutatavast kaotusfunktsioonist

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

Juhul, kui toimub tõsine viga — mudel määrab objekti klassiks Logistilise regressiooni analüüs 0,01 tõenäosusega

Karistus kasutamise korral MNLK on järgmine:
Logistilise regressiooni analüüs

Karistus kasutamise korral Logistic Loss on järgmine:
Logistilise regressiooni analüüs

Juhul, kui esineb tugev kindlus — mudel määrab objekti klassiks Logistilise regressiooni analüüs 0,99 tõenäosusega

Karistus kasutamise korral MNLK on järgmine:
Logistilise regressiooni analüüs

Karistus kasutamise korral Logistic Loss on järgmine:
Logistilise regressiooni analüüs

See näide illustreerib hästi, et tõsise vea korral karistab kaotusfunktsioon Log Loss mudelit oluliselt rohkem kui MSE. Vaatame nüüd, millised on teoreetilised eeldused kaotusfunktsiooni kasutamiseks Log Loss klassifitseerimise ülesannetes.

05. Maksimaalne tõenäosusmeetod ja logistiline regressioon

Nagu alguses lubatud, on artikkel täidetud lihtsate näidete korral. Stuudias on uus näide ja vanad külalised — pangalaenuvõtjad: Vassja, Fedja ja Ljoša.

Igaks juhuks, enne kui näidet arendama hakkame, tuletan meelde, et elus tegeleme me õppimisvalimustega, mis koosnevad tuhandetest või miljonitest objektidest, millel on kümneid või sadu tunnuseid. Siiski on siin numbrid valitud nii, et need sobivad kergesti algaja andmete teadlase pähe.

Naas tagasi näite juurde. Kujutame ette, et panga direktor otsustas anda laenu kõigile, kes seda vajavad, hoolimata sellest, et algoritm näitas, et Aleksei'le ei tohiks laenu anda. Ja nüüd on piisavalt aega möödas ning oleme teada saanud, kes kolmest kangelasest laenu tagasi maksis ja kes mitte. Nagu arvata võib: Vasja ja Fedja maksid laenu tagasi, kuid Aleksei — ei. Nüüd kujutame ette, et see tulemus on meie uus õpikogum ja samal ajal on meil justkui kadunud kõik andmed, mis mõjutavad laenu tagasimaksmise tõenäosust (laenuvõtja palk, iga kuu makse suurus). Seega saab intuitiivselt arvata, et iga kolmas laenuvõtja ei maksa panka laenu tagasi, või teisisõnu, järgmise laenuvõtja tagasimaksmise tõenäosus Logistilise regressiooni analüüs. Sellele intuitiivsele oletusele on teoreetiline kinnituse leidmine ja see põhineb maksimaalse tõenäosuse meetodil, mida sageli nimetatakse maksimaalse tõenäosuse printsiibiks.

. Alustuseks tutvume mõisted.

Valimi tõenäosus on kindla valimi ja kindlate vaatluste / tulemuste saamise tõenäosus, st iga valimi tulemuse (nt Vasja, Fedja ja Aleksei laenu tagasimaksmine või mitte tagasimaksmine) saamise tõenäosuste korrutis.

Tõenäosuse funktsioon seob valimi tõenäosuse ja jaotuse parameetrite väärtused.

Käesoleval juhul esindab õpikogum üldistatud Bernoulli skeemi, kus juhuslik muutuj võtab ainult kaks väärtust: Logistilise regressiooni analüüs või Logistilise regressiooni analüüs. Seega saab valimi tõenäosust väljendada tõenäosuse funktsioonina parameetrist Logistilise regressiooni analüüs järgmiselt:

Logistilise regressiooni analüüs
Logistilise regressiooni analüüs

Ülaltoodud kujutist saab tõlgendada järgmiselt. Koondtõenäosus, et Vasja ja Fedja maksavad laenu tagasi, on Logistilise regressiooni analüüs, tõenäosus, et Aleksei EI maksa laenu tagasi, on Logistilise regressiooni analüüs (kuna toimumiseks oli just EI tagasimaksmine), seega kolmes sündmuse koondtõenäosus on Logistilise regressiooni analüüs.

Maksimaalse tõenäosuse meetod see on tundmatu parameetri hindamise meetod maksimeerimise teel tõenäosuse funktsiooni. Meie juhul tuleb leida selline väärtus Logistilise regressiooni analüüs, mille korral Logistilise regressiooni analüüs saab maksimaalse tulemuse.

Kust tuli mõte otsida tundmatu parameetri väärtust, mille korral tõenäosusfunktsioon saavutab maksimaalse väärtuse? Idee juured tulenevad arusaamast, et valim on ainus meie jaoks kättesaadav teadmusallikas kogu populatsiooni osas. Kõik, mida me teame populatsiooni kohta, on esitatud valimis. Seetõttu saame öelda, et valim on kõige täpsem peegeldus populatsioonist, mis on meile kättesaadav. Seega peame leidma sellise parameetri, mille korral antud valim on kõige tõenäolisem.

Ilmselgelt on tegu optimeerimisülesandega, kus tuleb leida funktsiooni ekstremumipunkt. Ekstremumipunkti leidmiseks on vajalik arvestada esimese järgu tingimusega, see tähendab, et tuleb seada funktsiooni tuletis nulliks ja lahendada võrrand otsitava parameetri osas. Siiski võivad tuletiste leidmine paljude tegurite korrutisest osutuda aeganõudvaks, et seda vältida, on olemas spetsiaalne meetod — logaritmi võtmine. tõenäosuse funktsiooni. Miks on selline üleminek võimalik? Pöörame tähelepanu sellele, et me ei otsi mitte funktsiooni enda ekstremumit,Logistilise regressiooni analüüs, vaid ekstremumipunkti, s.t. tundmatu parameetri väärtust, Logistilise regressiooni analüüs, mille korral Logistilise regressiooni analüüs mille korral see saavutab maksimaalse väärtuse. Logaritmi võttes ei muutu ekstremumipunkt (kuigi ise ekstremum muutub), kuna logaritm on monotoonne funktsioon.

Vaatame nüüd vastavalt ülaltoodule edasi meie näidet Vasja, Fedja ja Joosepi laenudest. Alustame logaritmi võtmisega tõenäosusfunktsioonist.:

Logistilise regressiooni analüüs

Nüüd saame hõlpsasti tuletist arvutada vastavalt Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs

Ja lõpetuseks vaatame esimese järgu tingimust — seame funktsiooni tuletise nulliks:

Logistilise regressiooni analüüs

Nii, meie intuitiivne hinnang krediidi tagasimaksmise tõenäosusele Logistilise regressiooni analüüs oli teoreetiliselt põhjendatud.

Suurepärane, aga mida me nüüd sellise infoga teha saame? Kui me arvame, et iga kolmas laenuvõtja ei maksa pankadele raha tagasi, siis pank teenib kindlasti kahjumit. Nii ongi, kuid krediidi tagasimaksmise tõenäosuse hindamine on väärt. Logistilise regressiooni analüüs me ei arvestanud tegureid, mis mõjutavad laenu tagasimakset: laenuvõtja palk ja kuu makse suurus. Tuletame meelde, et varem arvutasime laenu tagasimaksmise tõenäosust iga kliendi jaoks, arvestades just neid tegureid. Loogiliselt öeldes on ka tõenäosused meil saadud erinevad konstanti võrreldes. Logistilise regressiooni analüüs.

Määratleme proovide tõenäosuse:

Kood proovide tõenäosuste arvutamiseks

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 'Proovi tõenäosus konstantsel väärtusel p=2/3:', round(likelihood(y,p_const),3)

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

print 'Proovi tõenäosus arvutatud väärtusel p:', round(likelihood(y,p_log_response),3)

Proovi tõenäosus konstantsel väärtusel Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs

Proovi tõenäosus laenu tagasimaksmise tõenäosuse arvutamisel, arvestades tegureid Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs
Logistilise regressiooni analüüs

Proovi tõenäosus, mille tõenäosus arvutati tegurite põhjal, osutus kõrgemaks kui konstantsel tõenäosusel. Mis see tähendab? See tähendab, et teadlikkus teguritest võimaldas täpsemalt määrata laenu tagasimaksmise tõenäosuse iga kliendi jaoks. Seetõttu on uute laenude andmisel õigemateks olema kasutada artikli kolmanda osa lõpus pakutud võlgade tagasimaksmise tõenäosuse hindamiseks mudelit.

Aga kui meil on vaja maksimeerida proovide tõenäosuse funktsiooni, siis miks mitte kasutada mõnda algoritmi, mis määrab tõenäosused Vasja, Fedja ja Ljoša jaoks näiteks 0.99, 0.99 ja 0.01. Võib-olla näitab selline algoritm head tulemust treeningproovidel, kuna see toob proovide tõenäosuse väärtuse lähemale. Logistilise regressiooni analüüs, aga kõigepealt on sellisel algoritmil tõenäoliselt raskusi üldistamisvõimekusega; teiseks, see algoritm ei ole kindlasti lineaarsel kujul. Kui meetodid üleõppimise vastu (samuti nõrk üldistamisvõime) ilmselgelt ei kuulu artikli plaani, siis vaatame teise punkti lähemalt. Selleks piisab lihtsast küsimusest. Kas laenu tagasimaksmise tõenäosus Vassil ja Fedjal võib olla sama, arvestades meile teadaolevaid tegureid? Tervet mõistust silmas pidades, loomulikult ei saa. Seega tagastab Vassu laenu tagasimaksmiseks igakuiselt oma palgast 2,5%, Fedja aga peaaegu 27,8%. Samuti näeme diagrammil 2 'Klientide klassifitseerimine', et Vassu on liinist, mis jagab klasse, oluliselt kaugemal kui Fedja. Ja lõpuks, me teame, et funktsioon Logistilise regressiooni analüüs Vassile ja Fedjale omab erinevaid väärtusi: 4.24 Vassile ja 1.0 Fedjale. Kui Fedja näiteks teeniks korda rohkem või küsiks väiksema laenu, oleks Vassil ja Fedjal laenu tagasimaksmise tõenäosused sarnased. Teiste sõnadega, lineaarsust ei ole võimalik petta. Ja kui me tõepoolest arvutaksime koefitsiendid Logistilise regressiooni analüüs, mitte ei võtaks neid lihtsalt seinast, võiksime julgelt väita, et meie väärtused Logistilise regressiooni analüüs hindavad parimal viisil laenu tagasimaksmise tõenäosust igale laenuvõtjale, kuid kuna me oleme kokku leppinud, et koefitsientide määramine Logistilise regressiooni analüüs on tehtud kõigi reeglite kohaselt, siis jätkame arvestamist — meie koefitsiendid annavad parima hinnangu tõenäosusele 🙂

Kuid me kaldume kõrvale teemale. Selles osas peame aru saama, kuidas määratakse kaaluvektor Logistilise regressiooni analüüs, mis on vajalik iga laenuvõtja laenu tagasimaksmise tõenäosuse hindamiseks.

Kokkuvõtteks, millega me koefitsientide otsimisele lähme Logistilise regressiooni analüüs:

1. Eeldame, et sõltuvus sihtmuutuja (prognoositav väärtus) ja tulemusele mõjuv tegur — on lineaarne. Seda põhjuse tõttu kasutatakse lineaarse regressiooni funktsioon sarnaseid Logistilise regressiooni analüüs, mille joon jaotab objektid (klientid) klassideks Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs või Logistilise regressiooni analüüs (klientideks, kes suudavad laenu tagasi maksta ja kes ei suuda). Meie puhul on võrrand näol Logistilise regressiooni analüüs.

2. Kasutame tagasi logit-muutmisfunktsiooni sarnaseid Logistilise regressiooni analüüs objekti klassiga kuuluvuse tõenäosuse määramiseks Logistilise regressiooni analüüs.

3. Me käsitleme meie treeningu valimit kui üldistatud teostatust Bernoulli skeemid, see tähendab, et iga objekti jaoks genereeritakse juhuslik suurus, mis tõenäosusega Logistilise regressiooni analüüs (igaühe jaoks erinev objekt) võtab väärtuse 1 ja tõenäosusega Logistilise regressiooni analüüs – 0.

4. Me teame, et peame maksimeerima proovide tõenäosuse funktsiooni arvesse võetud tegurite osas, et olemasolev vaatlus oleks kõige usutavam. Teisisõnu, peame leidma sellised parameetrid, mille puhul vaatlus oleks kõige usutavam. Meie puhul on sobitatav parameeter - laenu tasumise tõenäosus Logistilise regressiooni analüüs, mis omakorda sõltub tundmatutest koefitsientidest Logistilise regressiooni analüüs. Seega peame leidma sellise kaalude vektori Logistilise regressiooni analüüs, mille puhul vaatlus on maksimaalne.

5. Me teame, et vaatlus tõenäosusfunktsiooni maksimeerimiseks on võimalik kasutada maksimaalse tõenäosuse meetodit. Ja me teame kõiki peeneid nippe, kuidas selle meetodiga töötada.

Nii et selline mitmeastmeline ülesanne saadakse 🙂

Ja nüüd meenutame, et artikli alguses soovisime välja tuua kahte tüüpi kaotusfunktsiooni Logistic Loss sõltuvalt sellest, kuidas klasside objekte tähistatakse. Kaksikklassi klasside nimetamise viisid on innustanud meid nimetama neid Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs või Logistilise regressiooni analüüs. Tähistamisest sõltuvalt antakse välja vastav kaotusfunktsioon.

Juhtum 1. Objektide klassifitseerimine Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs

Varem, valides tõenäosuse arvutamine, kus laenuvõtja tasumise tõenäosus arvutati tegurite ja eelnevalt määratud koefitsientide põhjal Logistilise regressiooni analüüs, kasutasime valemit:

Logistilise regressiooni analüüs

Tegelikult Logistilise regressiooni analüüs — see on väärtus logistilise vastuse funktsioonist Logistilise regressiooni analüüs antud kaalude vektori korral Logistilise regressiooni analüüs

Seega ei ole meil midagi, mis takistaks vaatlus tõenäosuse funktsiooni selliseks kirjutamist:

Logistilise regressiooni analüüs

Mõnikord on algajatel analüütikutel keeruline kohe mõista, kuidas see funktsioon töötab. Vaatame 4 lühikest näidet, mis kõik selgitavad:

1. Kui Logistilise regressiooni analüüs (st sõltuvalt koolitusjärgsest vaatlusest kuulub objekt klassi +1), samas kui meie algoritm Logistilise regressiooni analüüs määrab objekti kuuluvuse tõenäosuse klassi Logistilise regressiooni analüüs võrdseks 0.9, siis see vaatlus tõenäosuse tükk arvutatakse nii:

Logistilise regressiooni analüüs

2. Kui Logistilise regressiooni analüüs, vaid Logistilise regressiooni analüüs, siis arvutus on selline:

Logistilise regressiooni analüüs

3. Kui Logistilise regressiooni analüüs, vaid Logistilise regressiooni analüüs, siis arvutus on selline:

Logistilise regressiooni analüüs

4. Kui Logistilise regressiooni analüüs, vaid Logistilise regressiooni analüüs, siis arvutus on selline:

Logistilise regressiooni analüüs

On ilmne, et tõenäosuse funktsioon maksimeeritakse juhtudel 1 ja 3 või üldiselt juhul — õigesti arvatud objekti kuuluvuse tõenäosuste väärtuste korral Logistilise regressiooni analüüs.

Seoses sellega, et objekti klassi kuuluvuse tõenäosuse määramisel Logistilise regressiooni analüüs meile ei ole teada ainult koefitsiendid Logistilise regressiooni analüüs, siis me otsime neid. Nagu eelnevalt mainitud, on see optimeerimiseülesanne, kus alustada tuleb tõenäosusfunktsiooni tuletise leidmisest kaaluvektorile Logistilise regressiooni analüüs. Siiski on mõistlik enne lihtsustada ülesannet: tuletise otsime logaritmist tõenäosuse funktsiooni.

Logistilise regressiooni analüüs

Miks pärast logaritmimist, logistilise vea funktsioonis, me muutisime märki Logistilise regressiooni analüüs . Tundub, et Logistilise regressiooni analüüs. Kõik on lihtne, kuna mudeli kvaliteedi hindamise ülesannetes on tavaks miinimeerida funktsiooni väärtust, siis me korrutasime väljendi parempoolse osa Logistilise regressiooni analüüs ja seega, maksimeerimise asemel, miinimeerime nüüd funktsiooni.

Tegelikult, praegu, teie silme all, on välja arendatud kaotusefunktsioon - Logistic Loss kaks klassi sisaldava treeningvalimi jaoks: Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs.

Nüüd, koefitsientide leidmiseks, peame lihtsalt leidma tuletise logistilise vea funktsioonis ja seejärel, kasutades numbrilisi optimeerimismeetodeid, nagu gradientne langus või stohhastiline gradientne langus, valima kõige optimaalsemad koefitsiendid Logistilise regressiooni analüüs. Kuid arvestades juba suurt artikli mahtu, soovitatakse diferentsieerida iseseisvalt või ehk see on teema järgmiseks artikliks, kus on rohkem aritmeetikat ilma nii detailsete näideteta.

Juhtum 2. Objektide klassifitseerimine Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs

Lähenemine on sama, mis klasside puhul Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs, kuid tee kaotusefunktsiooni leidmiseks Logistic Loss, on keerulisem. Alustame. Tõenäosusfunktsioonis kasutame operaatorit „kui…, siis…“. See tähendab, kui Logistilise regressiooni analüüs-s objekt kuulub klassi Logistilise regressiooni analüüs, siis valimi tõenäosuse arvutamiseks kasutame tõenäosust Logistilise regressiooni analüüs, kui objekt kuulub klassi Logistilise regressiooni analüüs, siis asendame tõenäosusesse Logistilise regressiooni analüüs. Niimoodi välja näeb tõenäosusfunktsioon:

Logistilise regressiooni analüüs

Selgitame, kuidas see töötab. Vaatame 4 juhtumit:

1. Kui Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs, siis tõenäosuse valimisse „pääseb” Logistilise regressiooni analüüs

2. Kui Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs, siis tõenäosuse valimisse „pääseb” Logistilise regressiooni analüüs

3. Kui Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs, siis tõenäosuse valimisse „pääseb” Logistilise regressiooni analüüs

4. Kui Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs, siis tõenäosuse valimisse „pääseb” Logistilise regressiooni analüüs

On ilmne, et 1. ja 3. juhul, kui tõenäosused määrati algoritmi poolt õigesti, tõenäosusfunktsioon saab maksimeeritud, just seda me tahtsime saavutada. Siiski, selline lähenemine on piisavalt mahukas ja seejärel vaatame kompaktsemat vormi. Kuid esmalt logaritmeerime tõenäosusfunktsiooni, muutes märki, kuna nüüd me kavatseme selle miinimeerida.

Logistilise regressiooni analüüs

Asendame Logistilise regressiooni analüüs väljendusega Logistilise regressiooni analüüs:

Logistilise regressiooni analüüs

Lihtsustame logaritmi paremat liiget, kasutades lihtsaid arvutuste tehnikaid, ja saame:

Logistilise regressiooni analüüs

Nüüd on aeg vabaneda operaatorist „kui…, siis…“. Tähelepanu, et kui objekt Logistilise regressiooni analüüs kuulub klassi Logistilise regressiooni analüüs, siis logaritmi all oleva väljendi nimetajas Logistilise regressiooni analüüs tõstetakse astmesse Logistilise regressiooni analüüs, kui objekt kuulub klassi Logistilise regressiooni analüüs, siis $e$ tõstetakse astmesse Logistilise regressiooni analüüs. Seega saab astme tähistamise lihtsustada — ühendada mõlemad juhtumid üheks: Logistilise regressiooni analüüs. Siis logistilise vea funktsioon võtab järgmist vormi:

Logistilise regressiooni analüüs

Vastavalt logaritmeermise reeglitele pöörame murd ümber ja toome miinuse"Logistilise regressiooni analüüs" logaritmi ette, saame:

Logistilise regressiooni analüüs

Teie ees on kaotuse funktsioon logistic Loss, mida rakendatakse õpikogumites, milles objektid kuuluvad klassidesse: Logistilise regressiooni analüüs ja Logistilise regressiooni analüüs.

Noh, ma võtan siinkohal lahkudes ning lõpetame artikli.

Logistilise regressiooni analüüs Autori eelmine töö — „Viime lineaarse regressiooni võrrandi maatriksi kujule”

Abimaterjalid

1. Kirjandus

1) Rakenduslik regressioonianalüüs / N. Draper, G. Smith – 2. väljaanne – M.: Rahandus ja statistika, 1986 (tõlge inglise keelest)

2) Tõenäosusteooria ja matemaatiline statistika / V.E. Gmurman — 9. väljaanne — M.: Kõrgem kool, 2003

3) Tõenäosusteooria / N.I. Tšernova — Novosibirsk: Novosibirski riiklik ülikool, 2007

4) Ärianalüüs: andmetest teadmisteni / Paklin N. B., Oreshkov V. I. — 2. väljaanne — Peterburi: Peter, 2013

5) Data Science Andmed nullist / Joel Grass — Peterburi: BHV Peterburi, 2017

6) Praktika statistika spetsialistidele Data Science / P. Bruce, E. Bruce — Peterburi: BHV Peterburi, 2018

2. Loengud, kursused (video)

1) Maksimaalse tõenäosuse meetodi olemus, Boris Demešev

2) Maksimaalse tõenäosuse meetod pidevas juhuslikus olukorras, Boris Demešev

3) Logistiline regressioon. Avatud kursus ODS, Yury Kashnitsky

4) Loeng 4, Jevgeni Sokolov (47. minuti video)

5) Logistiline regressioon, Viatšeslav Vorontsov

3. Internetiallikad

1) Liinimudelid klassifikatsiooniks ja regressiooniks

2) Kuidas lihtsalt mõista logistilist regressiooni

3) Logistiline veafunktsioon

4) Iseseisvad katsed ja Bernoulli valem

5) Ballaad MMP-st

6) Maksimaalse tõenäosuse meetod

7) Logaritmide valemid ja omadused

8) Miks number Logistilise regressiooni analüüs?

9) Lineaarne klassifikaator

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster