Перажоўваючы лагістычную рэгрэсію

Перажоўваючы лагістычную рэгрэсію

У гэтым артыкуле, мы будзем разбіраць тэарэтычныя выкладкі пераўтварэнні функцыі лінейнай рэгрэсіі в функцыю зваротнага логіт-пераўтварэнні (інакш кажуць, функцыю лагістычнага водгуку). Затым, скарыстаўшыся арсеналам метаду максімальнага праўдападабенства, у адпаведнасці з мадэллю лагістычнай рэгрэсіі, вывядзем функцыю страт Logistic Loss, ці іншымі словамі, мы вызначым функцыю, з дапамогай якой у мадэлі лагістычнай рэгрэсіі падбіраюцца параметры вектара вагаў Перажоўваючы лагістычную рэгрэсію.

План артыкула:

  1. Паўторым аб прамалінейнай залежнасці паміж двума зменнымі
  2. Выявім неабходнасць пераўтварэння функцыі лінейнай рэгрэсіі Перажоўваючы лагістычную рэгрэсію в функцыю лагістычнага водгуку Перажоўваючы лагістычную рэгрэсію
  3. Правядзем пераўтварэнні і выведзем функцыю лагістычнага водгуку
  4. Паспрабуем зразумець, чым дрэнны метад найменшых квадратаў пры падборы параметраў Перажоўваючы лагістычную рэгрэсію функцыі Logistic Loss
  5. Выкарыстоўваны метад максімальнага праўдападабенства для вызначэння функцыі падбору параметраў Перажоўваючы лагістычную рэгрэсію:

    5.1. Выпадак 1: функцыя Logistic Loss для аб'ектаў з абазначэннем класаў 0 и 1:

    Перажоўваючы лагістычную рэгрэсію

    5.2. Выпадак 2: функцыя Logistic Loss для аб'ектаў з абазначэннем класаў -1 и +1:

    Перажоўваючы лагістычную рэгрэсію


Артыкул мае шмат простых прыкладаў, у якіх усе разлікі лёгка зрабіць вусна або на паперы, у некаторых выпадках можа спатрэбіцца калькулятар. Так што падрыхтуйцеся 🙂

Дадзены артыкул у большай меры разлічаны на датасайнтыстаў з пачатковым узроўнем спазнанняў у асновах машыннага навучання.

У артыкуле таксама будзе прыведзены код для адмалёўкі графікаў і разлікаў. Увесь код напісаны на мове python 2.7. Загадзя растлумачу аб «навізне» выкарыстоўванай версіі - такое адна з умоў праходжання вядомага курсу ад Яндэкса на не менш вядомай інтэрнэт-пляцоўцы онлайн адукацыі Coursera, і, як можна меркаваць, матэрыял падрыхтаваны па матывах гэтага курса.

01. Прамалінейная залежнасць

Цалкам слушна задаць пытанне - прычым тут прамалінейная залежнасць і лагістычная рэгрэсія?

Усё проста! Лагістычная рэгрэсія ўяўляе сабой адну з мадэляў, якія адносяцца да лінейнага класіфікатара. Простымі словамі, задачай лінейнага класіфікатара з'яўляецца прадказанне мэтавых значэнняў Перажоўваючы лагістычную рэгрэсію ад зменных (рэгрэсараў) Перажоўваючы лагістычную рэгрэсію. Пры гэтым лічыцца, што залежнасць паміж прыкметамі Перажоўваючы лагістычную рэгрэсію і мэтавымі значэннямі Перажоўваючы лагістычную рэгрэсію лінейная. Адсюль уласна і назва класіфікатара - лінейны. Калі вельмі груба абагульніць, то ў аснове мадэлі лагістычнай рэгрэсіі ляжыць здагадка аб наяўнасці лінейнай залежнасці паміж прыкметамі Перажоўваючы лагістычную рэгрэсію і мэтавымі значэннямі Перажоўваючы лагістычную рэгрэсію. Вось яна - сувязь.

У студыі першы прыклад, і ён, правільна, аб прамалінейнай залежнасці доследных велічынь. У працэсе падрыхтоўкі артыкула наткнуўся на прыклад, які набіў ужо шматлікім аскому - залежнасць сілы току ад напругі. («Прыкладны рэгрэсійны аналіз», Н.Дрэйпер, Г.Сміт). Тут мы яго таксама разгледзім.

У адпаведнасці з законам Ома:

Перажоўваючы лагістычную рэгрэсію, Дзе Перажоўваючы лагістычную рэгрэсію - сіла току, Перажоўваючы лагістычную рэгрэсію - напружанне, Перажоўваючы лагістычную рэгрэсію - Супраціў.

Калі б мы не ведалі закон Ома, то маглі б знайсці залежнасць эмпірычнаму, змяняючы Перажоўваючы лагістычную рэгрэсію і вымяраючы Перажоўваючы лагістычную рэгрэсію, падтрымліваючы пры гэтым Перажоўваючы лагістычную рэгрэсію фіксаваным. Тады мы б убачылі, што графік залежнасці Перажоўваючы лагістычную рэгрэсію ад Перажоўваючы лагістычную рэгрэсію дае больш-менш прамую лінію, якая праходзіць праз пачатак каардынат. Мы сказалі «больш-менш», бо, хоць залежнасць фактычна дакладная, нашы вымярэнні могуць змяшчаць малыя памылкі, і таму кропкі на графіцы, магчыма, не трапяць строга на лінію, а будуць раскіданыя вакол яе выпадковым чынам.

Графік 1 «Залежнасць Перажоўваючы лагістычную рэгрэсію ад Перажоўваючы лагістычную рэгрэсію»

Перажоўваючы лагістычную рэгрэсію

Код адмалёўкі графіка

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. Неабходнасць пераўтварэнняў раўнання лінейнай рэгрэсіі

Разгледзім чарговы прыклад. Уявім, што мы працуем у банку і перад намі задача вызначыць верагоднасць вяртання крэдыту пазычальнікам у залежнасці ад некаторых фактараў. Для спрашчэння задачы, разгледзім толькі два фактары: месячная зарплата пазычальніка і месячны памер плацяжу на пагашэнне крэдыту.

Задача вельмі ўмоўная, але на гэтым прыкладзе мы зможам зразумець, чаму для яе рашэння нядосыць ужыванні функцыі лінейнай рэгрэсіі, а таксама даведаемся якія пераўтварэнні з функцыяй патрабуецца правесці.

