Katika makala hii, tutachambua mahesabu ya kinadharia ya mabadiliko vitendaji vya urejeshaji wa mstari Π² kitendakazi cha ubadilishaji wa kumbukumbu (vinginevyo huitwa kazi ya majibu ya vifaa). Kisha, kwa kutumia arsenal njia ya uwezekano mkubwa, kwa mujibu wa mfano wa urekebishaji wa vifaa, tunapata kazi ya kupoteza Upotezaji wa vifaa, au kwa maneno mengine, tutafafanua kazi ambayo vigezo vya vekta ya uzani huchaguliwa katika modeli ya urekebishaji wa vifaa. .
Muhtasari wa makala:
- Wacha turudie uhusiano wa mstari kati ya anuwai mbili
- Wacha tubaini hitaji la mabadiliko vitendaji vya urejeshaji wa mstari Π² kipengele cha majibu ya vifaa
- Wacha tufanye mabadiliko na matokeo kipengele cha majibu ya vifaa
- Wacha tujaribu kuelewa ni kwa nini njia ndogo ya mraba ni mbaya wakati wa kuchagua vigezo kazi Upotezaji wa vifaa
- Tunatumia njia ya uwezekano mkubwa kuamua kazi za uteuzi wa parameta :
5.1. Kesi ya 1: kazi Upotezaji wa vifaa kwa vitu vilivyo na alama za darasa 0 ΠΈ 1:
5.2. Kesi ya 2: kazi Upotezaji wa vifaa kwa vitu vilivyo na alama za darasa -1 ΠΈ +1:
Nakala hiyo imejaa mifano rahisi ambayo mahesabu yote ni rahisi kufanya kwa mdomo au kwenye karatasi; katika hali zingine, kikokotoo kinaweza kuhitajika. Kwa hivyo jitayarishe :)
Makala haya yanalenga wanasayansi wa data walio na kiwango cha awali cha maarifa katika misingi ya kujifunza kwa mashine.
Nakala hiyo pia itatoa msimbo wa kuchora grafu na mahesabu. Kanuni zote zimeandikwa kwa lugha chatu 2.7. Acha nieleze mapema juu ya "riwaya" la toleo lililotumiwa - hii ni moja wapo ya masharti ya kuchukua kozi inayojulikana kutoka. Yandex kwenye jukwaa la elimu mtandaoni linalojulikana sawa Coursera, na, kama mtu anavyoweza kudhani, nyenzo zilitayarishwa kulingana na kozi hii.
01. Utegemezi wa mstari wa moja kwa moja
Ni sawa kuuliza swali - utegemezi wa mstari na urekebishaji wa vifaa una uhusiano gani nayo?
Ni rahisi! Urekebishaji wa vifaa ni moja wapo ya mifano ambayo ni ya kiainishaji cha mstari. Kwa maneno rahisi, kazi ya uainishaji wa mstari ni kutabiri maadili yanayolengwa kutoka kwa vigezo (regressors) . Inaaminika kuwa utegemezi kati ya sifa na maadili lengwa mstari. Kwa hivyo jina la classifier - linear. Ili kuiweka takribani, mfano wa urekebishaji wa vifaa ni msingi wa dhana kwamba kuna uhusiano wa mstari kati ya sifa. na maadili lengwa . Huu ndio muunganisho.
Kuna mfano wa kwanza katika studio, na ni, kwa usahihi, kuhusu utegemezi wa rectilinear wa kiasi kinachosomwa. Katika mchakato wa kuandaa makala, nilikutana na mfano ambao tayari umeweka watu wengi kwa makali - utegemezi wa sasa kwenye voltage. (βUchambuzi wa urejeshaji uliotumikaβ, N. Draper, G. Smith). Tutaiangalia hapa pia.
Kwa mujibu wa Sheria ya Ohm:
Ambapo - nguvu ya sasa, - voltage, - upinzani.
Ikiwa hatukujua Sheria ya Ohm, basi tunaweza kupata utegemezi kwa nguvu kwa kubadilisha na kupima , huku akiunga mkono fasta. Kisha tungeona hiyo grafu ya utegemezi kutoka inatoa mstari ulionyooka zaidi au chini kupitia asili. Tunasema "zaidi au kidogo" kwa sababu, ingawa uhusiano huo ni sahihi, vipimo vyetu vinaweza kuwa na makosa madogo, na kwa hiyo pointi kwenye grafu haziwezi kuanguka kwenye mstari, lakini zitatawanyika karibu nayo kwa nasibu.
Grafu ya 1 "Utegemezi" kutoka Β»
Msimbo wa kuchora chati
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. Haja ya kubadilisha mlingano wa rejista ya mstari
Hebu tuangalie mfano mwingine. Hebu fikiria kwamba tunafanya kazi katika benki na kazi yetu ni kuamua uwezekano wa akopaye kurejesha mkopo kulingana na mambo fulani. Ili kurahisisha kazi, tutazingatia mambo mawili tu: mshahara wa kila mwezi wa akopaye na kiasi cha ulipaji wa mkopo wa kila mwezi.
Kazi ni masharti sana, lakini kwa mfano huu tunaweza kuelewa kwa nini haitoshi kutumia vitendaji vya urejeshaji wa mstari, na pia ujue ni mabadiliko gani yanahitajika kufanywa na kazi.
Turudi kwenye mfano. Inaeleweka kuwa kadiri mshahara unavyoongezeka, ndivyo mkopaji atakavyoweza kutenga kila mwezi kulipa mkopo huo. Wakati huo huo, kwa safu fulani ya mishahara uhusiano huu utakuwa wa mstari kabisa. Kwa mfano, hebu tuchukue safu ya mshahara kutoka 60.000 RUR hadi 200.000 RUR na kudhani kuwa katika safu maalum ya mshahara, utegemezi wa ukubwa wa malipo ya kila mwezi kwa ukubwa wa mshahara ni mstari. Hebu tuseme kwamba kwa aina maalum ya mishahara ilifunuliwa kuwa uwiano wa mshahara kwa malipo hauwezi kuanguka chini ya 3 na akopaye lazima bado awe na 5.000 RUR katika hifadhi. Na tu katika kesi hii, tutafikiri kwamba akopaye atalipa mkopo kwa benki. Halafu, equation ya rejista ya mstari itachukua fomu:
ambapo , , , - mshahara - akopaye, - malipo ya mkopo -mkopaji.
Kubadilisha malipo ya mshahara na mkopo na vigezo vilivyowekwa kwenye mlinganyo Unaweza kuamua kutoa au kukataa mkopo.
Kuangalia mbele, tunaona kwamba, pamoja na vigezo vilivyotolewa kitendakazi cha urejeshaji cha mstari, kutumika katika kazi za majibu ya vifaa itatoa maadili makubwa ambayo yatachanganya mahesabu ili kuamua uwezekano wa ulipaji wa mkopo. Kwa hiyo, inapendekezwa kupunguza coefficients yetu, hebu sema, kwa mara 25.000. Mabadiliko haya katika coefficients hayatabadilisha uamuzi wa kutoa mkopo. Hebu tukumbuke hatua hii kwa siku zijazo, lakini sasa, ili kuifanya iwe wazi zaidi kile tunachozungumzia, hebu fikiria hali hiyo na wakopaji watatu wanaowezekana.
Jedwali la 1 "Wakopaji wanaowezekana"
Kanuni ya kutengeneza jedwali
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']]
Kwa mujibu wa data katika meza, Vasya, na mshahara wa 120.000 RUR, anataka kupokea mkopo ili aweze kulipa kila mwezi kwa 3.000 RUR. Tuliamua kwamba ili kuidhinisha mkopo huo, mshahara wa Vasya lazima uzidi mara tatu ya kiasi cha malipo, na bado kuna 5.000 RUR iliyobaki. Vasya anakidhi hitaji hili: . Hata 106.000 RUR bado. Pamoja na ukweli kwamba wakati wa kuhesabu tumepunguza odd Mara 25.000, matokeo yalikuwa sawa - mkopo unaweza kupitishwa. Fedya pia atapata mkopo, lakini Lesha, licha ya ukweli kwamba anapokea zaidi, atalazimika kupunguza hamu yake.
Wacha tuchore grafu kwa kesi hii.
Chati ya 2 "Uainishaji wa wakopaji"
Kanuni ya kuchora grafu
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()
Kwa hiyo, mstari wetu wa moja kwa moja, uliojengwa kwa mujibu wa kazi , hutenganisha wakopaji "wabaya" kutoka kwa "nzuri". Wale wakopaji ambao tamaa zao haziendani na uwezo wao ni juu ya mstari (Lesha), wakati wale ambao, kwa mujibu wa vigezo vya mfano wetu, wanaweza kulipa mkopo ni chini ya mstari (Vasya na Fedya). Kwa maneno mengine, tunaweza kusema hivi: mstari wetu wa moja kwa moja unagawanya wakopaji katika madarasa mawili. Wacha tuwaeleze kama ifuatavyo: kwa darasa Tutaainisha wale wakopaji ambao wana uwezekano mkubwa wa kurejesha mkopo kama au Tutajumuisha wale wakopaji ambao uwezekano mkubwa hawataweza kurejesha mkopo.
Wacha tufanye muhtasari wa hitimisho kutoka kwa mfano huu rahisi. Hebu tuchukue hatua na, kubadilisha kuratibu za uhakika katika equation sambamba ya mstari , fikiria chaguzi tatu:
- Ikiwa hatua iko chini ya mstari na tunaikabidhi kwa darasa , basi thamani ya chaguo za kukokotoa itakuwa chanya kutoka kwa . Hii inamaanisha tunaweza kudhani kuwa uwezekano wa kurejesha mkopo uko ndani . Kadiri thamani ya chaguo la kukokotoa inavyokuwa kubwa, ndivyo uwezekano wa kukokotoa unavyoongezeka.
- Ikiwa nukta iko juu ya mstari na tunaikabidhi kwa darasa au , basi thamani ya chaguo za kukokotoa itakuwa mbaya kutoka kwa . Kisha tutafikiri kwamba uwezekano wa ulipaji wa deni ni ndani na, kadiri thamani kamili ya chaguo za kukokotoa inavyoongezeka, ndivyo imani yetu inavyoongezeka.
- Hatua iko kwenye mstari wa moja kwa moja, kwenye mpaka kati ya madarasa mawili. Katika kesi hii, thamani ya kazi itakuwa sawa na uwezekano wa kurejesha mkopo ni sawa na .
Sasa, hebu fikiria kwamba hatuna sababu mbili, lakini kadhaa, na sio tatu, lakini maelfu ya wakopaji. Kisha badala ya mstari wa moja kwa moja tutakuwa na m-dimensional ndege na mgawo hatutachukuliwa nje ya hewa nyembamba, lakini inayotokana na sheria zote, na kwa misingi ya data iliyokusanywa juu ya wakopaji ambao wana au hawajalipa mkopo. Na hakika, kumbuka kuwa sasa tunachagua wakopaji kwa kutumia coefficients tayari inayojulikana . Kwa kweli, kazi ya mfano wa urekebishaji wa vifaa ni kuamua vigezo , ambapo thamani ya kazi ya kupoteza Upotezaji wa vifaa itaelekea kwa kiwango cha chini. Lakini kuhusu jinsi vector inavyohesabiwa , tutapata zaidi katika sehemu ya 5 ya makala hiyo. Wakati huo huo, tunarudi kwenye nchi ya ahadi - kwa benki yetu na wateja wake watatu.
Shukrani kwa utendaji tunajua nani anaweza kupewa mkopo na nani anatakiwa kukataliwa. Lakini huwezi kwenda kwa mkurugenzi na habari kama hiyo, kwa sababu walitaka kupata kutoka kwetu uwezekano wa kila akopaye kulipa mkopo huo. Nini cha kufanya? Jibu ni rahisi - tunahitaji kwa namna fulani kubadilisha kazi , ambayo thamani zake ziko katika safu kwa chaguo za kukokotoa ambazo thamani zake zitakuwa kwenye safu . Na kazi kama hiyo ipo, inaitwa kitendakazi cha majibu ya vifaa au ubadilishaji wa loti kinyume. Kutana:
Wacha tuone hatua kwa hatua jinsi inavyofanya kazi kazi ya majibu ya vifaa. Kumbuka kwamba tutatembea kinyume chake, i.e. tutachukulia kuwa tunajua thamani ya uwezekano, ambayo iko katika safu kutoka kwa na kisha "tutafungua" thamani hii kwa anuwai nzima ya nambari kutoka kwa .
03. Tunapata kazi ya majibu ya vifaa
Hatua ya 1. Badilisha thamani za uwezekano kuwa safu
Wakati wa mabadiliko ya kazi Π² kipengele cha majibu ya vifaa Tutamwacha mchambuzi wetu wa mikopo na kuwatembelea watengenezaji fedha badala yake. Hapana, kwa kweli, hatutaweka dau, yote ambayo yanatupendeza ni maana ya usemi huo, kwa mfano, nafasi ni 4 hadi 1. Uwezekano, unaojulikana kwa bettors wote, ni uwiano wa "mafanikio" na " kushindwaβ. Kwa maneno ya uwezekano, odd ni uwezekano wa tukio kutokea ukigawanywa na uwezekano wa tukio kutotokea. Hebu tuandike fomula ya nafasi ya tukio kutokea :
Ambapo - uwezekano wa kutokea kwa tukio; - Uwezekano wa tukio KUTOTOKEA
Kwa mfano, ikiwa uwezekano kwamba farasi mchanga, hodari na mchezaji anayeitwa "Veterok" atashinda mwanamke mzee na mwenye tabia mbaya anayeitwa "Matilda" kwenye mbio ni sawa na , basi nafasi za mafanikio kwa "Veterok" zitakuwa ΠΊ na kinyume chake, kwa kujua tabia mbaya, haitakuwa vigumu kwetu kuhesabu uwezekano :
Kwa hivyo, tumejifunza "kutafsiri" uwezekano katika nafasi, ambazo huchukua maadili kutoka kwa . Wacha tuchukue hatua moja zaidi na tujifunze "kutafsiri" uwezekano kwa mstari mzima wa nambari kutoka kwa .
Hatua ya 2. Badilisha thamani za uwezekano kuwa safu
Hatua hii ni rahisi sana - wacha tuchukue logariti ya odds kwenye msingi wa nambari ya Euler. na tunapata:
Sasa tunajua kwamba kama , kisha uhesabu thamani itakuwa rahisi sana na, zaidi ya hayo, inapaswa kuwa chanya: . Hii ni kweli.
Kwa udadisi, wacha tuangalie ikiwa , basi tunatarajia kuona thamani hasi . Tunaangalia: . Hiyo ni sawa.
Sasa tunajua jinsi ya kubadilisha thamani ya uwezekano kutoka kwa kwenye mstari mzima wa nambari kutoka kwa . Katika hatua inayofuata tutafanya kinyume.
Kwa sasa, tunaona kwamba kwa mujibu wa sheria za logarithm, kujua thamani ya kazi , unaweza kuhesabu odds:
Njia hii ya kuamua tabia mbaya itakuwa na manufaa kwetu katika hatua inayofuata.
Hatua ya 3. Hebu tupate formula ya kuamua
Kwa hivyo tulijifunza, tukijua , pata maadili ya utendakazi . Hata hivyo, kwa kweli, tunahitaji kinyume kabisa - kujua thamani kupata . Ili kufanya hivyo, wacha tugeuke kwa dhana kama vile utendaji wa tabia mbaya, kulingana na ambayo:
Katika kifungu hatutapata fomula hapo juu, lakini tutaiangalia kwa kutumia nambari kutoka kwa mfano hapo juu. Tunajua kuwa kwa uwezekano wa 4 hadi 1 (), uwezekano wa tukio kutokea ni 0.8 () Wacha tufanye mbadala: . Hii inaendana na mahesabu yetu yaliyofanywa hapo awali. Hebu tuendelee.
Katika hatua ya mwisho tuligundua hilo , ambayo inamaanisha kuwa unaweza kubadilisha kitendakazi cha odds kinyume. Tunapata:
Gawa nambari na dhehebu kwa , Kisha:
Ikiwezekana, ili kuhakikisha kuwa hatujafanya makosa popote, tutafanya hundi moja ndogo zaidi. Katika hatua ya 2, sisi kwa kuamua kwamba . Kisha, kubadilisha thamani kwenye kitendakazi cha majibu ya vifaa, tunatarajia kupata . Tunabadilisha na kupata:
Hongera, msomaji mpendwa, tumetoka na kujaribu kazi ya majibu ya vifaa. Wacha tuangalie grafu ya kazi.
Grafu ya 3 "Kitendaji cha majibu ya vifaa"
Kanuni ya kuchora grafu
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()
Katika fasihi unaweza pia kupata jina la kazi hii kama kazi ya sigmoid. Grafu inaonyesha wazi kuwa badiliko kuu katika uwezekano wa kitu cha darasa hutokea ndani ya masafa madogo kiasi. , mahali fulani kutoka kwa .
Ninapendekeza kurudi kwa mchambuzi wetu wa mikopo na kumsaidia kuhesabu uwezekano wa ulipaji wa mkopo, vinginevyo ana hatari ya kuachwa bila bonasi :)
Jedwali la 2 "Wakopaji wanaowezekana"
Kanuni ya kutengeneza jedwali
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']]
Kwa hivyo, tumeamua uwezekano wa ulipaji wa mkopo. Kwa ujumla, hii inaonekana kuwa kweli.
Hakika, uwezekano kwamba Vasya, na mshahara wa 120.000 RUR, ataweza kutoa 3.000 RUR kwa benki kila mwezi ni karibu na 100%. Kwa njia, lazima tuelewe kwamba benki inaweza kutoa mkopo kwa Lesha ikiwa sera ya benki hutoa, kwa mfano, kwa kukopesha wateja na uwezekano wa ulipaji wa mkopo wa zaidi ya, sema, 0.3. Ni kwamba katika kesi hii benki itaunda hifadhi kubwa kwa hasara iwezekanavyo.
Inapaswa pia kuzingatiwa kuwa uwiano wa mshahara kwa malipo ya angalau 3 na kwa kiasi cha 5.000 RUR ilichukuliwa kutoka dari. Kwa hivyo, hatukuweza kutumia vekta ya uzani katika fomu yake ya asili . Tulihitaji kupunguza sana coefficients, na katika kesi hii tuligawanya kila mgawo na 25.000, yaani, kwa asili, tulirekebisha matokeo. Lakini hii ilifanywa mahsusi ili kurahisisha uelewa wa nyenzo katika hatua ya awali. Katika maisha, hatutahitaji kuvumbua na kurekebisha coefficients, lakini tupate. Katika sehemu zinazofuata za kifungu tutapata hesabu ambazo vigezo huchaguliwa .
04. Njia ya angalau mraba ya kuamua vekta ya uzani katika utendaji wa majibu ya vifaa
Tayari tunajua njia hii ya kuchagua vekta ya uzani Kama njia ya angalau mraba (LSM) na kwa kweli, kwa nini basi hatuitumii katika matatizo ya uainishaji wa binary? Hakika, hakuna kitu kinachokuzuia kutumia MNC, njia hii tu katika matatizo ya uainishaji inatoa matokeo ambayo si sahihi zaidi kuliko Upotezaji wa vifaa. Kuna msingi wa kinadharia kwa hili. Hebu kwanza tuangalie mfano mmoja rahisi.
Wacha tufikirie kuwa mifano yetu (kwa kutumia MSE ΠΈ Upotezaji wa vifaa) tayari wameanza kuchagua vekta ya uzani na tukasimamisha hesabu kwa hatua fulani. Haijalishi ikiwa katikati, mwishoni au mwanzoni, jambo kuu ni kwamba tayari tunayo maadili kadhaa ya vekta ya uzani na wacha tufikirie kuwa katika hatua hii, vekta ya uzani. kwa mifano yote miwili hakuna tofauti. Kisha chukua uzani unaosababishwa na ubadilishe ndani kipengele cha majibu ya vifaa () kwa kitu fulani ambacho ni cha darasa . Tunachunguza kesi mbili wakati, kwa mujibu wa vector iliyochaguliwa ya uzani, mfano wetu ni wa makosa sana na kinyume chake - mfano una uhakika sana kwamba kitu ni cha darasa. . Wacha tuone ni faini gani zitatolewa wakati wa kutumia MNC ΠΈ Upotezaji wa vifaa.
Msimbo wa kukokotoa adhabu kulingana na chaguo la kukokotoa la upotevu lililotumika
# ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
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
Kesi ya kosa - mtindo hugawa kitu kwa darasa na uwezekano wa 0,01
Adhabu kwa matumizi MNC itakuwa:
Adhabu kwa matumizi Upotezaji wa vifaa itakuwa:
Kesi ya kujiamini sana - mtindo hugawa kitu kwa darasa na uwezekano wa 0,99
Adhabu kwa matumizi MNC itakuwa:
Adhabu kwa matumizi Upotezaji wa vifaa itakuwa:
Mfano huu unaonyesha vizuri kwamba katika kesi ya kosa kubwa kazi ya kupoteza Upotezaji wa logi inaadhibu mfano kwa kiasi kikubwa zaidi kuliko MSE. Wacha sasa tuelewe msingi wa kinadharia ni nini kutumia kazi ya upotezaji Upotezaji wa logi katika matatizo ya uainishaji.
05. Mbinu ya juu zaidi ya uwezekano na urejeshaji wa vifaa
Kama ilivyoahidiwa mwanzoni, nakala hiyo imejaa mifano rahisi. Katika studio kuna mfano mwingine na wageni wa zamani - wakopaji wa benki: Vasya, Fedya na Lesha.
Ikiwezekana, kabla ya kukuza mfano, wacha nikukumbushe kwamba maishani tunashughulika na sampuli ya mafunzo ya maelfu au mamilioni ya vitu na makumi au mamia ya huduma. Walakini, hapa nambari zinachukuliwa ili ziweze kuingia kwa urahisi kwenye kichwa cha mwanasayansi wa data ya novice.
Turudi kwenye mfano. Hebu fikiria kwamba mkurugenzi wa benki aliamua kutoa mkopo kwa kila mtu anayehitaji, licha ya ukweli kwamba algorithm ilimwambia asiipe Lesha. Na sasa muda wa kutosha umepita na tunajua ni nani kati ya mashujaa watatu aliyelipa mkopo na ambaye hakulipa. Nini kilitarajiwa: Vasya na Fedya walilipa mkopo huo, lakini Lesha hakufanya hivyo. Sasa hebu fikiria kwamba matokeo haya yatakuwa sampuli mpya ya mafunzo kwetu na, wakati huo huo, ni kana kwamba data zote juu ya mambo yanayoathiri uwezekano wa kulipa mkopo (mshahara wa akopaye, ukubwa wa malipo ya kila mwezi) imetoweka. Kisha, intuitively, tunaweza kudhani kwamba kila akopaye tatu haina kurejesha mkopo kwa benki, au kwa maneno mengine, uwezekano wa akopaye ijayo kurejesha mkopo. . Dhana hii angavu ina uthibitisho wa kinadharia na inategemea njia ya uwezekano mkubwa, mara nyingi katika fasihi inaitwa kanuni ya uwezekano mkubwa.
Kwanza, hebu tufahamiane na vifaa vya dhana.
Uwezekano wa sampuli ni uwezekano wa kupata sampuli kama hiyo haswa, kupata uchunguzi/matokeo kama hayo, i.e. bidhaa ya uwezekano wa kupata kila matokeo ya sampuli (kwa mfano, ikiwa mkopo wa Vasya, Fedya na Lesha ulilipwa au haukulipwa kwa wakati mmoja).
Kitendaji cha uwezekano inahusiana na uwezekano wa sampuli na maadili ya vigezo vya usambazaji.
Kwa upande wetu, sampuli ya mafunzo ni mpango wa jumla wa Bernoulli, ambapo kutofautisha kwa nasibu kunachukua maadili mawili tu: au . Kwa hivyo, uwezekano wa sampuli unaweza kuandikwa kama kazi ya uwezekano wa parameta kama ifuatavyo:
Ingizo hapo juu linaweza kufasiriwa kama ifuatavyo. Uwezekano wa pamoja ambao Vasya na Fedya watalipa mkopo huo ni sawa , uwezekano kwamba Lesha HATALIPA mkopo ni sawa (kwa kuwa SI ulipaji wa mkopo ulifanyika), kwa hivyo uwezekano wa pamoja wa matukio yote matatu ni sawa. .
Mbinu ya juu ya uwezekano ni njia ya kukadiria parameta isiyojulikana kwa kuongeza uwezekano wa kazi. Kwa upande wetu, tunahitaji kupata thamani kama hiyo ambayo hufikia upeo wake.
Wazo halisi linatoka wapi - kutafuta thamani ya paramu isiyojulikana ambayo kazi ya uwezekano hufikia kiwango cha juu? Chimbuko la wazo linatokana na wazo kwamba sampuli ndio chanzo pekee cha maarifa kinachopatikana kwetu kuhusu idadi ya watu. Kila kitu tunachojua kuhusu idadi ya watu kinawakilishwa kwenye sampuli. Kwa hivyo, tunachoweza kusema ni kwamba sampuli ndiyo onyesho sahihi zaidi la idadi ya watu inayopatikana kwetu. Kwa hiyo, tunahitaji kupata parameter ambayo sampuli inapatikana inakuwa inayowezekana zaidi.
Ni wazi, tunashughulika na tatizo la uboreshaji ambapo tunahitaji kupata sehemu kuu ya chaguo la kukokotoa. Ili kupata uhakika uliokithiri, ni muhimu kuzingatia hali ya utaratibu wa kwanza, yaani, kusawazisha derivative ya kazi kwa sifuri na kutatua equation kwa heshima na parameter inayotaka. Walakini, kutafuta derivative ya bidhaa ya idadi kubwa ya sababu inaweza kuwa kazi ndefu; ili kuepusha hili, kuna mbinu maalum - kubadili logarithm. uwezekano wa kazi. Kwa nini mabadiliko hayo yanawezekana? Hebu tuzingatie ukweli kwamba hatutafuti upeo wa kazi yenyewe, na hatua ya mwisho, yaani, thamani ya parameter isiyojulikana ambayo hufikia upeo wake. Wakati wa kuhamia logarithm, hatua ya mwisho haibadilika (ingawa sehemu ya juu yenyewe itatofautiana), kwani logarithm ni kazi ya monotonic.
Hebu, kwa mujibu wa hapo juu, tuendelee kuendeleza mfano wetu na mikopo kutoka kwa Vasya, Fedya na Lesha. Kwanza tuendelee logarithm ya chaguo za kukokotoa uwezekano:
Sasa tunaweza kutofautisha usemi kwa urahisi :
Na mwishowe, fikiria hali ya agizo la kwanza - tunalinganisha derivative ya kazi na sifuri:
Kwa hivyo, makadirio yetu ya angavu ya uwezekano wa ulipaji wa mkopo ilihesabiwa haki kinadharia.
Sawa, lakini tufanye nini na habari hii sasa? Ikiwa tunadhania kwamba kila akopaye wa tatu harudishi fedha kwa benki, basi mwisho atafilisika. Hiyo ni kweli, lakini tu wakati wa kutathmini uwezekano wa ulipaji wa mkopo sawa na Hatukuzingatia mambo yanayoathiri ulipaji wa mkopo: mshahara wa akopaye na ukubwa wa malipo ya kila mwezi. Hebu tukumbuke kwamba hapo awali tulihesabu uwezekano wa ulipaji wa mkopo kwa kila mteja, kwa kuzingatia mambo haya sawa. Ni jambo la busara kwamba tulipata uwezekano tofauti na sawa mara kwa mara .
Wacha tufafanue uwezekano wa sampuli:
Msimbo wa kuhesabu uwezekano wa sampuli
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)
Sampuli ya uwezekano kwa thamani ya mara kwa mara :
Sampuli ya uwezekano wakati wa kuhesabu uwezekano wa ulipaji wa mkopo kwa kuzingatia mambo :
Uwezekano wa sampuli yenye uwezekano uliokokotolewa kulingana na vipengele uligeuka kuwa juu kuliko uwezekano na thamani ya uwezekano isiyobadilika. Hii ina maana gani? Hii inapendekeza kwamba ujuzi kuhusu mambo ulifanya iwezekane kuchagua kwa usahihi zaidi uwezekano wa ulipaji wa mkopo kwa kila mteja. Kwa hivyo, wakati wa kutoa mkopo unaofuata, itakuwa sahihi zaidi kutumia mfano uliopendekezwa mwishoni mwa kifungu cha 3 cha kifungu kwa kutathmini uwezekano wa ulipaji wa deni.
Lakini basi, ikiwa tunataka kuongeza kitendakazi cha uwezekano wa sampuli, basi kwa nini usitumie algorithm fulani ambayo itazalisha uwezekano wa Vasya, Fedya na Lesha, kwa mfano, sawa na 0.99, 0.99 na 0.01, kwa mtiririko huo. Labda algorithm kama hiyo itafanya vizuri kwenye sampuli ya mafunzo, kwani italeta thamani ya uwezekano wa sampuli karibu , lakini, kwanza, algorithm kama hiyo itakuwa na shida na uwezo wa jumla, na pili, algorithm hii hakika haitakuwa ya mstari. Na ikiwa mbinu za kupambana na overtraining (sawa na uwezo dhaifu wa jumla) hazijumuishwa katika mpango wa makala hii, basi hebu tupitie hatua ya pili kwa undani zaidi. Ili kufanya hivyo, jibu swali rahisi tu. Je, uwezekano wa Vasya na Fedya kurejesha mkopo huo unaweza kuwa sawa, kwa kuzingatia mambo tunayojua? Kutoka kwa mtazamo wa mantiki ya sauti, bila shaka, haiwezi. Kwa hivyo Vasya atalipa 2.5% ya mshahara wake kwa mwezi kulipa mkopo huo, na Fedya - karibu 27,8%. Pia katika grafu ya 2 "Uainishaji wa Mteja" tunaona kwamba Vasya ni mbali zaidi na mstari wa kutenganisha madarasa kuliko Fedya. Na hatimaye, tunajua kwamba kazi kwa Vasya na Fedya huchukua maadili tofauti: 4.24 kwa Vasya na 1.0 kwa Fedya. Sasa, ikiwa Fedya, kwa mfano, alipata amri ya ukubwa zaidi au aliuliza mkopo mdogo, basi uwezekano wa kulipa mkopo kwa Vasya na Fedya ungekuwa sawa. Kwa maneno mengine, utegemezi wa mstari hauwezi kudanganywa. Na kama sisi kweli mahesabu tabia mbaya , na hakuwatoa nje ya hewa nyembamba, tunaweza kusema kwa usalama kwamba maadili yetu bora inaturuhusu kukadiria uwezekano wa urejeshaji wa mkopo na kila akopaye, lakini kwa kuwa tulikubali kudhani kuwa uamuzi wa coefficients ulifanyika kulingana na sheria zote, basi tutafikiri hivyo - coefficients yetu inaruhusu sisi kutoa makadirio bora ya uwezekano :)
Walakini, tunapuuza. Katika sehemu hii tunahitaji kuelewa jinsi vekta ya uzani imedhamiriwa , ambayo ni muhimu kutathmini uwezekano wa ulipaji wa mkopo na kila akopaye.
Wacha tufanye muhtasari wa ni arsenal gani tunaenda kutafuta odds :
1. Tunadhani kwamba uhusiano kati ya kutofautisha lengwa (thamani ya utabiri) na sababu inayoathiri matokeo ni ya mstari. Kwa sababu hii hutumiwa kitendakazi cha urejeshaji cha mstari aina , mstari ambao hugawanya vitu (wateja) katika madarasa ΠΈ au (wateja ambao wana uwezo wa kurejesha mkopo na wale ambao hawana). Kwa upande wetu, equation ina fomu .
2. Tunatumia kitendakazi cha kumbukumbu kinyume aina kuamua uwezekano wa kitu cha darasa .
3. Tunazingatia seti yetu ya mafunzo kama utekelezaji wa jumla Mipango ya Bernoulli, yaani, kwa kila kitu kutofautisha kwa nasibu kunatolewa, ambayo kwa uwezekano (yake kwa kila kitu) inachukua thamani 1 na kwa uwezekano - 0.
4. Tunajua kile tunachohitaji ili kuongeza kitendakazi cha uwezekano wa sampuli kwa kuzingatia mambo yaliyokubaliwa ili sampuli inayopatikana iwe ya kueleweka zaidi. Kwa maneno mengine, tunahitaji kuchagua vigezo ambavyo sampuli itakubalika zaidi. Kwa upande wetu, parameter iliyochaguliwa ni uwezekano wa ulipaji wa mkopo , ambayo kwa upande inategemea coefficients haijulikani . Kwa hivyo tunahitaji kupata vekta kama hiyo ya uzani , ambapo uwezekano wa sampuli utakuwa wa juu zaidi.
5. Tunajua nini cha kuongeza sampuli za utendakazi za uwezekano inaweza kutumia njia ya uwezekano mkubwa. Na tunajua hila zote za kufanya kazi na njia hii.
Hivi ndivyo inavyogeuka kuwa hatua ya hatua nyingi :)
Sasa kumbuka kuwa mwanzoni mwa kifungu tulitaka kupata aina mbili za kazi za upotezaji Upotezaji wa vifaa kulingana na jinsi madarasa ya vitu yameteuliwa. Ilifanyika kwamba katika matatizo ya uainishaji na madarasa mawili, madarasa yanaonyeshwa kama ΠΈ au . Kulingana na nukuu, matokeo yatakuwa na kazi ya upotezaji inayolingana.
Kesi 1. Uainishaji wa vitu ndani ΠΈ
Hapo awali, wakati wa kuamua uwezekano wa sampuli, ambayo uwezekano wa ulipaji wa deni na akopaye ulihesabiwa kulingana na mambo na kupewa mgawo. , tulitumia fomula:
Kweli ndio maana kazi za majibu ya vifaa kwa vekta fulani ya uzani
Halafu hakuna kinachotuzuia kuandika kazi ya uwezekano wa sampuli kama ifuatavyo:
Inatokea kwamba wakati mwingine ni ngumu kwa wachambuzi wengine wa novice kuelewa mara moja jinsi kazi hii inavyofanya kazi. Wacha tuangalie mifano 4 fupi ambayo itaweka wazi mambo:
1. Kama (yaani, kulingana na sampuli ya mafunzo, kitu ni cha darasa +1), na algorithm yetu huamua uwezekano wa kuainisha kitu kwa darasa sawa na 0.9, basi kipande hiki cha uwezekano wa sampuli kitahesabiwa kama ifuatavyo:
2. Kama Na , basi hesabu itakuwa kama hii:
3. Kama Na , basi hesabu itakuwa kama hii:
4. Kama Na , basi hesabu itakuwa kama hii:
Ni dhahiri kwamba kazi ya uwezekano itaongezwa katika kesi 1 na 3 au kwa ujumla - na maadili yaliyokisiwa kwa usahihi ya uwezekano wa kugawa kitu kwa darasa. .
Kwa sababu ya ukweli kwamba wakati wa kuamua uwezekano wa kugawa kitu kwa darasa Hatujui coefficients pekee , basi tutawatafuta. Kama ilivyoelezwa hapo juu, hili ni shida ya utoshelezaji ambayo kwanza tunahitaji kupata derivative ya uwezekano wa kazi kwa heshima na vekta ya uzani. . Walakini, kwanza inaeleweka kurahisisha kazi yetu wenyewe: tutatafuta derivative ya logarithm. uwezekano wa kazi.
Kwa nini baada ya logarithm, in kazi za makosa ya vifaa, tulibadilisha ishara kutoka juu ya . Kila kitu ni rahisi, kwani katika shida za kutathmini ubora wa mfano ni kawaida kupunguza thamani ya kazi, tulizidisha upande wa kulia wa usemi na na ipasavyo, badala ya kuongeza, sasa tunapunguza kazi.
Kwa kweli, hivi sasa, mbele ya macho yako, kazi ya upotezaji ilitolewa kwa uchungu - Upotezaji wa vifaa kwa seti ya mafunzo na madarasa mawili: ΠΈ .
Sasa, ili kupata coefficients, tunahitaji tu kupata derivative kazi za makosa ya vifaa na kisha, kwa kutumia mbinu za uboreshaji wa nambari, kama vile mteremko wa upinde rangi au mteremko wa kijiko cha stochastiki, chagua mgawo bora zaidi. . Lakini, kwa kuzingatia idadi kubwa ya kifungu hicho, inapendekezwa kufanya utofautishaji peke yako, au labda hii itakuwa mada ya kifungu kinachofuata na hesabu nyingi bila mifano ya kina.
Kesi 2. Uainishaji wa vitu ndani ΠΈ
Mbinu hapa itakuwa sawa na kwa madarasa ΠΈ , lakini njia yenyewe kwa pato la kazi ya upotezaji Upotezaji wa vifaa, itakuwa maridadi zaidi. Tuanze. Kwa kazi ya uwezekano tutatumia operator "ikiwa ... basi ...". Hiyo ni, ikiwa Kitu cha th ni cha darasa , kisha kukokotoa uwezekano wa sampuli tunatumia uwezekano , ikiwa kitu ni cha darasa , kisha tunabadilisha katika uwezekano . Hivi ndivyo kazi ya uwezekano inaonekana kama:
Hebu tueleze kwenye vidole jinsi inavyofanya kazi. Wacha tuchunguze kesi 4:
1. Kama ΠΈ , basi uwezekano wa sampuli "utaenda"
2. Kama ΠΈ , basi uwezekano wa sampuli "utaenda"
3. Kama ΠΈ , basi uwezekano wa sampuli "utaenda"
4. Kama ΠΈ , basi uwezekano wa sampuli "utaenda"
Ni dhahiri kuwa katika kesi 1 na 3, wakati uwezekano uliamuliwa kwa usahihi na algorithm, kazi ya uwezekano itaongezwa, yaani, hii ndiyo hasa tuliyotaka kupata. Walakini, njia hii ni ngumu sana na inayofuata tutazingatia nukuu ngumu zaidi. Lakini kwanza, hebu tuweke logarithm kitendakazi cha uwezekano na mabadiliko ya ishara, kwani sasa tutaipunguza.
Hebu badala yake kujieleza :
Wacha turahisishe neno linalofaa chini ya logarithm kwa kutumia mbinu rahisi za hesabu na tupate:
Sasa ni wakati wa kuondokana na operator "ikiwa ... basi ...". Kumbuka kwamba wakati kitu ni ya darasa , kisha katika usemi chini ya logarithm, katika denominator, kupandishwa madarakani , ikiwa kitu ni cha darasa , kisha $e$ inaongezwa kwa nguvu . Kwa hivyo, nukuu ya digrii inaweza kurahisishwa kwa kuchanganya kesi zote mbili kuwa moja: . Basi kitendakazi cha makosa ya vifaa itachukua fomu:
Kwa mujibu wa sheria za logarithm, tunageuza sehemu na kuweka ishara "" (minus) kwa logarithm, tunapata:
Hapa kuna kazi ya upotezaji hasara ya vifaa, ambayo hutumiwa katika seti ya mafunzo na vitu vilivyopewa madarasa: ΠΈ .
Naam, kwa wakati huu ninaondoka na tunahitimisha makala hiyo.
Vifaa vya kusaidia
1. Fasihi
1) Uchambuzi wa urejeshaji uliotumika / N. Draper, G. Smith - 2nd ed. β M.: Fedha na Takwimu, 1986 (tafsiri kutoka Kiingereza)
2) Nadharia ya uwezekano na takwimu za hisabati / V.E. Gmurman - toleo la 9. - M.: Shule ya Upili, 2003
3) Nadharia ya uwezekano / N.I. Chernova - Novosibirsk: Chuo Kikuu cha Jimbo la Novosibirsk, 2007
4) Uchambuzi wa biashara: kutoka kwa data hadi ujuzi / Paklin N. B., Oreshkov V. I. - 2nd ed. - St. Petersburg: Peter, 2013
5) Sayansi ya Data Sayansi ya Data kutoka mwanzo / Joel Gras - St. Petersburg: BHV Petersburg, 2017
6) Takwimu za vitendo kwa wataalamu wa Sayansi ya Data / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018
2. Mihadhara, kozi (video)
1)
2)
3)
4)
5)
3. Vyanzo vya mtandao
1)
2)
3)
4)
7)
Chanzo: mapenzi.com