Tuggar på logistisk regression

Tuggar på logistisk regression

I den här artikeln kommer vi att analysera de teoretiska beräkningarna av transformationen linjära regressionsfunktioner в invers logittransformationsfunktion (kallas annars logistisk svarsfunktion). Använd sedan arsenalen metoden för maximal sannolikhet, i enlighet med den logistiska regressionsmodellen härleder vi förlustfunktionen Logistisk förlust, eller med andra ord, vi kommer att definiera en funktion med vilken parametrarna för viktvektorn väljs i den logistiska regressionsmodellen Tuggar på logistisk regression.

Artikelöversikt:

  1. Låt oss upprepa det linjära sambandet mellan två variabler
  2. Låt oss identifiera behovet av transformation linjära regressionsfunktioner Tuggar på logistisk regression в logistisk responsfunktion Tuggar på logistisk regression
  3. Låt oss utföra transformationerna och produktionen logistisk responsfunktion
  4. Låt oss försöka förstå varför minsta kvadratmetoden är dålig när man väljer parametrar Tuggar på logistisk regression funktioner Logistisk förlust
  5. Vi använder metoden för maximal sannolikhet för att bestämma parametervalsfunktioner Tuggar på logistisk regression:

    5.1. Fall 1: funktion Logistisk förlust för objekt med klassbeteckningar 0 и 1:

    Tuggar på logistisk regression

    5.2. Fall 2: funktion Logistisk förlust för objekt med klassbeteckningar -1 и +1:

    Tuggar på logistisk regression


Artikeln är fylld med enkla exempel där alla beräkningar är lätta att göra muntligen eller på papper, i vissa fall kan en miniräknare krävas. Så gör dig redo :)

Den här artikeln är främst avsedd för datavetare med en inledande kunskapsnivå i grunderna för maskininlärning.

Artikeln kommer också att ge kod för att rita grafer och beräkningar. All kod är skriven på språket python 2.7. Låt mig förklara i förväg om "nyheten" i den använda versionen - detta är ett av villkoren för att ta den välkända kursen från Yandex på en lika välkänd utbildningsplattform online Coursera, och, som man kan anta, utarbetades materialet utifrån denna kurs.

01. Raklinjeberoende

Det är ganska rimligt att ställa frågan - vad har linjärt beroende och logistisk regression att göra med det?

Det är enkelt! Logistisk regression är en av modellerna som tillhör den linjära klassificeraren. Med enkla ord är uppgiften för en linjär klassificerare att förutsäga målvärden Tuggar på logistisk regression från variabler (regressorer) Tuggar på logistisk regression. Man tror att beroendet mellan egenskaperna Tuggar på logistisk regression och målvärden Tuggar på logistisk regression linjär. Därav namnet på klassificeraren - linjär. För att uttrycka det väldigt grovt så bygger den logistiska regressionsmodellen på antagandet att det finns ett linjärt samband mellan egenskaperna Tuggar på logistisk regression och målvärden Tuggar på logistisk regression. Detta är kopplingen.

Det finns det första exemplet i studion, och det handlar, korrekt, om det rätlinjiga beroendet av de storheter som studeras. I processen med att förbereda artikeln stötte jag på ett exempel som redan har satt många människor på kanten - strömberoendet på spänning ("Applied regressions analysis", N. Draper, G. Smith). Vi ska titta på det här också.

Enligt Ohms lag:

Tuggar på logistisk regressionvar Tuggar på logistisk regression - nuvarande styrka, Tuggar på logistisk regression - Spänning, Tuggar på logistisk regression - motstånd.

Om vi ​​inte visste Ohms lag, då kunde vi hitta beroendet empiriskt genom att förändra Tuggar på logistisk regression och mäter Tuggar på logistisk regression, samtidigt som du stödjer Tuggar på logistisk regression fast. Då skulle vi se att beroendegrafen Tuggar på logistisk regression från Tuggar på logistisk regression ger en mer eller mindre rak linje genom origo. Vi säger "mer eller mindre" eftersom, även om förhållandet faktiskt är korrekt, kan våra mätningar innehålla små fel, och därför kanske punkterna på grafen inte faller exakt på linjen, utan kommer att spridas runt den slumpmässigt.

Diagram 1 "Beroende" Tuggar på logistisk regression från Tuggar på logistisk regression»

Tuggar på logistisk regression

Kod för diagramritning

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. Behovet av att transformera den linjära regressionsekvationen

Låt oss titta på ett annat exempel. Låt oss föreställa oss att vi arbetar i en bank och vår uppgift är att bestämma sannolikheten för att låntagaren ska betala tillbaka lånet beroende på vissa faktorer. För att förenkla uppgiften kommer vi bara att överväga två faktorer: låntagarens månadslön och det månatliga återbetalningsbeloppet för lånet.

Uppgiften är mycket villkorad, men med detta exempel kan vi förstå varför det inte räcker att använda linjära regressionsfunktioner, och ta reda på vilka transformationer som behöver utföras med funktionen.