Вяртаемся да прыкладу. Зразумела, што чым вышэй заробак, тым больш пазычальнік зможа штомесяц накіроўваць на пагашэнне крэдыту. Пры гэтым, для пэўнага дыяпазону заробкаў гэтая залежнасць будзе цалкам сабе лінейная. Напрыклад, возьмем дыяпазон заробкаў ад 60.000Р да 200.000Р і выкажам здагадку, што ў паказаным дыяпазоне заработных плат, залежнасць памеру штомесячнага плацяжу ад памеру заработнай платы - лінейная. Дапусцім, для названага дыяпазону памеру заработных плат было выяўлена, што суадносіны зарплаты да плацяжу не можа апускацца ніжэй за 3 і яшчэ ў пазычальніка павінна заставацца ў запасе 5.000Р. І толькі ў такім выпадку, мы будзем лічыць, што пазычальнік верне крэдыт слоік. Тады, раўнанне лінейнай рэгрэсіі набудзе выгляд:

Перажоўваючы лагістычную рэгрэсію

дзе Перажоўваючы лагістычную рэгрэсію, Перажоўваючы лагістычную рэгрэсію, Перажоўваючы лагістычную рэгрэсію, Перажоўваючы лагістычную рэгрэсію - зарплата Перажоўваючы лагістычную рэгрэсію-га пазычальніка, Перажоўваючы лагістычную рэгрэсію - плацёж па крэдыце Перажоўваючы лагістычную рэгрэсію-га пазычальніка.

Падстаўляючы ва ўраўненне зарплату і плацёж па крэдыце з фіксаванымі параметрамі Перажоўваючы лагістычную рэгрэсію можна прыняць рашэнне аб выдачы або адмове крэдыту.

Забягаючы наперад, адзначым, што, пры зададзеных параметрах Перажоўваючы лагістычную рэгрэсію функцыя лінейнай рэгрэсіі, якая ўжываецца ў функцыі лагістычнага водгуку будзе выдаваць вялікія значэнні, якія абцяжарыць правядзенне разлікаў па вызначэнні імавернасцей пагашэння крэдыту. Таму, прапануецца зменшыць нашыя каэфіцыенты, скажам так, у 25.000 разоў. Ад гэтага пераўтварэнні ў каэфіцыентах, рашэнне аб выдачы крэдыту не зменіцца. Запомнім гэты момант на будучыню, а цяпер каб было яшчэ больш зразумела, пра што гаворка, разгледзім сітуацыя з трыма патэнцыйнымі пазычальнікамі.

Табліца 1 "Патэнцыйныя пазычальнікі"

Перажоўваючы лагістычную рэгрэсію

Код для фармавання табліцы

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

У адпаведнасці з дадзенымі табліцы, Вася пры зарплаце ў 120.000р хоча атрымаць такі крэдыт, каб штомесячнага гасіць яго па 3.000р. Намі было вызначана, што для ўхвалення крэдыту, памер заработнай платы Васі павінен перавышаць у тры разы памер плацяжу, і каб яшчэ заставалася 5.000р. Гэтаму патрабаванню Вася задавальняе: Перажоўваючы лагістычную рэгрэсію. Застаецца нават 106.000р. Нягледзячы на ​​тое, што пры разліку Перажоўваючы лагістычную рэгрэсію мы паменшылі каэфіцыенты Перажоўваючы лагістычную рэгрэсію у 25.000 разоў, вынік атрымалі той жа - крэдыт можа быць ухвалены. Федзя таксама атрымае крэдыт, а вось Лёшу, нягледзячы на ​​тое, што ён атрымлівае больш за ўсіх, давядзецца зменшыць свае апетыты.

Намалюем графік з такой нагоды.

Графік 2 "Класіфікацыя пазычальнікаў"

Перажоўваючы лагістычную рэгрэсію

Код для адмалёўкі графіка

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

Такім чынам, наша прамая, пабудаваная ў адпаведнасці з функцыяй Перажоўваючы лагістычную рэгрэсію, аддзяляе «дрэнных» пазычальнікаў ад «добрых». Тыя пазычальнікі, у каго жаданні не супадаюць з магчымасцямі знаходзяцца вышэй прамой (Лёша), тыя ж, хто здольны паводле параметраў нашай мадэлі, вярнуць крэдыт, знаходзяцца пад прамой (Вася і Федзя). Інакш можна сказаць так - наша прамая падзяляе пазычальнікаў на два класы. Абазначым іх наступным чынам: да класа Перажоўваючы лагістычную рэгрэсію аднясем тых пазычальнікаў, якія хутчэй за ўсё вернуць крэдыт, да класа Перажоўваючы лагістычную рэгрэсію або Перажоўваючы лагістычную рэгрэсію аднясем тых пазычальнікаў, якія хутчэй за ўсё не змогуць вярнуць крэдыт.

Абагульнім высновы з гэтага прасценькага прыкладу. Возьмем кропку Перажоўваючы лагістычную рэгрэсію і, падстаўляючы каардынаты кропкі ў адпаведнае раўнанне прамой Перажоўваючы лагістычную рэгрэсію, разгледзім тры варыянты:

  1. Калі кропка знаходзіцца пад прамой, і мы адносім яе да класа Перажоўваючы лагістычную рэгрэсію, тое значэнне функцыі Перажоўваючы лагістычную рэгрэсію будзе станоўчым ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію. Значыць, мы можам лічыць, што верагоднасць пагашэння крэдыту, знаходзіцца ў межах Перажоўваючы лагістычную рэгрэсію. Чым большае значэнне функцыі, тым вышэйшая верагоднасць.
  2. Калі кропка знаходзіцца над прамой і мы адносім яе да класа Перажоўваючы лагістычную рэгрэсію або Перажоўваючы лагістычную рэгрэсію, тое значэнне функцыі будзе адмоўным ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію. Тады мы будзем лічыць, што верагоднасць пагашэння запазычанасці знаходзіцца ў межах Перажоўваючы лагістычную рэгрэсію і, чым больш па модулі значэнне функцыі, тым вышэйшая наша ўпэўненасць.
  3. Кропка знаходзіцца на прамой, на мяжы паміж двума класамі. У такім выпадку значэнне функцыі Перажоўваючы лагістычную рэгрэсію будзе роўна Перажоўваючы лагістычную рэгрэсію і верагоднасць пагашэння крэдыту роўная Перажоўваючы лагістычную рэгрэсію.

Цяпер, уявім, што ў нас не два фактары, а дзясяткі, пазычальнікаў не тры, а тысячы. Тады замест прамой у нас будзе m-мерная плоскасць і каэфіцыенты Перажоўваючы лагістычную рэгрэсію у нас будуць узятыя не са столі, а выведзены па ўсіх правілах, ды на аснове назапашаных дадзеных аб пазычальніках, якія вярнулі або не вярнулі крэдыт. Заўважце, мы зараз адбіраем пазычальнікаў пры ўжо вядомых каэфіцыентах Перажоўваючы лагістычную рэгрэсію. Насамрэч, задача мадэлі лагістычнай рэгрэсіі як раз і складаецца ў тым, каб вызначыць параметры. Перажоўваючы лагістычную рэгрэсію, пры якіх значэнне функцыі страт Logistic Loss будзе імкнуцца да мінімальнага. Але пра тое, як разлічваецца вектар Перажоўваючы лагістычную рэгрэсію, мы яшчэ даведаемся ў 5-м раздзеле артыкула. А пакуль вяртаемся на зямлю запаветную - да нашага банкіра і тром яго кліентам.

Дзякуючы функцыі Перажоўваючы лагістычную рэгрэсію мы ведаем, каму можна даць крэдыт, а каму трэба адмовіць. Але з такой інфармацыяй да дырэктара ісці нельга, бо ад нас хацелі атрымаць верагоднасць вяртання крэдыту кожным пазычальнікам. Што рабіць? Адказ просты - нам трэба неяк пераўтварыць функцыю Перажоўваючы лагістычную рэгрэсію, значэнні якой ляжаць у дыяпазоне Перажоўваючы лагістычную рэгрэсію на функцыю, значэння якой будуць ляжаць у дыяпазоне Перажоўваючы лагістычную рэгрэсію. І такая функцыя існуе, яе называюць функцыяй лагістычнага водгуку або зваротнага-логіт пераўтварэнні. Знаёмцеся:

Перажоўваючы лагістычную рэгрэсію

Паглядзім па кроках як атрымліваецца функцыя лагістычнага водгуку. Адзначым, што крочыць мы будзем у адваротны бок, г.зн. мы выкажам здагадку, што нам вядома значэнне верагоднасці, якое ляжыць у межах ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію і далей мы будзем "раскручваць" гэтае значэнне на ўсю вобласць лікаў ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію.

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

Крок 1. Перавядзем значэння верагоднасці ў дыяпазон Перажоўваючы лагістычную рэгрэсію

На час трансфармацыі функцыі Перажоўваючы лагістычную рэгрэсію в функцыю лагістычнага водгуку Перажоўваючы лагістычную рэгрэсію мы пакінем у спакоі нашага крэдытнага аналітыка, а замест гэтага пройдземся па букмекерскіх канторах. Не, вядома, стаўкі рабіць мы не будзем, усё што нас тамака цікавіць, так гэта сэнс выраза, напрыклад, шанец 4 да 1. Шанцы, знаёмыя ўсім якія робяць стаўкі гульцам, з'яўляюцца суадносінамі «поспехаў» да «няпоспехаў». З пункту гледжання верагоднасцяў, шанцы - гэта верагоднасць наступлення падзеі, дзеленая на верагоднасць таго, што падзея не адбудзецца. Запішам формулу шанцу наступлення падзеі Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію

, Дзе Перажоўваючы лагістычную рэгрэсію - верагоднасць наступлення падзеі, Перажоўваючы лагістычную рэгрэсію - верагоднасць не наступлення падзеі

Напрыклад, калі верагоднасць таго, што малады, моцны і жвавы конь па мянушцы «Ветрык» абміне на скачках старую і адрузлую бабульку па мянушцы «Матільда» ураўноўваецца Перажоўваючы лагістычную рэгрэсію, то шанцы на поспех «Ветрыку» складуць Перажоўваючы лагістычную рэгрэсію к Перажоўваючы лагістычную рэгрэсію Перажоўваючы лагістычную рэгрэсію і наадварот, ведаючы шанцы, нам не складзе працы вылічыць верагоднасць Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію

Такім чынам, мы навучыліся "перакладаць" верагоднасць у шанцы, якія прымаюць значэння ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію. Зробім яшчэ адзін крок і навучымся "перакладаць" верагоднасць на ўсю лікавую прамую ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію.

Крок 2. Перавядзем значэння верагоднасці ў дыяпазон Перажоўваючы лагістычную рэгрэсію

Крок гэты вельмі просты - пралагарыфмаваны шанцы па падставе ліку Эйлера Перажоўваючы лагістычную рэгрэсію і атрымаем:

Перажоўваючы лагістычную рэгрэсію

Цяпер мы ведаем, што калі Перажоўваючы лагістычную рэгрэсію, то вылічыць значэнне Перажоўваючы лагістычную рэгрэсію будзе вельмі проста і, больш за тое, яно павінна быць станоўчым: Перажоўваючы лагістычную рэгрэсію. Так і ёсць.

Дзеля цікаўнасці праверым, што калі Перажоўваючы лагістычную рэгрэсію, тады мы чакаем убачыць адмоўнае значэнне Перажоўваючы лагістычную рэгрэсію. Правяраем: Перажоўваючы лагістычную рэгрэсію. Усё дакладна.

Цяпер мы ведаем як перавесці значэнне верагоднасці ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію на ўсю лікавую прамую ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію. У наступным кроку зробім усё наадварот.

А пакуль, адзначым, што ў адпаведнасці з правіламі лагарыфмавання, ведаючы значэнне функцыі Перажоўваючы лагістычную рэгрэсію, можна вылічыць шанцы:

Перажоўваючы лагістычную рэгрэсію

Гэты спосаб вызначэння шанцаў нам спатрэбіцца на наступным кроку.

Крок 3. Выведзем формулу для вызначэння Перажоўваючы лагістычную рэгрэсію

Такім чынам, мы навучыліся, ведаючы Перажоўваючы лагістычную рэгрэсію, знаходзіць значэння функцыі Перажоўваючы лагістычную рэгрэсію. Аднак, на самой справе нам трэба ўсё з дакладнасцю да наадварот - ведаючы значэнне Перажоўваючы лагістычную рэгрэсію знаходзіць Перажоўваючы лагістычную рэгрэсію. Для гэтага звернемся да такога паняцця як зваротная функцыя шанцаў, у адпаведнасці з якой:

Перажоўваючы лагістычную рэгрэсію

У артыкуле мы не будзем выводзіць вышэйпазначаную формулу, але праверым на лічбах з прыкладу вышэй. Мы ведаем, што пры шанцах роўнымі 4 да 1 (Перажоўваючы лагістычную рэгрэсію), верагоднасць наступлення падзеі роўная 0.8 (Перажоўваючы лагістычную рэгрэсію). Зробім падстаноўку: Перажоўваючы лагістычную рэгрэсію. Гэта супадае з нашымі вылічэннямі, праведзенымі раней. Рухаемся далей.

На мінулым кроку мы вывелі, што Перажоўваючы лагістычную рэгрэсію, А значыць можна зрабіць замену ў зваротнай функцыі шанцаў. Атрымаем:

Перажоўваючы лагістычную рэгрэсію

Падзелім і лічнік і назоўнік на Перажоўваючы лагістычную рэгрэсію, тады:

Перажоўваючы лагістычную рэгрэсію

На ўсякі пажарнік, каб упэўніцца, што мы нідзе не памыліліся, зробім яшчэ адну невялікую праверку. На кроку 2, мы для Перажоўваючы лагістычную рэгрэсію вызначылі, што Перажоўваючы лагістычную рэгрэсію. Тады, падставіўшы значэнне Перажоўваючы лагістычную рэгрэсію у функцыю лагістычнага водгуку, мы чакаем атрымаць Перажоўваючы лагістычную рэгрэсію. Падстаўляем і атрымліваем: Перажоўваючы лагістычную рэгрэсію

Віншую вас, шаноўны чытач, мы толькі што вывелі і пратэставалі функцыю лагістычнага водгуку. Давайце паглядзім на графік функцыі.

Графік 3 "Функцыя лагістычнага водгуку"

Перажоўваючы лагістычную рэгрэсію

Код для адмалёўкі графіка

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

У літаратуры таксама можна сустрэць назву дадзенай функцыі як сігмоід-функцыя. Па графіку добра прыкметна, што асноўная змена верагоднасці прыналежнасці аб'екта да класа адбываецца на адносна невялікім дыяпазоне. Перажоўваючы лагістычную рэгрэсію, недзе ад Перажоўваючы лагістычную рэгрэсію да Перажоўваючы лагістычную рэгрэсію.

Прапаную вярнуцца да нашага крэдытнага аналітыка і дапамагчы яму з вылічэннем верагоднасці пагашэння крэдытаў, інакш ён рызыкуе застацца без прэміі 🙂

Табліца 2 "Патэнцыйныя пазычальнікі"

Перажоўваючы лагістычную рэгрэсію

Код для фармавання табліцы

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

Такім чынам, імавернасць вяртання крэдыту мы вызначылі. У цэлым гэта падобна на праўду.

Сапраўды, верагоднасць таго, што Вася пры зарплаце ў 120.000Р зможа штомесяц аддаваць у банк 3.000Р блізкая да 100%. Дарэчы, мы павінны разумець, што банк можа выдаць крэдыт і Лёшы ў тым выпадку, калі палітыкай банка прадугледжана, напрыклад, крэдытаваць кліентаў з верагоднасцю вяртання крэдыту больш, ну скажам, 0.3. Проста ў такім выпадку банк сфармуе большы рэзерв пад магчымыя страты.

Таксама варта адзначыць, што суадносіны зарплаты да плацяжу не менш за 3 і з запасам у 5.000Р было ўзята са столі. Таму нам нельга было выкарыстоўваць у першапачатковым выглядзе вектар шаляў Перажоўваючы лагістычную рэгрэсію. Нам патрабавалася моцна паменшыць каэфіцыенты і ў такім разе мы падзялілі кожны каэфіцыент на 25.000, гэта значыць у сутнасці мы падагналі вынік. Але гэта зроблена было спецыяльна, каб спрасціць разуменне матэрыялу на пачатковым этапе. У жыцці ж нам спатрэбіцца не выдумляць і падганяць каэфіцыенты, а знаходзіць іх. Якраз у наступных раздзелах артыкула мы выведзем раўнанні, з дапамогай якіх падбіраюцца параметры Перажоўваючы лагістычную рэгрэсію.

04. Метад найменшых квадратаў пры вызначэнні вектара вагаў Перажоўваючы лагістычную рэгрэсію у функцыі лагістычнага водгуку

Нам ужо вядомы такі метад падбору вектара шаляў. Перажоўваючы лагістычную рэгрэсію, Як метад найменшых квадратаў (МНК) і, уласна, чаму б нам тады не выкарыстоўваць яго ў задачах бінарнай класіфікацыі? Сапраўды, нішто не замінае выкарыстоўваць МНК, толькі вось дадзены спосаб у задачах класіфікацыі дае вынікі менш дакладныя, чым Logistic Loss. Гэтаму ёсць тэарэтычнае абгрунтаванне. Давайце спачатку паглядзім на адзін просты прыклад.

Выкажам здагадку, што нашы мадэлі (якія выкарыстоўваюць MSE и Logistic Loss) ужо пачалі падбор вектара вагаў Перажоўваючы лагістычную рэгрэсію і мы спынілі разлік на нейкім кроку. Усё роўна, у сярэдзіне, у канцы ці ў пачатку, галоўнае, што ў нас ужо ёсць нейкія значэнні вектара шаляў і дапусцім, што на гэтым кроку, вектара шаляў Перажоўваючы лагістычную рэгрэсію для абедзвюх мадэляў не маюць адрозненняў. Тады возьмем атрыманыя вагі і падставім іх у функцыю лагістычнага водгуку (Перажоўваючы лагістычную рэгрэсію) для якога-небудзь аб'екта, які адносіцца да класа Перажоўваючы лагістычную рэгрэсію. Даследуем два выпадкі, калі ў адпаведнасці з падабраным вектарам шаляў наша мадэль моцна памыляецца і наадварот мадэль моцна ўпэўненая ў тым, што аб'ект ставіцца да класа. Перажоўваючы лагістычную рэгрэсію. Паглядзім якія штрафы будуць "выпісаны" пры выкарыстанні. МНК и Logistic Loss.

Код для разліку штрафаў у залежнасці ад выкарыстоўванай функцыі страт

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