Låt oss återgå till exemplet. Det är underförstått att ju högre lön, desto mer kommer låntagaren att kunna avsätta månadsvis för att återbetala lånet. Samtidigt kommer detta förhållande att vara ganska linjärt för ett visst löneintervall. Låt oss till exempel ta ett löneintervall från 60.000 200.000 RUR till 3 5.000 RUR och anta att i det angivna löneintervallet är beroendet av storleken på den månatliga betalningen på lönens storlek linjärt. Låt oss säga att det för det angivna löneintervallet avslöjades att lönegraden inte kan falla under XNUMX och att låntagaren fortfarande måste ha XNUMX XNUMX RUR i reserv. Och bara i det här fallet kommer vi att anta att låntagaren kommer att betala tillbaka lånet till banken. Sedan kommer den linjära regressionsekvationen att ha formen:

Tuggar på logistisk regression

där Tuggar på logistisk regression, Tuggar på logistisk regression, Tuggar på logistisk regression, Tuggar på logistisk regression - lön Tuggar på logistisk regression-te låntagaren, Tuggar på logistisk regression - betalning av lån Tuggar på logistisk regression-e låntagaren.

Ersätter lön och lånebetalning med fasta parametrar i ekvationen Tuggar på logistisk regression Du kan bestämma om du vill ge ut eller vägra ett lån.

Framöver noterar vi det med de givna parametrarna Tuggar på logistisk regression linjär regressionsfunktion, Använd i logistiska svarsfunktioner kommer att producera stora värden som kommer att komplicera beräkningar för att bestämma sannolikheterna för återbetalning av lån. Därför föreslås det att minska våra koefficienter, låt oss säga, med 25.000 XNUMX gånger. Denna omvandling av koefficienterna kommer inte att ändra beslutet att ge ut ett lån. Låt oss komma ihåg denna punkt för framtiden, men nu, för att göra det ännu tydligare vad vi pratar om, låt oss överväga situationen med tre potentiella låntagare.

Tabell 1 "Möjliga låntagare"

Tuggar på logistisk regression

Kod för att generera tabellen

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

I enlighet med uppgifterna i tabellen vill Vasya, med en lön på 120.000 3.000 RUR, få ett lån så att han kan betala tillbaka det månadsvis med 5.000 XNUMX RUR. Vi bestämde att för att godkänna lånet måste Vasyas lön överstiga tre gånger betalningsbeloppet, och det måste fortfarande finnas XNUMX XNUMX RUR kvar. Vasya uppfyller detta krav: Tuggar på logistisk regression. Till och med 106.000 XNUMX RUR återstår. Trots att vid beräkning Tuggar på logistisk regression vi har minskat oddsen Tuggar på logistisk regression 25.000 XNUMX gånger blev resultatet detsamma – lånet kan godkännas. Fedya kommer också att få ett lån, men Lesha, trots att han får mest, måste dämpa aptiten.

Låt oss rita en graf för detta fall.

Diagram 2 ”Klassificering av låntagare”

Tuggar på logistisk regression

Kod för att rita grafen

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

Så, vår raka linje, konstruerad i enlighet med funktionen Tuggar på logistisk regression, skiljer "dåliga" låntagare från "bra". De låntagare vars önskningar inte sammanfaller med deras kapacitet ligger över gränsen (Lesha), medan de som, enligt parametrarna för vår modell, kan betala tillbaka lånet ligger under gränsen (Vasya och Fedya). Med andra ord kan vi säga så här: vår direktlinje delar upp låntagare i två klasser. Låt oss beteckna dem på följande sätt: till klass Tuggar på logistisk regression Vi kommer att klassificera de låntagare som är mest benägna att betala tillbaka lånet som Tuggar på logistisk regression eller Tuggar på logistisk regression Vi kommer att ta med de låntagare som med största sannolikhet inte kommer att kunna betala tillbaka lånet.

Låt oss sammanfatta slutsatserna från detta enkla exempel. Låt oss ta en poäng Tuggar på logistisk regression och att ersätta punktens koordinater i motsvarande ekvation för linjen Tuggar på logistisk regression, överväg tre alternativ:

  1. Om punkten är under linjen och vi tilldelar den till klassen Tuggar på logistisk regression, sedan värdet på funktionen Tuggar på logistisk regression kommer att vara positiv från Tuggar på logistisk regression до Tuggar på logistisk regression. Det betyder att vi kan anta att sannolikheten för att återbetala lånet är inom Tuggar på logistisk regression. Ju större funktionsvärde, desto högre sannolikhet.
  2. Om en punkt ligger över en linje och vi tilldelar den till klassen Tuggar på logistisk regression eller Tuggar på logistisk regression, då blir värdet på funktionen negativt från Tuggar på logistisk regression до Tuggar på logistisk regression. Då kommer vi att anta att sannolikheten för återbetalning av skulden är inom Tuggar på logistisk regression och ju större funktionens absoluta värde är, desto högre är vårt förtroende.
  3. Punkten ligger på en rät linje, på gränsen mellan två klasser. I det här fallet värdet på funktionen Tuggar på logistisk regression kommer att vara lika Tuggar på logistisk regression och sannolikheten för att återbetala lånet är lika med Tuggar på logistisk regression.