Выпадак з грубай памылкай - мадэль адносіць аб'ект да класа Перажоўваючы лагістычную рэгрэсію з верагоднасцю ў 0,01

Штраф пры выкарыстанні МНК складзе:
Перажоўваючы лагістычную рэгрэсію

Штраф пры выкарыстанні Logistic Loss складзе:
Перажоўваючы лагістычную рэгрэсію

Выпадак з моцнай упэўненасцю - мадэль адносіць аб'ект да класа Перажоўваючы лагістычную рэгрэсію з верагоднасцю ў 0,99

Штраф пры выкарыстанні МНК складзе:
Перажоўваючы лагістычную рэгрэсію

Штраф пры выкарыстанні Logistic Loss складзе:
Перажоўваючы лагістычную рэгрэсію

Гэты прыклад добра ілюструе, што пры грубай памылцы функцыя страт Страта часопіса штрафуе мадэль значна мацней, чым MSE. Давайце зараз разбярэмся, якія тэарэтычныя перадумовы выкарыстання функцыі страт Страта часопіса у задачах класіфікацыі.

05. Метад максімальнага праўдападабенства і лагістычная рэгрэсія

Як і было абяцана ў пачатку, артыкул мае шмат простых прыкладаў. У студыі чарговы прыклад і старыя госці - пазычальнікі банка: Вася, Федзя і Лёша.

На ўсякі пажарнік, перад тым як развіваць прыклад, нагадаю, што ў жыцці мы маем справу з навучальнай выбаркай з тысяч ці мільёнаў аб'ектаў з дзясяткамі ці сотнямі прыкмет. Аднак тут лічбы ўзяты так, каб яны лёгка ўкладваліся ў галаве пачаткоўца датасайнтэста.

Вяртаемся да прыкладу. Уявім, што дырэктар банка вырашыў выдаць крэдыт усім, хто жыве ў нястачы, нягледзячы на ​​тое, што алгарытм падказваў не выдаваць яго Лёшы. І вось прайшло дастаткова часу і нам стала вядома хто з трох герояў пагасіў крэдыт, а хто не. Што і трэба было чакаць: Вася і Федзя пагасілі крэдыт, а Лёша - не. Цяпер давайце ўявім, што гэты вынік будзе для нас новай навучальнай выбаркай і, пры гэтым у нас як быццам зніклі ўсе дадзеныя аб фактарах, якія ўплываюць на верагоднасць пагашэння крэдыту (зарплата пазычальніка, памер штомесячнага плацяжу). Тады інтуітыўна мы можам меркаваць, што кожны трэці пазычальнік не вяртае банку крэдыт ці іншымі словамі верагоднасць вяртання крэдыту наступным пазычальнікам Перажоўваючы лагістычную рэгрэсію. Гэтай інтуітыўнай здагадцы ёсць тэарэтычнае пацверджанне і засноўваецца яно на метадзе максімальнага праўдападабенства, часта ў літаратуры яго называюць прынцыпам максімальнага праўдападабенства.

Для пачатку пазнаёмімся з паняційным апаратам.

Праўдападабенства выбаркі - гэта верагоднасць атрымання менавіта такой выбаркі, атрымання менавіта такіх назіранняў / вынікаў, г.зн. здабытак верагоднасцяў атрымання кожнага з вынікаў выбаркі (напрыклад, пагашаны ці не пагашаны крэдыт Васей, Фядзей і Лёшам адначасова).

Функцыя праўдападабенства звязвае праўдападабенства выбаркі са значэннямі параметраў размеркавання.

У нашым выпадку, навучальная выбарка ўяўляе сабой абагульненую схему Бернулі, у якой выпадковая велічыня прымае ўсяго два значэнні: Перажоўваючы лагістычную рэгрэсію або Перажоўваючы лагістычную рэгрэсію. Такім чынам, праўдападабенства выбаркі можна запісаць як функцыю праўдападабенства ад параметру Перажоўваючы лагістычную рэгрэсію наступным чынам:

Перажоўваючы лагістычную рэгрэсію
Перажоўваючы лагістычную рэгрэсію

Вышэйназваны запіс можна інтэрпрэтаваць так. Сумесная верагоднасць таго, што Вася і Федзя пагасяць крэдыт роўная Перажоўваючы лагістычную рэгрэсію, верагоднасць таго што Лёша не пагасіць крэдыт роўная Перажоўваючы лагістычную рэгрэсію (бо мела месца менавіта НЕ пагашэнне крэдыту), такім чынам сумесная верагоднасць усіх трох падзей роўная Перажоўваючы лагістычную рэгрэсію.

Метад максімальнага праўдападабенства - Гэта метад ацэнкі невядомага параметру шляхам максімізацыі функцыі праўдападабенства. У нашым выпадку патрабуецца знайсці такое значэнне Перажоўваючы лагістычную рэгрэсію, пры якім Перажоўваючы лагістычную рэгрэсію дасягае максімуму.

Адкуль уласна ідэя - шукаць значэнне невядомага параметру, пры якім функцыя праўдападабенства дасягае максімуму? Вытокі ідэі вынікаюць з уяўлення аб тым, што выбарка - гэта адзіная, даступная нам, крыніца веды аб генеральнай сукупнасці. Усё, што нам вядома аб генеральнай сукупнасці, прадстаўлена ў выбарцы. Таму, усё, што мы можам сказаць, дык гэта тое, што выбарка – гэта найбольш дакладнае адлюстраванне генеральнай сукупнасці, даступнае нам. Такім чынам, нам патрабуецца знайсці такі параметр, пры якім наяўная выбарка становіцца найболей верагоднай.

Відавочна, мы маем справу з аптымізацыйнай задачай, у якой патрабуецца знайсці кропку экстрэмуму функцыі. Для знаходжання кропкі экстрэмуму неабходна разгледзець умову першага парадку, гэта значыць прыраўняць вытворную функцыі да нуля і вырашыць раўнанне адносна шуканага параметра. Аднак пошукі вытворнай творы вялікай колькасці множнікаў могуць апынуцца справай зацяжной, каб гэтага пазбегнуць існуе спецыяльны прыём - пераход да лагарыфму. функцыі праўдападабенства. Чаму магчымы такі пераход? Звернем увагу на тое, што мы шукаем не сам экстрэмум функцыіПеражоўваючы лагістычную рэгрэсію, а кропку экстрэмуму, гэта значыць тое значэнне невядомага параметру Перажоўваючы лагістычную рэгрэсію, пры якім Перажоўваючы лагістычную рэгрэсію дасягае максімуму. Пры пераходзе да лагарыфму кропка экстрэмуму не змяняецца (хоць сам экстрэмум будзе адрознівацца), бо лагарыфм - манатонная функцыя.