Låt oss nu föreställa oss att vi inte har två faktorer, utan dussintals, och inte tre, utan tusentals låntagare. Då får vi istället för en rak linje m-dimensionell plan och koefficienter Tuggar på logistisk regression vi kommer inte att tas ur tomma luften, utan härledas enligt alla regler, och på grundval av ackumulerade uppgifter om låntagare som har eller inte har betalat tillbaka lånet. Och faktiskt, notera att vi nu väljer låntagare med hjälp av redan kända koefficienter Tuggar på logistisk regression. Faktum är att den logistiska regressionsmodellens uppgift är just att bestämma parametrarna Tuggar på logistisk regression, vid vilken värdet av förlusten fungerar Logistisk förlust kommer att tendera till ett minimum. Men om hur vektorn beräknas Tuggar på logistisk regression, kommer vi att ta reda på mer i det femte avsnittet av artikeln. Under tiden återvänder vi till det förlovade landet - till vår bankman och hans tre kunder.

Tack vare funktionen Tuggar på logistisk regression vi vet vem som kan få lån och vem som behöver vägras. Men du kan inte gå till direktören med sådan information, eftersom de ville få från oss sannolikheten för återbetalning av lånet av varje låntagare. Vad ska man göra? Svaret är enkelt - vi måste på något sätt omvandla funktionen Tuggar på logistisk regression, vars värden ligger i intervallet Tuggar på logistisk regression till en funktion vars värden kommer att ligga i intervallet Tuggar på logistisk regression. Och en sådan funktion finns, kallas den logistisk svarsfunktion eller omvänd logit-transformation. Träffa:

Tuggar på logistisk regression

Låt oss se steg för steg hur det fungerar logistisk responsfunktion. Observera att vi kommer att gå i motsatt riktning, d.v.s. vi kommer att anta att vi känner till sannolikhetsvärdet, som ligger i intervallet från Tuggar på logistisk regression до Tuggar på logistisk regression och sedan kommer vi att "avveckla" detta värde till hela intervallet av siffror från Tuggar på logistisk regression до Tuggar på logistisk regression.

03. Vi härleder den logistiska responsfunktionen

Steg 1. Konvertera sannolikhetsvärdena till ett intervall Tuggar på logistisk regression

Under omvandlingen av funktionen Tuggar på logistisk regression в logistisk responsfunktion Tuggar på logistisk regression Vi lämnar vår kreditanalytiker ifred och tar en rundtur bland bookmakers istället. Nej, vi kommer givetvis inte att satsa, det enda som intresserar oss där är meningen med uttrycket, till exempel är chansen 4 till 1. Oddsen, som är bekanta för alla spelarna, är förhållandet mellan "framgångar" och " misslyckanden”. I sannolikhetstermer är odds sannolikheten för att en händelse inträffar dividerat med sannolikheten för att händelsen inte inträffar. Låt oss skriva ner formeln för chansen att en händelse inträffar Tuggar på logistisk regression:

Tuggar på logistisk regression

var Tuggar på logistisk regression - sannolikheten för att en händelse inträffar, Tuggar på logistisk regression — sannolikheten för att en händelse INTE inträffar

Till exempel, om sannolikheten att en ung, stark och lekfull häst med smeknamnet "Veterok" kommer att slå en gammal och slapp gammal kvinna som heter "Matilda" på ett lopp är lika med Tuggar på logistisk regression, då är chanserna att lyckas för "Veterok". Tuggar på logistisk regression к Tuggar på logistisk regression Tuggar på logistisk regression och vice versa, om vi känner till oddsen, kommer det inte att vara svårt för oss att beräkna sannolikheten Tuggar på logistisk regression:

Tuggar på logistisk regression

Således har vi lärt oss att "översätta" sannolikhet till chanser, som tar värden från Tuggar på logistisk regression до Tuggar på logistisk regression. Låt oss ta ett steg till och lära oss att "översätta" sannolikheten till hela tallinjen från Tuggar på logistisk regression до Tuggar på logistisk regression.

Steg 2. Konvertera sannolikhetsvärdena till ett intervall Tuggar på logistisk regression

Det här steget är väldigt enkelt - låt oss ta logaritmen för oddsen till basen av Eulers tal Tuggar på logistisk regression och vi får:

Tuggar på logistisk regression

Nu vet vi att om Tuggar på logistisk regression, beräkna sedan värdet Tuggar på logistisk regression kommer att vara väldigt enkelt och dessutom borde det vara positivt: Tuggar på logistisk regression. Detta är sant.

Av nyfikenhet, låt oss kolla vad om Tuggar på logistisk regression, då förväntar vi oss att se ett negativt värde Tuggar på logistisk regression. Vi kontrollerar: Tuggar på logistisk regression. Det är rätt.

Nu vet vi hur man konverterar sannolikhetsvärdet från Tuggar på logistisk regression до Tuggar på logistisk regression längs hela tallinjen från Tuggar på logistisk regression до Tuggar på logistisk regression. I nästa steg gör vi tvärtom.

För nu, vi noterar att i enlighet med reglerna för logaritm, att känna till värdet av funktionen Tuggar på logistisk regression, kan du beräkna oddsen:

Tuggar på logistisk regression

Denna metod för att bestämma odds kommer att vara användbar för oss i nästa steg.

Steg 3. Låt oss härleda en formel att bestämma Tuggar på logistisk regression

Så vi lärde oss, att veta Tuggar på logistisk regression, hitta funktionsvärden Tuggar på logistisk regression. Men i själva verket behöver vi precis det motsatta - att veta värdet Tuggar på logistisk regression hitta Tuggar på logistisk regression. För att göra detta, låt oss vända oss till ett sådant koncept som den omvända oddsfunktionen, enligt vilken:

Tuggar på logistisk regression

I artikeln kommer vi inte att härleda formeln ovan, men vi kommer att kontrollera den med siffrorna från exemplet ovan. Vi vet att med oddset 4 till 1 (Tuggar på logistisk regression), är sannolikheten för att händelsen inträffar 0.8 (Tuggar på logistisk regression). Låt oss göra ett byte: Tuggar på logistisk regression. Detta sammanfaller med våra tidigare beräkningar. Låt oss gå vidare.

I det sista steget drog vi slutsatsen det Tuggar på logistisk regression, vilket innebär att du kan göra ett byte i den omvända oddsfunktionen. Vi får:

Tuggar på logistisk regression

Dividera både täljaren och nämnaren med Tuggar på logistisk regression, Sedan:

Tuggar på logistisk regression

För säkerhets skull, för att vara säker på att vi inte har gjort ett misstag någonstans, låt oss göra en liten kontroll till. I steg 2 har vi för Tuggar på logistisk regression bestämt det Tuggar på logistisk regression. Sedan byter du ut värdet Tuggar på logistisk regression in i den logistiska responsfunktionen förväntar vi oss att få Tuggar på logistisk regression. Vi ersätter och får: Tuggar på logistisk regression

Grattis, kära läsare, vi har precis tagit fram och testat den logistiska responsfunktionen. Låt oss titta på grafen för funktionen.

Diagram 3 "Logistisk svarsfunktion"

Tuggar på logistisk regression

Kod för att rita grafen

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

I litteraturen kan du även hitta namnet på denna funktion som sigmoid funktion. Grafen visar tydligt att den huvudsakliga förändringen i sannolikheten för ett objekt som tillhör en klass sker inom ett relativt litet område Tuggar på logistisk regression, någonstans ifrån Tuggar på logistisk regression до Tuggar på logistisk regression.

Jag föreslår att du återvänder till vår kreditanalytiker och hjälper honom att beräkna sannolikheten för återbetalning av lån, annars riskerar han att bli utan bonus :)

Tabell 2 "Möjliga låntagare"

Tuggar på logistisk regression

Kod för att generera tabellen

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

Så vi har bestämt sannolikheten för återbetalning av lån. I allmänhet verkar detta vara sant.

Sannolikheten att Vasya, med en lön på 120.000 3.000 RUR, kommer att kunna ge 100 0.3 RUR till banken varje månad är nära XNUMX%. Förresten måste vi förstå att en bank kan ge ut ett lån till Lesha om bankens policy till exempel ger utlåning till kunder med en sannolikhet för återbetalning av lån på mer än till exempel XNUMX. Det är bara det att i det här fallet kommer banken att skapa en större reserv för eventuella förluster.

Det bör också noteras att lönegraden på minst 3 och med en marginal på 5.000 XNUMX RUR togs från taket. Därför kunde vi inte använda vektorn av vikter i dess ursprungliga form Tuggar på logistisk regression. Vi behövde minska koefficienterna kraftigt, och i det här fallet dividerade vi varje koefficient med 25.000 XNUMX, det vill säga i huvudsak justerade vi resultatet. Men detta gjordes specifikt för att förenkla förståelsen av materialet i det inledande skedet. I livet behöver vi inte uppfinna och justera koefficienter, utan hitta dem. I nästa avsnitt av artikeln kommer vi att härleda ekvationerna med vilka parametrarna väljs Tuggar på logistisk regression.

04. Minsta kvadratmetod för att bestämma viktvektorn Tuggar på logistisk regression i den logistiska responsfunktionen

Vi känner redan till denna metod för att välja en vektor av vikter Tuggar på logistisk regressionsom minsta kvadratmetoden (LSM) och faktiskt, varför använder vi det då inte i binära klassificeringsproblem? Faktum är att ingenting hindrar dig från att använda MNC, endast denna metod i klassificeringsproblem ger resultat som är mindre exakta än Logistisk förlust. Det finns en teoretisk grund för detta. Låt oss först titta på ett enkelt exempel.

Låt oss anta att våra modeller (med MSE и Logistisk förlust) har redan börjat välja vektorn för vikter Tuggar på logistisk regression och vi stoppade beräkningen i något steg. Det spelar ingen roll om det är i mitten, i slutet eller i början, det viktigaste är att vi redan har några värden för viktvektorn och låt oss anta att viktvektorn i detta steg Tuggar på logistisk regression för båda modellerna finns det inga skillnader. Ta sedan de resulterande vikterna och byt ut dem i logistisk responsfunktion (Tuggar på logistisk regression) för något objekt som tillhör klassen Tuggar på logistisk regression. Vi undersöker två fall när, i enlighet med den valda vektorn av vikter, vår modell är mycket felaktig och vice versa - modellen är mycket säker på att objektet tillhör klassen Tuggar på logistisk regression. Låt oss se vilka böter som kommer att utfärdas vid användning MNC и Logistisk förlust.

Kod för att beräkna påföljder beroende på vilken förlustfunktion som används

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

Ett fall av en blunder — modellen tilldelar ett objekt till en klass Tuggar på logistisk regression med en sannolikhet på 0,01

Straff vid användning MNC kommer vara:
Tuggar på logistisk regression

Straff vid användning Logistisk förlust kommer vara:
Tuggar på logistisk regression

Ett fall av starkt förtroende — modellen tilldelar ett objekt till en klass Tuggar på logistisk regression med en sannolikhet på 0,99

Straff vid användning MNC kommer vara:
Tuggar på logistisk regression

Straff vid användning Logistisk förlust kommer vara:
Tuggar på logistisk regression

Detta exempel illustrerar väl att förlustfunktionen vid ett grovt fel Loggförlust straffar modellen betydligt mer än MSE. Låt oss nu förstå vad den teoretiska bakgrunden är för att använda förlustfunktionen Loggförlust i klassificeringsproblem.

05. Maximum likelihood-metod och logistisk regression

Som utlovat i början är artikeln full av enkla exempel. I studion finns ett annat exempel och gamla gäster - banklåntagare: Vasya, Fedya och Lesha.

För säkerhets skull, innan jag utvecklar exemplet, låt mig påminna dig om att vi i livet har att göra med ett träningsprov på tusentals eller miljontals objekt med tiotals eller hundratals funktioner. Men här är siffrorna tagna så att de lätt kan passa in i huvudet på en nybörjare som datavetare.

Låt oss återgå till exemplet. Låt oss föreställa oss att bankens direktör bestämde sig för att ge ut ett lån till alla i nöd, trots att algoritmen sa åt honom att inte utfärda det till Lesha. Och nu har det gått tillräckligt med tid och vi vet vilka av de tre hjältarna som betalade tillbaka lånet och vilka som inte gjorde det. Vad var att vänta: Vasya och Fedya betalade tillbaka lånet, men det gjorde inte Lesha. Låt oss nu föreställa oss att detta resultat kommer att vara ett nytt träningsprov för oss och samtidigt är det som om all data om faktorerna som påverkar sannolikheten för att återbetala lånet (låntagarens lön, storleken på den månatliga betalningen) har försvunnit. Sedan kan vi intuitivt anta att var tredje låntagare inte betalar tillbaka lånet till banken, eller med andra ord, sannolikheten för att nästa låntagare ska betala tillbaka lånet Tuggar på logistisk regression. Detta intuitiva antagande har teoretisk bekräftelse och bygger på metoden för maximal sannolikhet, ofta i litteraturen kallas det principen om maximal sannolikhet.

Låt oss först bekanta oss med begreppsapparaten.

Sannolikhet för provtagning är sannolikheten att få exakt ett sådant urval, att få exakt sådana observationer/resultat, d.v.s. produkten av sannolikheterna att erhålla vart och ett av provresultaten (till exempel om lånet från Vasya, Fedya och Lesha återbetalades eller inte återbetalades samtidigt).

Sannolikhetsfunktion relaterar sannolikheten för ett urval till värdena för distributionsparametrarna.

I vårt fall är träningsprovet ett generaliserat Bernoulli-schema, där den slumpmässiga variabeln endast tar två värden: Tuggar på logistisk regression eller Tuggar på logistisk regression. Därför kan sampelsannolikheten skrivas som en sannolikhetsfunktion av parametern Tuggar på logistisk regression enligt följande:

Tuggar på logistisk regression
Tuggar på logistisk regression

Ovanstående post kan tolkas på följande sätt. Den gemensamma sannolikheten att Vasya och Fedya kommer att återbetala lånet är lika med Tuggar på logistisk regression, är sannolikheten att Lesha INTE kommer att betala tillbaka lånet lika med Tuggar på logistisk regression (eftersom det INTE var återbetalningen av lånet som skedde), därför är den gemensamma sannolikheten för alla tre händelserna lika Tuggar på logistisk regression.

Maximal likelihood-metod är en metod för att uppskatta en okänd parameter genom att maximera sannolikhetsfunktioner. I vårt fall måste vi hitta ett sådant värde Tuggar på logistisk regression, vid vilken Tuggar på logistisk regression når sitt maximum.

Var kommer själva idén ifrån - att leta efter värdet av en okänd parameter vid vilken likelihood-funktionen når ett maximum? Upprinnelsen till idén härrör från idén att ett urval är den enda källan till kunskap som finns tillgänglig för oss om befolkningen. Allt vi vet om populationen finns representerat i urvalet. Allt vi kan därför säga är att ett urval är den mest exakta återspeglingen av populationen som är tillgänglig för oss. Därför måste vi hitta en parameter där det tillgängliga urvalet blir det mest sannolika.

Uppenbarligen har vi att göra med ett optimeringsproblem där vi måste hitta ytterpunkten för en funktion. För att hitta extremumpunkten är det nödvändigt att överväga första ordningens villkor, det vill säga likställa derivatan av funktionen till noll och lösa ekvationen med avseende på den önskade parametern. Att söka efter derivatan av en produkt av ett stort antal faktorer kan dock vara en lång uppgift; för att undvika detta finns det en speciell teknik - att byta till logaritmen sannolikhetsfunktioner. Varför är en sådan övergång möjlig? Låt oss vara uppmärksamma på det faktum att vi inte letar efter yttersta delen av själva funktionenTuggar på logistisk regression, och extremumpunkten, det vill säga värdet på den okända parametern Tuggar på logistisk regression, vid vilken Tuggar på logistisk regression når sitt maximum. När man flyttar till en logaritm ändras inte extremumpunkten (även om själva extremumet kommer att skilja sig), eftersom logaritmen är en monoton funktion.