Давайце, у адпаведнасці з вышэйпададзеным, працягнем развіваць наш прыклад з крэдытамі ў Васі, Федзі і Лёшы. Для пачатку пяройдзем да лагарыфму функцыі праўдападабенства:

Перажоўваючы лагістычную рэгрэсію

Цяпер мы можам з лёгкасцю прадыферэнцыяваць выраз па Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію

І нарэшце, разгледзім умову першага парадку - прыраўнуем вытворную функцыі да нуля:

Перажоўваючы лагістычную рэгрэсію

Такім чынам, наша інтуітыўная ацэнка верагоднасці пагашэння крэдыту Перажоўваючы лагістычную рэгрэсію была тэарэтычна абгрунтавана.

Выдатна, але што нам зараз рабіць з такой інфармацыяй? Калі мы будзем лічыць, што кожны трэці пазычальнік не верне слоік грошы, то апошні непазбежна згалее. Так-то яно так, ды толькі пры адзнацы верагоднасці пагашэння крэдыту роўнай Перажоўваючы лагістычную рэгрэсію мы не ўлічылі фактары, якія ўплываюць на вяртанне крэдыту: заработная плата пазычальніка і памер штомесячнага плацяжу. Успомнім, што раней мы разлічылі верагоднасць вяртання крэдыту кожным кліентам з улікам гэтых самых фактараў. Лагічна, што і верагоднасці ў нас атрымаліся адрозныя ад канстанты роўнай Перажоўваючы лагістычную рэгрэсію.

Давайце вызначым праўдападабенства выбарак:

Код для разлікаў праўдападабенства выбарак

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)

Праўдападабенства выбаркі пры канстантным значэнні Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію

Праўдападабенства выбаркі пры разліку верагоднасці пагашэння крэдыту з улікам фактараў Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію
Перажоўваючы лагістычную рэгрэсію

Праўдападабенства выбаркі з верагоднасцю, палічанай у залежнасці ад фактараў апынулася вышэй праўдападабенства пры канстантным значэнні верагоднасці. Пра што гэта гаворыць? Гэта сведчыць аб тым, што веды аб фактарах дазволілі падабраць больш дакладна верагоднасць пагашэння крэдыту для кожнага кліента. Таму, пры выдачы чарговага крэдыту, правільней будзе выкарыстоўваць, прапанаваную ў канцы 3-га раздзела артыкула, мадэль ацэнкі верагоднасці пагашэння запазычанасці.

Але тады, калі нам трэба максымізаваць функцыю праўдападабенства выбаркі, то чаму б не выкарыстоўваць які-небудзь алгарытм, які будзе выдаваць верагоднасці для Васі, Федзі і Лёшы, напрыклад, роўнымі 0.99, 0.99 і 0.01 адпаведна. Магчыма такі алгарытм і добра сябе выявіць на навучальнай выбарцы, бо наблізіць значэнне праўдападабенства выбаркі да Перажоўваючы лагістычную рэгрэсію, Але, па-першае, у такога алгарытму будуць, хутчэй за ўсё цяжкасці з абагульняючай здольнасцю, па-другое, гэты алгарытм будзе сапраўды не лінейным. І калі, метады барацьбы з перанавучаннем (роўна слабая абагульняючая здольнасць) відавочна не ўваходзяць у план гэтага артыкула, то па другім пункце давайце пройдземся падрабязней. Для гэтага, дастаткова адказаць на простае пытанне. Ці можа верагоднасць пагашэння крэдыту Васей і Фядзей быць аднолькавай з улікам вядомых нам фактараў? З пункту гледжання разумнай логікі, вядома ж, няма, не можа. Так на пагашэнне крэдыту Вася будзе аддаваць 2.5% сваёй зарплаты ў месяц, а Федзя - амаль 27,8%. Таксама на графіцы 2 «Класіфікацыя кліентаў» мы бачым, што Вася знаходзіцца значна далей ад лініі, якая падзяляе класы, чым Федзя. Ну і нарэшце, мы ведаем, што функцыя Перажоўваючы лагістычную рэгрэсію для Васі і Федзі прымае розныя значэнні: 4.24 для Васі і 1.0 для Федзі. Вось калі б Федзя, напрыклад, зарабляў на парадак больш ці крэдыт паменш прасіў, то тады верагоднасці пагашэння крэдыту ў Васі і Федзі былі б падобнымі. Іншымі словамі, лінейную залежнасць не падманеш. І калі б мы сапраўды разлічылі каэфіцыенты Перажоўваючы лагістычную рэгрэсію, а не ўзялі іх са столі, то маглі б смела заявіць, што нашы значэння Перажоўваючы лагістычную рэгрэсію лепш за ўсё дазваляюць ацаніць верагоднасць пагашэння крэдыту кожным пазычальнікам, але так як мы дамовіліся лічыць, што вызначэнне каэфіцыентаў Перажоўваючы лагістычную рэгрэсію было праведзена па ўсіх правілах, то мы так і будзем лічыць - нашы каэфіцыенты дазваляюць даць лепшую ацэнку верагоднасці 🙂

Аднак мы адцягнуліся. У гэтым раздзеле нам трэба разабрацца як вызначаецца вектар шаляў. Перажоўваючы лагістычную рэгрэсію, Які неабходны для ацэнкі верагоднасці вяртання крэдыту кожным пазычальнікам.

Коратка рэзюмуем, з якім арсеналам мы выступаем на пошукі каэфіцыентаў Перажоўваючы лагістычную рэгрэсію:

1. Мы мяркуем, што залежнасць паміж мэтавай зменнай (прагнозным значэннем) і фактарам, якія аказваюць уплыў на вынік - лінейная. Па гэтай прычыне прымяняецца функцыя лінейнай рэгрэсіі выгляду Перажоўваючы лагістычную рэгрэсію, лінія якога дзеліць аб'екты (кліентаў) на класы Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію або Перажоўваючы лагістычную рэгрэсію (кліенты, здольныя пагасіць крэдыт і не здольныя). У нашым выпадку раўнанне мае выгляд Перажоўваючы лагістычную рэгрэсію.