Låt oss, i enlighet med ovanstående, fortsätta att utveckla vårt exempel med lån från Vasya, Fedya och Lesha. Låt oss först gå vidare till logaritm för sannolikhetsfunktionen:

Tuggar på logistisk regression

Nu kan vi enkelt särskilja uttrycket med Tuggar på logistisk regression:

Tuggar på logistisk regression

Och slutligen, överväg första ordningens villkor - vi likställer derivatan av funktionen till noll:

Tuggar på logistisk regression

Alltså vår intuitiva uppskattning av sannolikheten för återbetalning av lån Tuggar på logistisk regression var teoretiskt motiverad.

Bra, men vad ska vi göra med denna information nu? Om vi ​​antar att var tredje låntagare inte lämnar tillbaka pengarna till banken, kommer den senare oundvikligen att gå i konkurs. Det stämmer, men bara när man bedömer sannolikheten för återbetalning av lån lika med Tuggar på logistisk regression Vi tog inte hänsyn till faktorerna som påverkar återbetalningen av lån: låntagarens lön och storleken på den månatliga betalningen. Låt oss komma ihåg att vi tidigare beräknade sannolikheten för återbetalning av lånet av varje kund, med hänsyn till samma faktorer. Det är logiskt att vi fick sannolikheter som skiljer sig från konstanten lika Tuggar på logistisk regression.

Låt oss definiera sannolikheten för prover:

Kod för beräkning av provsannolikheter

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)

Provsannolikhet vid ett konstant värde Tuggar på logistisk regression:

Tuggar på logistisk regression

Provsannolikhet vid beräkning av sannolikheten för återbetalning av lån med hänsyn tagen till faktorer Tuggar på logistisk regression:

Tuggar på logistisk regression
Tuggar på logistisk regression

Sannolikheten för ett urval med en sannolikhet beräknad beroende på faktorerna visade sig vara högre än sannolikheten med ett konstant sannolikhetsvärde. Vad betyder det här? Detta tyder på att kunskap om faktorerna gjorde det möjligt att mer exakt välja sannolikheten för återbetalning av lån för varje kund. Därför vore det mer korrekt att vid utfärdandet av nästa lån använda den modell som föreslås i slutet av avsnitt 3 i artikeln för att bedöma sannolikheten för återbetalning av skulden.

Men alltså, om vi vill maximera prov sannolikhetsfunktion, varför inte använda någon algoritm som kommer att producera sannolikheter för Vasya, Fedya och Lesha, till exempel, lika med 0.99, 0.99 respektive 0.01. Kanske kommer en sådan algoritm att fungera bra på träningsprovet, eftersom det kommer att föra provets sannolikhetsvärde närmare Tuggar på logistisk regression, men för det första kommer en sådan algoritm med största sannolikhet att ha svårigheter med generaliseringsförmågan, och för det andra kommer denna algoritm definitivt inte att vara linjär. Och om metoder för att bekämpa överträning (lika svag generaliseringsförmåga) uppenbarligen inte ingår i planen för denna artikel, låt oss gå igenom den andra punkten mer i detalj. För att göra detta, svara bara på en enkel fråga. Kan sannolikheten för att Vasya och Fedya ska återbetala lånet vara densamma, med hänsyn till de faktorer som är kända för oss? Ur sund logiks synvinkel, naturligtvis inte, det kan den inte. Så Vasya kommer att betala 2.5% av sin lön per månad för att återbetala lånet, och Fedya - nästan 27,8%. Även i diagram 2 "Klientklassificering" ser vi att Vasya är mycket längre från linjen som skiljer klasserna åt än Fedya. Och slutligen vet vi att funktionen Tuggar på logistisk regression för Vasya och Fedya har olika värden: 4.24 för Vasya och 1.0 för Fedya. Nu, om Fedya, till exempel, tjänade en storleksordning mer eller bad om ett mindre lån, då skulle sannolikheterna för att återbetala lånet för Vasya och Fedya vara liknande. Linjärt beroende kan med andra ord inte luras. Och om vi faktiskt räknat ut oddsen Tuggar på logistisk regression, och inte tog dem ur luften, kan vi lugnt säga att våra värderingar Tuggar på logistisk regression bäst låter oss uppskatta sannolikheten för återbetalning av lånet av varje låntagare, men eftersom vi gick med på att anta att bestämning av koefficienterna Tuggar på logistisk regression utfördes enligt alla regler, då kommer vi att anta det - våra koefficienter tillåter oss att ge en bättre uppskattning av sannolikheten :)

Vi avviker dock. I det här avsnittet måste vi förstå hur vektorn av vikter bestäms Tuggar på logistisk regression, vilket är nödvändigt för att bedöma sannolikheten för återbetalning av lånet av varje låntagare.

Låt oss kort sammanfatta med vilken arsenal vi letar efter odds Tuggar på logistisk regression:

1. Vi antar att sambandet mellan målvariabeln (prediktionsvärde) och faktorn som påverkar resultatet är linjär. Av denna anledning används den linjär regressionsfunktion snäll Tuggar på logistisk regression, vars rad delar in objekt (klienter) i klasser Tuggar på logistisk regression и Tuggar på logistisk regression eller Tuggar på logistisk regression (kunder som kan betala tillbaka lånet och de som inte kan). I vårt fall har ekvationen formen Tuggar på logistisk regression.

2. Vi använder omvänd logitfunktion snäll Tuggar på logistisk regression för att bestämma sannolikheten för att ett objekt tillhör en klass Tuggar på logistisk regression.

3. Vi betraktar vår träningsuppsättning som en implementering av en generaliserad Bernoulli planerar, det vill säga för varje objekt genereras en slumpvariabel, som med sannolikhet Tuggar på logistisk regression (sin egen för varje objekt) tar värdet 1 och med sannolikhet Tuggar på logistisk regression - 0.

4. Vi vet vad vi behöver för att maximera prov sannolikhetsfunktion med hänsyn till de accepterade faktorerna så att det tillgängliga urvalet blir det mest troliga. Med andra ord måste vi välja parametrar där provet kommer att vara mest troligt. I vårt fall är den valda parametern sannolikheten för återbetalning av lån Tuggar på logistisk regression, vilket i sin tur beror på okända koefficienter Tuggar på logistisk regression. Så vi måste hitta en sådan vektor av vikter Tuggar på logistisk regression, där sannolikheten för provet kommer att vara maximal.

5. Vi vet vad vi ska maximera exempel på sannolikhetsfunktioner du kan använda metoden för maximal sannolikhet. Och vi kan alla knepiga knep för att arbeta med den här metoden.

Så här visar det sig vara ett drag i flera steg :)

Kom nu ihåg att vi i början av artikeln ville härleda två typer av förlustfunktioner Logistisk förlust beroende på hur objektklasser är designade. Det hände så att i klassificeringsproblem med två klasser betecknas klasserna som Tuggar på logistisk regression и Tuggar på logistisk regression eller Tuggar på logistisk regression. Beroende på notationen kommer utgången att ha en motsvarande förlustfunktion.

Fall 1. Klassificering av föremål i Tuggar på logistisk regression и Tuggar på logistisk regression

Tidigare, vid bestämning av sannolikheten för ett urval, där sannolikheten för skuldåterbetalning från låntagaren beräknades baserat på faktorer och givna koefficienter Tuggar på logistisk regression, tillämpade vi formeln:

Tuggar på logistisk regression

Faktiskt Tuggar på logistisk regression är meningen logistiska svarsfunktioner Tuggar på logistisk regression för en given vektor av vikter Tuggar på logistisk regression

Då finns det inget som hindrar oss från att skriva sample likelihood-funktionen enligt följande:

Tuggar på logistisk regression

Det händer att det ibland är svårt för vissa nybörjare analytiker att omedelbart förstå hur denna funktion fungerar. Låt oss titta på fyra korta exempel som kommer att reda ut allt:

1. Om Tuggar på logistisk regression (dvs. enligt träningsexemplet tillhör objektet klass +1) och vår algoritm Tuggar på logistisk regression bestämmer sannolikheten för att klassificera ett objekt till en klass Tuggar på logistisk regression lika med 0.9, då kommer denna del av provsannolikheten att beräknas enligt följande:

Tuggar på logistisk regression

2. Om Tuggar på logistisk regressionOch Tuggar på logistisk regression, då blir beräkningen så här:

Tuggar på logistisk regression

3. Om Tuggar på logistisk regressionOch Tuggar på logistisk regression, då blir beräkningen så här:

Tuggar på logistisk regression

4. Om Tuggar på logistisk regressionOch Tuggar på logistisk regression, då blir beräkningen så här:

Tuggar på logistisk regression

Det är uppenbart att sannolikhetsfunktionen kommer att maximeras i fall 1 och 3 eller i det allmänna fallet - med korrekt gissade värden på sannolikheterna för att tilldela ett objekt till en klass Tuggar på logistisk regression.

På grund av det faktum att när man bestämmer sannolikheten för att tilldela ett objekt till en klass Tuggar på logistisk regression Vi känner bara inte till koefficienterna Tuggar på logistisk regression, då ska vi leta efter dem. Som nämnts ovan är detta ett optimeringsproblem där vi först måste hitta derivatan av sannolikhetsfunktionen med avseende på vektorn av vikter Tuggar på logistisk regression. Men först är det vettigt att förenkla uppgiften för oss själva: vi kommer att leta efter derivatan av logaritmen sannolikhetsfunktioner.

Tuggar på logistisk regression

Varför efter logaritm, in logistiska felfunktioner, bytte vi skylten från Tuggar på logistisk regressionTuggar på logistisk regression. Allt är enkelt, eftersom det i problem med att bedöma kvaliteten på en modell är vanligt att minimera värdet av en funktion, multiplicerade vi den högra sidan av uttrycket med Tuggar på logistisk regression och därför, istället för att maximera, minimerar vi nu funktionen.

Faktiskt, just nu, framför dina ögon, härleddes förlustfunktionen mödosamt - Logistisk förlust för ett träningsset med två klasser: Tuggar på logistisk regression и Tuggar på logistisk regression.

Nu, för att hitta koefficienterna, behöver vi bara hitta derivatan logistiska felfunktioner och sedan, med hjälp av numeriska optimeringsmetoder, såsom gradientnedstigning eller stokastisk gradientnedstigning, välj de mest optimala koefficienterna Tuggar på logistisk regression. Men med tanke på artikelns avsevärda volym föreslås det att du gör differentieringen på egen hand, eller så kanske detta blir ett ämne för nästa artikel med mycket aritmetik utan så detaljerade exempel.