2. Мы выкарыстоўваем функцыю зваротнага логіт-пераўтварэнні выгляду Перажоўваючы лагістычную рэгрэсію для вызначэння верагоднасці прыналежнасці аб'екта да класа Перажоўваючы лагістычную рэгрэсію.

3. Мы разглядаем нашу навучальную выбарку як рэалізацыю абагульненай схемы Бярнулі, гэта значыць для кожнага аб'екта генеруецца выпадковая велічыня, якая з верагоднасцю Перажоўваючы лагістычную рэгрэсію (сваёй для кожнага аб'екта) прымае значэнне 1 і з верагоднасцю Перажоўваючы лагістычную рэгрэсію - 0.

4. Мы ведаем, што нам трэба максымізаваць функцыю праўдападабенства выбаркі з улікам прынятых фактараў для таго, каб існуючая выбарка стала найбольш праўдападобнай. Іншымі словамі, нам трэба падабраць такія параметры, пры якіх выбарка будзе найболей праўдападобнай. У нашым выпадку падбіраемы параметр - гэта верагоднасць пагашэння крэдыту Перажоўваючы лагістычную рэгрэсію, якая ў сваю чаргу залежыць ад невядомых каэфіцыентаў Перажоўваючы лагістычную рэгрэсію. Значыць нам патрабуецца знайсці такі вектар шаляў Перажоўваючы лагістычную рэгрэсію, пры якім праўдападабенства выбаркі будзе максімальным.

5. Мы ведаем, што для максімізацыі функцыі праўдападабенства выбаркі можна выкарыстоўваць метад максімальнага праўдападабенства. І мы ведаем усе хітрыя прыёмы для працы з гэтым метадам.

Вось такая шматхадовачка атрымліваецца 🙂

А цяпер успомнім, што ў самым пачатку артыкула мы хацелі вывесці два віды функцыі страт. Logistic Loss у залежнасці ад таго як абазначаюцца класы аб'ектаў. Так павялося, што ў задачах класіфікацыі з двума класамі, класы абазначаюць як Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію або Перажоўваючы лагістычную рэгрэсію. У залежнасці ад абазначэння, на выхадзе будзе адпаведная функцыя страт.

Выпадак 1. Класіфікацыя аб'ектаў на Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію

Ранняе, пры вызначэнні праўдападабенства выбаркі, у якім верагоднасць пагашэння запазычанасці пазычальнікам разлічвалася зыходзячы з фактараў і зададзеных каэфіцыентаў Перажоўваючы лагістычную рэгрэсію, мы ўжылі формулу:

Перажоўваючы лагістычную рэгрэсію

На самай справе Перажоўваючы лагістычную рэгрэсію - Гэта значэнне функцыі лагістычнага водгуку Перажоўваючы лагістычную рэгрэсію пры зададзеным вектары шаляў Перажоўваючы лагістычную рэгрэсію

Тады нам нішто не замінае запісаць функцыю праўдападабенства выбаркі так:

Перажоўваючы лагістычную рэгрэсію

Бывае так, што часам, некаторым пачаткоўцам аналітыкам складана адразу зразумець, як гэтая функцыя працуе. Давайце разгледзім 4 кароткія прыклады, якія ўсё растлумачаць:

1. Калі Перажоўваючы лагістычную рэгрэсію (г.зн. у адпаведнасці з навучальнай выбаркай аб'ект ставіцца да класа +1), а наш алгарытм Перажоўваючы лагістычную рэгрэсію вызначае верагоднасць аднясення аб'екта да класа Перажоўваючы лагістычную рэгрэсію роўнай 0.9, то вось гэты кавалачак праўдападабенства выбаркі будзе разлічвацца так:

Перажоўваючы лагістычную рэгрэсію

2. Калі Перажоўваючы лагістычную рэгрэсію, А Перажоўваючы лагістычную рэгрэсію, то разлік будзе такім:

Перажоўваючы лагістычную рэгрэсію

3. Калі Перажоўваючы лагістычную рэгрэсію, А Перажоўваючы лагістычную рэгрэсію, то разлік будзе такім:

Перажоўваючы лагістычную рэгрэсію

4. Калі Перажоўваючы лагістычную рэгрэсію, А Перажоўваючы лагістычную рэгрэсію, то разлік будзе такім:

Перажоўваючы лагістычную рэгрэсію

Відавочна, што функцыя праўдападабенства будзе максымізавацца ў выпадках 1 і 3 або ў агульным выпадку - пры правільна адгаданых значэннях верагоднасцяў аднясення аб'екта да класа Перажоўваючы лагістычную рэгрэсію.

У сувязі з тым, што пры вызначэнні верагоднасці аднясення аб'екта да класа Перажоўваючы лагістычную рэгрэсію нам не вядомыя толькі каэфіцыенты Перажоўваючы лагістычную рэгрэсію, то мы іх і будзем шукаць. Як і гаварылася вышэй, гэта задача аптымізацыі, у якой для пачатку нам патрабуецца знайсці вытворную ад функцыі праўдападабенства па вектары шаляў Перажоўваючы лагістычную рэгрэсію. Аднак папярэдне мае сэнс спрасціць сабе задачу: вытворную будзем шукаць ад лагарыфма. функцыі праўдападабенства.

Перажоўваючы лагістычную рэгрэсію

Чаму пасля лагарыфмавання, у функцыі лагістычнай памылкі, мы памянялі знак з Перажоўваючы лагістычную рэгрэсію на Перажоўваючы лагістычную рэгрэсію. Усё проста, бо ў задачах адзнакі якасці мадэлі прынята мінімізаваць значэнне функцыі, то мы памножылі правую частку выраза на Перажоўваючы лагістычную рэгрэсію і адпаведна замест максімізацыі, зараз мінімізуем функцыю.

Уласна, зараз, на вашых вачах была шмат пакутліва выведзена функцыя страт Logistic Loss для навучальнай выбаркі з двума класамі: Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію.

Зараз, для знаходжання каэфіцыентаў, нам запатрабуецца ўсяго толькі знайсці вытворную. функцыі лагістычнай памылкі і далей, выкарыстоўваючы лікавыя метады аптымізацыі, такія як градыентны спуск або стахастычны градыентны спуск, падабраць найболей аптымальныя каэфіцыенты Перажоўваючы лагістычную рэгрэсію. Але, улічваючы, ужо не малы аб'ём артыкула, прапануецца правесці дыферэнцыяванне самастойна ці, быць можа, гэта будзе тэмай для наступнага артыкула з вялікай колькасцю арыфметыкі без такіх падрабязных прыкладаў.

Выпадак 2. Класіфікацыя аб'ектаў на Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію

Падыход тут будзе такі ж, як і з класамі Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію, але сама дарожка да высновы функцыі страт Logistic Loss, будзе больш мудрагелістай. Прыступаем. Будзем для функцыі праўдападабенства выкарыстоўваць аператар «калі…, то…». Гэта значыць, калі Перажоўваючы лагістычную рэгрэсію-ы аб'ект ставіцца да класа Перажоўваючы лагістычную рэгрэсію, то для разліку праўдападабенства выбаркі выкарыстоўваем верагоднасць Перажоўваючы лагістычную рэгрэсію, калі аб'ект адносіцца да класа Перажоўваючы лагістычную рэгрэсію, то ў праўдападабенства падстаўляем Перажоўваючы лагістычную рэгрэсію. Вось так выглядае функцыя праўдападабенства:

Перажоўваючы лагістычную рэгрэсію

На пальцах распішам як гэта працуе. Разгледзім 4 выпадкі:

1. Калі Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію, то ў праўдападабенства выбаркі «пойдзе» Перажоўваючы лагістычную рэгрэсію

2. Калі Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію, то ў праўдападабенства выбаркі «пойдзе» Перажоўваючы лагістычную рэгрэсію

3. Калі Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію, то ў праўдападабенства выбаркі «пойдзе» Перажоўваючы лагістычную рэгрэсію

4. Калі Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію, то ў праўдападабенства выбаркі «пойдзе» Перажоўваючы лагістычную рэгрэсію

Відавочна, што ў 1 і 3 выпадку, калі верагоднасці былі правільна вызначаны алгарытмам, функцыя праўдападабенства будзе максымізавацца, то бок менавіта гэта мы і хацелі атрымаць. Аднак, такі падыход досыць грувасткі і далей мы разгледзім больш кампактны запіс. Але для пачатку, лагарыфмаваны функцыю праўдападабенства з заменай знака, бо зараз мы будзем мінімізаваць яе.

Перажоўваючы лагістычную рэгрэсію

Падставім замест Перажоўваючы лагістычную рэгрэсію выраз Перажоўваючы лагістычную рэгрэсію:

Перажоўваючы лагістычную рэгрэсію

Спрасцім правае складнік пад лагарыфмам, выкарыстоўваючы простыя арыфметычныя прыёмы і атрымаем:

Перажоўваючы лагістычную рэгрэсію

А зараз надышоў час пазбавіцца ад аператара «калі…, то…». Заўважым, што калі аб'ект Перажоўваючы лагістычную рэгрэсію адносіцца да класа Перажоўваючы лагістычную рэгрэсію, то ў выразе пад лагарыфмам, у назоўніку, Перажоўваючы лагістычную рэгрэсію узводзіцца ў ступень Перажоўваючы лагістычную рэгрэсію, калі аб'ект адносіцца да класа Перажоўваючы лагістычную рэгрэсію, то $e$ узводзіцца ў ступень Перажоўваючы лагістычную рэгрэсію. Такім чынам запіс ступені можна спрасціць - аб'яднаць абодва выпадку ў адзін: Перажоўваючы лагістычную рэгрэсію. Тады функцыя лагістычнай памылкі прыме выгляд:

Перажоўваючы лагістычную рэгрэсію

У адпаведнасці з правіламі лагарыфміравання, перавернем дроб і вынесем знак "Перажоўваючы лагістычную рэгрэсію" (мінус) за лагарыфм, атрымаем:

Перажоўваючы лагістычную рэгрэсію

Перад вамі функцыя страт logistic Loss, якая ўжываецца ў навучальнай выбарцы з аб'ектамі якія адносяцца да класаў: Перажоўваючы лагістычную рэгрэсію и Перажоўваючы лагістычную рэгрэсію.

Што ж, на гэтым моманце я адкланяюся і мы завяршаем артыкул.

Перажоўваючы лагістычную рэгрэсію Папярэдняя праца аўтара – «Прыводзім раўнанне лінейнай рэгрэсіі ў матрычны выгляд»

Дапаможныя матэрыялы

1. Літаратура

1) Прыкладны рэгрэсійны аналіз / Н. Дрэйпер, Г. Сміт - 2-е выд. – М.: Фінансы і статыстыка, 1986 (пераклад з англійскай)

2) Тэорыя верагоднасцяў і матэматычная статыстыка / У.Я. Гмурман - 9-е выд. - М .: Вышэйшая школа, 2003

3) Тэорыя верагоднасцяў / Н.І. Чарнова - Новасібірск: Новасібірскі дзяржаўны універсітэт, 2007

4) Бізнес-аналітыка: ад дадзеных да ведаў / Паклін Н. Б., Арэшкаў В. І. - 2-е выд. - Санкт-Пецярбург: Піцер, 2013

5) Data Science Навука аб дадзеных з нуля / Джоэл Грас – Санкт-Пецярбург: БХВ Пецярбург, 2017

6) Практычная статыстыка для спецыялістаў Data Science / П.Брус, Э.Брус - Санкт-Пецярбург: БХВ Пецярбург, 2018

2. Лекцыі, курсы (відэа)

1) Сутнасць метаду максімальнага праўдападабенства, Барыс Демешев

2) Метад максімальнага праўдападабенства ў бесперапынным выпадку, Барыс Демешев

3) Лагістычная рэгрэсія. Адкрыты курс ODS, Yury Kashnitsky

4) Лекцыя 4, Яўген Сакалоў (з 47 хвіліны відэа)

5) Лагістычная рэгрэсія, Вячаслаў Варанцоў

3. Інтэрнэт-крыніцы

1) Лінейныя мадэлі класіфікацыі і рэгрэсіі

2) Як лёгка зразумець лагістычную рэгрэсію

3) Лагістычная функцыя памылкі

4) Незалежныя выпрабаванні і формула Бярнулі

5) Балада аб ММП

6) Метад максімальнага праўдападабенства

7) Формулы і ўласцівасці лагарыфмаў

8) Чаму лік Перажоўваючы лагістычную рэгрэсію?

9) Лінейны класіфікатар

Крыніца: habr.com

Дадаць каментар