Fall 2. Klassificering av föremål i Tuggar på logistisk regression и Tuggar på logistisk regression

Tillvägagångssättet här kommer att vara detsamma som med klasser Tuggar på logistisk regression и Tuggar på logistisk regression, men själva vägen till utgången av förlustfunktionen Logistisk förlust, kommer att vara mer utsmyckad. Låt oss börja. För sannolikhetsfunktionen kommer vi att använda operatören "om då...". Det vill säga om Tuggar på logistisk regressionDet e objektet tillhör klassen Tuggar på logistisk regression, för att beräkna sannolikheten för urvalet använder vi sannolikheten Tuggar på logistisk regression, om objektet tillhör klassen Tuggar på logistisk regression, sedan ersätter vi med sannolikheten Tuggar på logistisk regression. Så här ser sannolikhetsfunktionen ut:

Tuggar på logistisk regression

Låt oss beskriva på våra fingrar hur det fungerar. Låt oss överväga 4 fall:

1. Om Tuggar på logistisk regression и Tuggar på logistisk regression, då kommer provtagningssannolikheten att "gå" Tuggar på logistisk regression

2. Om Tuggar på logistisk regression и Tuggar på logistisk regression, då kommer provtagningssannolikheten att "gå" Tuggar på logistisk regression

3. Om Tuggar på logistisk regression и Tuggar på logistisk regression, då kommer provtagningssannolikheten att "gå" Tuggar på logistisk regression

4. Om Tuggar på logistisk regression и Tuggar på logistisk regression, då kommer provtagningssannolikheten att "gå" Tuggar på logistisk regression

Det är uppenbart att i fall 1 och 3, när sannolikheterna bestämts korrekt av algoritmen, sannolikhetsfunktion kommer att maximeras, det vill säga det är precis vad vi ville få. Detta tillvägagångssätt är dock ganska besvärligt och härnäst kommer vi att överväga en mer kompakt notation. Men först, låt oss logaritma sannolikhetsfunktionen med en förändring av tecken, eftersom vi nu kommer att minimera den.

Tuggar på logistisk regression

Låt oss ersätta istället Tuggar på logistisk regression uttryck Tuggar på logistisk regression:

Tuggar på logistisk regression

Låt oss förenkla den rätta termen under logaritmen med enkla aritmetiska tekniker och få:

Tuggar på logistisk regression

Nu är det dags att göra sig av med operatören "om då...". Observera att när ett objekt Tuggar på logistisk regression tillhör klassen Tuggar på logistisk regression, sedan i uttrycket under logaritmen, i nämnaren, Tuggar på logistisk regression höjt till makten Tuggar på logistisk regression, om objektet tillhör klassen Tuggar på logistisk regression, då höjs $e$ till makten Tuggar på logistisk regression. Därför kan notationen för graden förenklas genom att kombinera båda fallen till ett: Tuggar på logistisk regression. Sedan logistisk felfunktion kommer att ha formen:

Tuggar på logistisk regression

I enlighet med logaritmreglerna vänder vi bråket och sätter ut tecknet "Tuggar på logistisk regression" (minus) för logaritmen får vi:

Tuggar på logistisk regression

Här är förlustfunktionen logistisk förlust, som används i träningsuppsättningen med objekt som tilldelats klasser: Tuggar på logistisk regression и Tuggar på logistisk regression.

Nåväl, vid det här laget tar jag ledigt och vi avslutar artikeln.

Tuggar på logistisk regression Författarens tidigare arbete är "Föra den linjära regressionsekvationen till matrisform"

Hjälpmaterial

1. Litteratur

1) Tillämpad regressionsanalys / N. Draper, G. Smith - 2nd ed. – M.: Finans och statistik, 1986 (översättning från engelska)

2) Sannolikhetsteori och matematisk statistik / V.E. Gmurman - 9:e uppl. - M.: Högre skola, 2003

3) Sannolikhetsteori / N.I. Chernova - Novosibirsk: Novosibirsk State University, 2007

4) Affärsanalys: från data till kunskap / Paklin N. B., Oreshkov V. I. - 2nd ed. — St. Petersburg: Peter, 2013

5) Data Science Datavetenskap från grunden / Joel Gras - St. Petersburg: BHV Petersburg, 2017

6) Praktisk statistik för datavetenskapsspecialister / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018

2. Föreläsningar, kurser (video)

1) Kärnan i metoden för maximal sannolikhet, Boris Demeshev

2) Maximal likelihood-metoden i det kontinuerliga fallet, Boris Demeshev

3) Logistisk tillbakagång. Öppen ODS-bana, Yury Kashnitsky

4) Föreläsning 4, Evgeny Sokolov (från 47 minuters video)

5) Logistisk regression, Vyacheslav Vorontsov

3. Internetkällor

1) Linjär klassificering och regressionsmodeller

2) Hur man enkelt förstår logistisk regression

3) Logistisk felfunktion

4) Oberoende tester och Bernoulli formel

5) Ballad om MMP

6) Maximal likelihood-metod

7) Formler och egenskaper hos logaritmer

8) Varför nummer Tuggar på logistisk regression?

9) Linjär klassificerare

Källa: will.com

Lägg en kommentar