Yn yr erthygl hon, byddwn yn dadansoddi cyfrifiadau damcaniaethol y trawsnewid swyddogaethau atchweliad llinol в swyddogaeth trawsnewid logit gwrthdro (a elwir fel arall yn swyddogaeth ymateb logistaidd). Yna, gan ddefnyddio'r arsenal dull tebygolrwydd mwyaf, yn unol â'r model atchweliad logistaidd, rydym yn deillio'r swyddogaeth colli Colled Logisteg, neu mewn geiriau eraill, byddwn yn diffinio swyddogaeth y mae paramedrau'r fector pwysau yn cael eu dewis yn y model atchweliad logistaidd â hi .
Amlinelliad o'r erthygl:
- Gadewch i ni ailadrodd y berthynas llinol rhwng dau newidyn
- Gadewch i ni nodi'r angen am drawsnewid swyddogaethau atchweliad llinol в swyddogaeth ymateb logistaidd
- Gadewch i ni gyflawni'r trawsnewidiadau a'r allbwn swyddogaeth ymateb logistaidd
- Gadewch i ni geisio deall pam mae'r dull sgwariau lleiaf yn ddrwg wrth ddewis paramedrau swyddogaethau Colled Logisteg
- Rydym yn defnyddio dull tebygolrwydd mwyaf ar gyfer penderfynu swyddogaethau dewis paramedr :
5.1. Achos 1: swyddogaeth Colled Logisteg ar gyfer gwrthrychau gyda dynodiadau dosbarth 0 и 1:
5.2. Achos 2: swyddogaeth Colled Logisteg ar gyfer gwrthrychau gyda dynodiadau dosbarth -1 и +1:
Mae'r erthygl yn gyforiog o enghreifftiau syml lle mae pob cyfrifiad yn hawdd i'w wneud ar lafar neu ar bapur; mewn rhai achosion, efallai y bydd angen cyfrifiannell. Felly paratowch :)
Mae'r erthygl hon wedi'i bwriadu'n bennaf ar gyfer gwyddonwyr data sydd â lefel gychwynnol o wybodaeth am hanfodion dysgu peirianyddol.
Bydd yr erthygl hefyd yn darparu cod ar gyfer llunio graffiau a chyfrifiadau. Mae'r holl god wedi'i ysgrifennu yn yr iaith python 2.7. Gadewch imi egluro ymlaen llaw am “newydd-deb” y fersiwn a ddefnyddir - dyma un o'r amodau ar gyfer dilyn y cwrs adnabyddus o Yandex ar lwyfan addysg ar-lein sydd yr un mor adnabyddus Coursera, ac, fel y gellid tybio, paratowyd y deunydd ar sail y cwrs hwn.
01. Dibyniaeth llinell syth
Mae'n eithaf rhesymol gofyn y cwestiwn - beth sydd a wnelo dibyniaeth llinol ac atchweliad logistaidd ag ef?
Mae'n syml! Atchweliad logistaidd yw un o'r modelau sy'n perthyn i'r dosbarthwr llinol. Mewn geiriau syml, tasg dosbarthwr llinol yw rhagfynegi gwerthoedd targed o newidynnau (atchwelwyr) . Credir bod y ddibyniaeth rhwng y nodweddion a gwerthoedd targed llinol. Felly enw'r dosbarthwr - llinol. I’w roi yn fras iawn, mae’r model atchweliad logistaidd yn seiliedig ar y dybiaeth bod perthynas llinol rhwng y nodweddion a gwerthoedd targed . Dyma'r cysylltiad.
Ceir yr enghraifft gyntaf yn y stiwdio, ac mae'n ymwneud, yn gywir, â dibyniaeth unionlin y meintiau sy'n cael eu hastudio. Yn y broses o baratoi'r erthygl, deuthum ar draws enghraifft sydd eisoes wedi gosod llawer o bobl ar ymyl - dibyniaeth cerrynt ar foltedd (“Dadansoddiad atchweliad cymhwysol”, N. Draper, G. Smith). Edrychwn arno yma hefyd.
Yn unol â Cyfraith Ohm:
lle - cryfder presennol, - foltedd, - ymwrthedd.
Os nad oeddem yn gwybod cyfraith Ohm, yna gallem ddod o hyd i'r ddibyniaeth yn empirig trwy newid a mesur , tra'n cefnogi sefydlog. Yna byddem yn gweld bod y graff dibyniaeth o yn rhoi llinell syth fwy neu lai trwy'r tarddiad. Rydyn ni'n dweud “mwy neu lai” oherwydd, er bod y berthynas yn gywir mewn gwirionedd, gall ein mesuriadau gynnwys gwallau bach, ac felly efallai na fydd y pwyntiau ar y graff yn disgyn yn union ar y llinell, ond yn cael eu gwasgaru o'i gwmpas ar hap.
Graff 1 “Dibyniaeth” o »
Cod lluniadu siart
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. Yr angen i drawsnewid yr hafaliad atchweliad llinol
Gadewch i ni edrych ar enghraifft arall. Gadewch i ni ddychmygu ein bod yn gweithio mewn banc a'n tasg ni yw pennu'r tebygolrwydd y bydd y benthyciwr yn ad-dalu'r benthyciad yn dibynnu ar rai ffactorau. Er mwyn symleiddio'r dasg, dim ond dau ffactor y byddwn yn eu hystyried: cyflog misol y benthyciwr a swm ad-dalu'r benthyciad misol.
Mae'r dasg yn amodol iawn, ond gyda'r enghraifft hon gallwn ddeall pam nad yw'n ddigon i'w ddefnyddio swyddogaethau atchweliad llinol, a hefyd darganfod pa drawsnewidiadau sydd angen eu cyflawni gyda'r swyddogaeth.
Gadewch i ni ddychwelyd at yr enghraifft. Deellir po uchaf yw'r cyflog, y mwyaf y bydd y benthyciwr yn gallu dyrannu'n fisol i ad-dalu'r benthyciad. Ar yr un pryd, ar gyfer ystod gyflog benodol, bydd y berthynas hon yn eithaf llinol. Er enghraifft, gadewch i ni gymryd ystod cyflog o 60.000 RUR i 200.000 RUR a thybio, yn yr ystod gyflog benodedig, bod dibyniaeth maint y taliad misol ar faint y cyflog yn llinol. Gadewch i ni ddweud, ar gyfer yr ystod benodol o gyflogau, y datgelwyd na all y gymhareb cyflog-i-daliad ddisgyn o dan 3 a bod yn rhaid i'r benthyciwr fod â 5.000 o RUR wrth gefn o hyd. A dim ond yn yr achos hwn, byddwn yn cymryd yn ganiataol y bydd y benthyciwr yn ad-dalu'r benthyciad i'r banc. Yna, bydd yr hafaliad atchweliad llinol ar ffurf:
lle , , , - cyflog -fed benthyciwr, - taliad benthyciad -fed benthyciwr.
Amnewid cyflog a thaliad benthyciad gyda pharamedrau sefydlog yn yr hafaliad Gallwch benderfynu a ydych am roi neu wrthod benthyciad.
Wrth edrych ymlaen, rydym yn nodi hynny, gyda'r paramedrau a roddir swyddogaeth atchweliad llinol, a ddefnyddir yn swyddogaethau ymateb logistaidd yn cynhyrchu gwerthoedd mawr a fydd yn cymhlethu cyfrifiadau i bennu tebygolrwydd ad-dalu benthyciad. Felly, cynigir lleihau ein cyfernodau, gadewch i ni ddweud, 25.000 o weithiau. Ni fydd y trawsnewid hwn yn y cyfernodau yn newid y penderfyniad i roi benthyciad. Gadewch i ni gofio'r pwynt hwn ar gyfer y dyfodol, ond nawr, i'w gwneud hi'n gliriach fyth yr hyn rydyn ni'n siarad amdano, gadewch i ni ystyried y sefyllfa gyda thri benthyciwr posib.
Tabl 1 “Benthycwyr posib”
Cod ar gyfer cynhyrchu'r tabl
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']]
Yn unol â'r data yn y tabl, mae Vasya, gyda chyflog o 120.000 RUR, am dderbyn benthyciad fel y gall ei ad-dalu'n fisol ar 3.000 RUR. Fe wnaethom benderfynu, er mwyn cymeradwyo'r benthyciad, bod yn rhaid i gyflog Vasya fod yn fwy na thair gwaith swm y taliad, a rhaid bod 5.000 RUR yn weddill o hyd. Mae Vasya yn bodloni'r gofyniad hwn: . Erys hyd yn oed 106.000 o RUR. Er gwaethaf y ffaith bod wrth gyfrifo rydym wedi lleihau'r tebygolrwydd 25.000 o weithiau, roedd y canlyniad yr un peth - gellir cymeradwyo'r benthyciad. Bydd Fedya hefyd yn derbyn benthyciad, ond bydd yn rhaid i Lesha, er gwaethaf y ffaith mai ef sy'n derbyn fwyaf, ffrwyno ei archwaeth.
Gadewch i ni dynnu graff ar gyfer yr achos hwn.
Siart 2 “Dosbarthiad benthycwyr”
Cod ar gyfer llunio'r graff
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()
Felly, mae ein llinell syth, a adeiladwyd yn unol â'r swyddogaeth , yn gwahanu benthycwyr “drwg” oddi wrth rai “da”. Mae'r benthycwyr hynny nad yw eu dymuniadau yn cyd-fynd â'u galluoedd uwchlaw'r llinell (Lesha), tra bod y rhai sydd, yn ôl paramedrau ein model, yn gallu ad-dalu'r benthyciad yn is na'r llinell (Vasya a Fedya). Mewn geiriau eraill, gallwn ddweud hyn: mae ein llinell uniongyrchol yn rhannu benthycwyr yn ddau ddosbarth. Gadewch i ni eu dynodi fel y canlyn : i ddosbarth Byddwn yn dosbarthu'r benthycwyr hynny sydd fwyaf tebygol o ad-dalu'r benthyciad fel neu Byddwn yn cynnwys y benthycwyr hynny sy'n fwyaf tebygol na fyddant yn gallu ad-dalu'r benthyciad.
Gadewch inni grynhoi'r casgliadau o'r enghraifft syml hon. Gadewch i ni gymryd pwynt a, rhoi cyfesurynnau'r pwynt yn hafaliad cyfatebol y llinell , ystyriwch dri opsiwn:
- Os yw'r pwynt o dan y llinell ac rydym yn ei aseinio i'r dosbarth , yna gwerth y swyddogaeth bydd yn gadarnhaol o i . Mae hyn yn golygu y gallwn dybio bod y tebygolrwydd o ad-dalu'r benthyciad o fewn . Po fwyaf yw gwerth swyddogaeth, yr uchaf yw'r tebygolrwydd.
- Os yw pwynt uwchben llinell ac rydym yn ei aseinio i'r dosbarth neu , yna bydd gwerth y swyddogaeth yn negyddol o i . Yna byddwn yn cymryd yn ganiataol bod y tebygolrwydd o ad-dalu dyled o fewn a pho fwyaf yw gwerth absoliwt y swyddogaeth, y mwyaf yw ein hyder.
- Mae'r pwynt ar linell syth, ar y ffin rhwng dau ddosbarth. Yn yr achos hwn, gwerth y swyddogaeth bydd yn gyfartal ac mae'r tebygolrwydd o ad-dalu'r benthyciad yn hafal i .
Nawr, gadewch i ni ddychmygu nad oes gennym ddau ffactor, ond dwsinau, ac nid tri, ond miloedd o fenthycwyr. Yna yn lle llinell syth bydd gennym ni m-ddimensiwn awyren a chyfernodau ni fyddwn yn cael ein tynnu allan o awyr denau, ond yn deillio yn unol â'r holl reolau, ac ar sail data cronedig ar fenthycwyr sydd wedi neu heb ad-dalu'r benthyciad. Ac yn wir, sylwch ein bod bellach yn dewis benthycwyr gan ddefnyddio cyfernodau hysbys eisoes . Mewn gwirionedd, tasg y model atchweliad logistaidd yn union yw pennu'r paramedrau , y mae gwerth y swyddogaeth colli Colled Logisteg bydd yn tueddu i'r lleiafswm. Ond am sut mae'r fector yn cael ei gyfrifo , byddwn yn darganfod mwy yn y 5ed adran o'r erthygl. Yn y cyfamser, rydym yn dychwelyd i'r wlad a addawyd - i'n bancwr a'i dri chleient.
Diolch i'r swyddogaeth rydym yn gwybod pwy all gael benthyciad a phwy sydd angen ei wrthod. Ond ni allwch fynd at y cyfarwyddwr gyda gwybodaeth o'r fath, oherwydd eu bod am gael oddi wrthym ni y tebygolrwydd o ad-dalu'r benthyciad gan bob benthyciwr. Beth i'w wneud? Mae'r ateb yn syml - mae angen i ni rywsut drawsnewid y swyddogaeth , y mae eu gwerthoedd yn gorwedd yn yr ystod i swyddogaeth y bydd ei gwerthoedd yn gorwedd yn yr ystod . Ac mae swyddogaeth o'r fath yn bodoli, fe'i gelwir swyddogaeth ymateb logistaidd neu drawsnewid gwrthdro-logit. Cyfarfod:
Gadewch i ni weld cam wrth gam sut mae'n gweithio swyddogaeth ymateb logistaidd. Sylwch y byddwn yn cerdded i'r cyfeiriad arall, h.y. byddwn yn cymryd yn ganiataol ein bod yn gwybod y gwerth tebygolrwydd, sy'n gorwedd yn yr ystod o i ac yna byddwn yn “dad-ddirwyn” y gwerth hwn i'r ystod gyfan o rifau o i .
03. Rydym yn deillio'r swyddogaeth ymateb logistaidd
Cam 1. Trosi'r gwerthoedd tebygolrwydd yn ystod
Yn ystod trawsnewid y swyddogaeth в swyddogaeth ymateb logistaidd Byddwn yn gadael llonydd i'n dadansoddwr credyd ac yn mynd ar daith o amgylch y bwci yn lle hynny. Na, wrth gwrs, ni fyddwn yn gosod betiau, y cyfan sydd o ddiddordeb i ni yno yw ystyr yr ymadrodd, er enghraifft, y siawns yw 4 i 1. Yr ods, sy'n gyfarwydd i bob bettor, yw'r gymhareb “llwyddiannau” i “ methiannau”. Yn nhermau tebygolrwydd, ods yw'r tebygolrwydd y bydd digwyddiad yn digwydd wedi'i rannu â'r tebygolrwydd na fydd y digwyddiad yn digwydd. Gadewch i ni ysgrifennu'r fformiwla ar gyfer y siawns y bydd digwyddiad yn digwydd :
lle - y tebygolrwydd y bydd digwyddiad yn digwydd, — tebygolrwydd NAD yw digwyddiad yn digwydd
Er enghraifft, os yw’r tebygolrwydd y bydd ceffyl ifanc, cryf a chwareus o’r enw “Veterok” yn curo hen wraig hen a blaen o’r enw “Matilda” mewn ras yn hafal i , yna bydd y siawns o lwyddiant ar gyfer “Veterok”. к ac i'r gwrthwyneb, gan wybod yr ods, ni fydd yn anhawdd i ni gyfrifo y tebygolrwydd :
Felly, rydym wedi dysgu i “drosi” tebygolrwydd yn siawns, sy'n cymryd gwerthoedd o i . Gadewch i ni gymryd un cam arall a dysgu “cyfieithu” y tebygolrwydd i'r llinell rif gyfan o i .
Cam 2. Trosi'r gwerthoedd tebygolrwydd yn ystod
Mae'r cam hwn yn syml iawn - gadewch i ni fynd â logarithm yr ods i waelod rhif Euler ac rydym yn cael:
Nawr rydym yn gwybod bod os , yna cyfrifwch y gwerth Bydd yn syml iawn ac, ar ben hynny, dylai fod yn gadarnhaol: . Mae hyn yn wir.
Allan o chwilfrydedd, gadewch i ni wirio beth os , yna disgwyliwn weld gwerth negyddol . Rydym yn gwirio: . Mae hynny'n iawn.
Nawr rydyn ni'n gwybod sut i drosi'r gwerth tebygolrwydd o i ar hyd y llinell rif gyfan o i . Yn y cam nesaf byddwn yn gwneud y gwrthwyneb.
Am y tro, rydym yn nodi bod yn unol â rheolau logarithm, gan wybod gwerth y swyddogaeth , gallwch gyfrifo'r ods:
Bydd y dull hwn o benderfynu ar ods yn ddefnyddiol i ni yn y cam nesaf.
Cam 3. Gadewch i ni ddeillio fformiwla i benderfynu
Felly dysgon ni, gan wybod , dod o hyd i werthoedd swyddogaeth . Fodd bynnag, mewn gwirionedd, mae angen yn union i'r gwrthwyneb - gwybod y gwerth i ddod o hyd . I wneud hyn, gadewch inni droi at gysyniad o'r fath â'r swyddogaeth ods gwrthdro, yn ôl pa un:
Yn yr erthygl ni fyddwn yn deillio'r fformiwla uchod, ond byddwn yn ei wirio gan ddefnyddio'r rhifau o'r enghraifft uchod. Gwyddom hynny gydag ods o 4 i 1 (), y tebygolrwydd y bydd y digwyddiad yn digwydd yw 0.8 (). Gadewch i ni wneud amnewidiad: . Mae hyn yn cyd-fynd â'n cyfrifiadau a wnaed yn gynharach. Gadewch i ni symud ymlaen.
Yn y cam olaf rydym wedi diddwytho hynny , sy'n golygu y gallwch chi wneud amnewidiad yn y swyddogaeth ods gwrthdro. Rydym yn cael:
Rhannwch y rhifiadur a'r enwadur gyda , Yna:
Rhag ofn, i wneud yn siŵr nad ydym wedi gwneud camgymeriad yn unman, gadewch i ni wneud un gwiriad bach arall. Yng ngham 2, rydym am benderfynol hynny . Yna, amnewid y gwerth i mewn i'r swyddogaeth ymateb logistaidd, rydym yn disgwyl ei gael . Rydym yn amnewid ac yn cael:
Llongyfarchiadau, annwyl ddarllenydd, rydym newydd ddeillio a phrofi'r swyddogaeth ymateb logistaidd. Edrychwn ar graff y swyddogaeth.
Graff 3 “Swyddogaeth ymateb logistaidd”
Cod ar gyfer llunio'r graff
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()
Yn y llenyddiaeth gallwch hefyd ddod o hyd i enw'r swyddogaeth hon fel swyddogaeth sigmoid. Mae'r graff yn dangos yn glir bod y prif newid yn nhebygolrwydd gwrthrych sy'n perthyn i ddosbarth yn digwydd o fewn amrediad cymharol fach , rhywle o i .
Rwy'n awgrymu dychwelyd at ein dadansoddwr credyd a'i helpu i gyfrifo'r tebygolrwydd o ad-dalu benthyciad, fel arall mae mewn perygl o gael ei adael heb fonws :)
Tabl 2 “Benthycwyr posib”
Cod ar gyfer cynhyrchu'r tabl
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']]
Felly, rydym wedi pennu'r tebygolrwydd o ad-dalu benthyciad. Yn gyffredinol, mae hyn yn ymddangos yn wir.
Yn wir, mae'r tebygolrwydd y bydd Vasya, gyda chyflog o 120.000 RUR, yn gallu rhoi 3.000 RUR i'r banc bob mis yn agos at 100%. Gyda llaw, rhaid inni ddeall y gall banc roi benthyciad i Lesha os yw polisi'r banc yn darparu, er enghraifft, ar gyfer benthyca i gleientiaid gyda thebygolrwydd o ad-dalu benthyciad o fwy na, dyweder, 0.3. Dim ond yn yr achos hwn y bydd y banc yn creu cronfa wrth gefn fwy ar gyfer colledion posibl.
Dylid nodi hefyd bod y gymhareb cyflog-i-daliad o 3 o leiaf a chydag ymyl o 5.000 RUR wedi'i gymryd o'r nenfwd. Felly, ni allem ddefnyddio fector pwysau yn ei ffurf wreiddiol . Roedd angen i ni leihau'r cyfernodau'n fawr, ac yn yr achos hwn fe wnaethom rannu pob cyfernod â 25.000, hynny yw, yn y bôn, fe wnaethom addasu'r canlyniad. Ond gwnaed hyn yn benodol er mwyn symleiddio dealltwriaeth o'r deunydd yn y cam cychwynnol. Mewn bywyd, ni fydd angen i ni ddyfeisio ac addasu cyfernodau, ond dod o hyd iddynt. Yn adrannau nesaf yr erthygl byddwn yn deillio'r hafaliadau y dewisir y paramedrau â nhw .
04. Dull sgwariau lleiaf ar gyfer pennu fector pwysau yn y swyddogaeth ymateb logistaidd
Rydym eisoes yn gwybod y dull hwn ar gyfer dewis fector pwysau Fel dull lleiaf sgwariau (LSM) ac mewn gwirionedd, pam nad ydym wedyn yn ei ddefnyddio mewn problemau dosbarthu deuaidd? Yn wir, nid oes dim yn eich atal rhag defnyddio MNC, dim ond y dull hwn mewn problemau dosbarthu sy'n rhoi canlyniadau sy'n llai cywir na Colled Logisteg. Mae sail ddamcaniaethol i hyn. Edrychwn yn gyntaf ar un enghraifft syml.
Gadewch i ni dybio bod ein modelau (gan ddefnyddio MSE и Colled Logisteg) eisoes wedi dechrau dewis fector pwysau ac fe wnaethom atal y cyfrifiad rywbryd. Nid oes ots ai yn y canol, ar y diwedd neu ar y dechrau, y prif beth yw bod gennym eisoes rai gwerthoedd fector pwysau a gadewch i ni dybio, ar y cam hwn, y fector pwysau nid oes unrhyw wahaniaethau ar gyfer y ddau fodel. Yna cymerwch y pwysau canlyniadol a rhowch nhw yn eu lle swyddogaeth ymateb logistaidd () am ryw wrthddrych sydd yn perthyn i'r dosbarth . Rydym yn archwilio dau achos pan, yn unol â'r fector pwysau a ddewiswyd, mae ein model yn anghywir iawn ac i'r gwrthwyneb - mae'r model yn hyderus iawn bod y gwrthrych yn perthyn i'r dosbarth . Gawn ni weld pa ddirwyon fydd yn cael eu rhoi wrth ddefnyddio MNC и Colled Logisteg.
Cod i gyfrifo cosbau yn dibynnu ar y swyddogaeth golled a ddefnyddir
# класс объекта
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
Achos o gamgymeriad — mae'r model yn neilltuo gwrthrych i ddosbarth gyda thebygolrwydd o 0,01
Cosb am ddefnydd MNC bydd yn:
Cosb am ddefnydd Colled Logisteg bydd yn:
Achos o hyder cryf — mae'r model yn neilltuo gwrthrych i ddosbarth gyda thebygolrwydd o 0,99
Cosb am ddefnydd MNC bydd yn:
Cosb am ddefnydd Colled Logisteg bydd yn:
Mae'r enghraifft hon yn dangos yn dda, rhag ofn y bydd gwall difrifol, y swyddogaeth golled Colled Log yn cosbi'r model yn sylweddol fwy na MSE. Gadewch i ni nawr ddeall beth yw'r cefndir damcaniaethol i ddefnyddio'r swyddogaeth colli Colled Log mewn problemau dosbarthu.
05. Y dull tebygolrwydd mwyaf ac atchweliad logistaidd
Fel yr addawyd ar y dechrau, mae'r erthygl yn gyforiog o enghreifftiau syml. Yn y stiwdio mae enghraifft arall a hen westeion - benthycwyr banc: Vasya, Fedya a Lesha.
Rhag ofn, cyn datblygu'r enghraifft, gadewch i mi eich atgoffa ein bod mewn bywyd yn delio â sampl hyfforddi o filoedd neu filiynau o wrthrychau gyda degau neu gannoedd o nodweddion. Fodd bynnag, yma mae'r niferoedd yn cael eu cymryd fel y gallant ffitio'n hawdd i ben gwyddonydd data newydd.
Gadewch i ni ddychwelyd at yr enghraifft. Gadewch i ni ddychmygu bod cyfarwyddwr y banc wedi penderfynu rhoi benthyciad i bawb mewn angen, er gwaethaf y ffaith bod yr algorithm wedi dweud wrtho i beidio â'i roi i Lesha. Ac yn awr mae digon o amser wedi mynd heibio a gwyddom pa un o'r tri arwr a ad-dalodd y benthyciad a pha rai na wnaeth. Beth oedd i'w ddisgwyl: ad-dalodd Vasya a Fedya y benthyciad, ond ni wnaeth Lesha. Nawr, gadewch i ni ddychmygu y bydd y canlyniad hwn yn sampl hyfforddi newydd i ni ac, ar yr un pryd, mae fel petai'r holl ddata ar y ffactorau sy'n dylanwadu ar y tebygolrwydd o ad-dalu'r benthyciad (cyflog y benthyciwr, maint y taliad misol) wedi diflannu. Yna, yn reddfol, gallwn dybio nad yw pob trydydd benthyciwr yn ad-dalu'r benthyciad i'r banc, neu mewn geiriau eraill, y tebygolrwydd y bydd y benthyciwr nesaf yn ad-dalu'r benthyciad . Mae gan y dybiaeth reddfol hon gadarnhad damcaniaethol ac mae'n seiliedig ar dull tebygolrwydd mwyaf, yn aml yn y llenyddiaeth y'i gelwir egwyddor tebygolrwydd mwyaf.
Yn gyntaf, gadewch i ni ddod yn gyfarwydd â'r cyfarpar cysyniadol.
Tebygolrwydd samplu yw’r tebygolrwydd o gael sampl o’r fath yn union, cael yr union arsylwadau/canlyniadau o’r fath, h.y. cynnyrch y tebygolrwydd o gael pob un o ganlyniadau'r sampl (er enghraifft, a gafodd benthyciad Vasya, Fedya a Lesha ei ad-dalu ai peidio ar yr un pryd).
Swyddogaeth tebygolrwydd yn cysylltu tebygolrwydd sampl â gwerthoedd y paramedrau dosbarthu.
Yn ein hachos ni, mae'r sampl hyfforddi yn gynllun Bernoulli cyffredinol, lle mae'r hapnewidyn yn cymryd dau werth yn unig: neu . Felly, gellir ysgrifennu'r tebygolrwydd sampl fel swyddogaeth tebygolrwydd y paramedr fel a ganlyn:
Gellir dehongli'r cofnod uchod fel a ganlyn. Mae'r tebygolrwydd ar y cyd y bydd Vasya a Fedya yn ad-dalu'r benthyciad yn gyfartal , mae'r tebygolrwydd NA fydd Lesha yn ad-dalu'r benthyciad yn hafal i (gan mai NID yr ad-daliad benthyciad a ddigwyddodd), felly mae'r tebygolrwydd ar y cyd o'r tri digwyddiad yn gyfartal .
Dull tebygolrwydd mwyaf yn ddull ar gyfer amcangyfrif paramedr anhysbys trwy wneud y mwyaf swyddogaethau tebygolrwydd. Yn ein hachos ni, mae angen inni ddod o hyd i werth o'r fath lle mae yn cyrraedd ei uchafswm.
O ble mae'r syniad gwirioneddol yn dod - i chwilio am werth paramedr anhysbys lle mae'r swyddogaeth tebygolrwydd yn cyrraedd uchafswm? Mae tarddiad y syniad yn deillio o'r syniad mai sampl yw'r unig ffynhonnell o wybodaeth sydd ar gael i ni am y boblogaeth. Mae popeth rydyn ni'n ei wybod am y boblogaeth yn cael ei gynrychioli yn y sampl. Felly, y cyfan y gallwn ei ddweud yw mai sampl yw’r adlewyrchiad mwyaf cywir o’r boblogaeth sydd ar gael inni. Felly, mae angen inni ddod o hyd i baramedr lle mae'r sampl sydd ar gael yn dod yn fwyaf tebygol.
Yn amlwg, rydym yn delio â phroblem optimeiddio lle mae angen inni ddod o hyd i bwynt eithaf swyddogaeth. I ddod o hyd i'r pwynt eithafol, mae angen ystyried y cyflwr gorchymyn cyntaf, hynny yw, cyfateb deilliad y swyddogaeth i sero a datrys yr hafaliad mewn perthynas â'r paramedr a ddymunir. Fodd bynnag, gall chwilio am ddeilliad cynnyrch o nifer fawr o ffactorau fod yn dasg hir; er mwyn osgoi hyn, mae techneg arbennig - newid i'r logarithm swyddogaethau tebygolrwydd. Pam mae trosglwyddiad o'r fath yn bosibl? Gadewch inni dalu sylw at y ffaith nad ydym yn chwilio am eithaf y swyddogaeth ei hun, a'r pwynt eithafol, hynny yw, gwerth y paramedr anhysbys lle mae yn cyrraedd ei uchafswm. Wrth symud i logarithm, nid yw'r pwynt eithaf yn newid (er y bydd yr eithaf ei hun yn wahanol), gan fod y logarithm yn ffwythiant monotonig.
Gadewch i ni, yn unol â'r uchod, barhau i ddatblygu ein hesiampl gyda benthyciadau gan Vasya, Fedya a Lesha. Yn gyntaf, gadewch i ni symud ymlaen i logarithm y swyddogaeth tebygolrwydd:
Yn awr gallwn yn hawdd wahaniaethu y mynegiad wrth :
Ac yn olaf, ystyriwch yr amod gorchymyn cyntaf - rydym yn cyfateb deilliad y swyddogaeth i sero:
Felly, mae ein hamcangyfrif greddfol o'r tebygolrwydd o ad-dalu benthyciad wedi'i gyfiawnhau yn ddamcaniaethol.
Gwych, ond beth ddylem ni ei wneud â'r wybodaeth hon nawr? Os tybiwn nad yw pob trydydd benthyciwr yn dychwelyd yr arian i'r banc, yna mae'n anochel y bydd yr olaf yn mynd yn fethdalwr. Mae hynny'n iawn, ond dim ond wrth asesu'r tebygolrwydd o ad-dalu benthyciad yn gyfartal Ni wnaethom ystyried y ffactorau sy'n dylanwadu ar ad-dalu benthyciad: cyflog y benthyciwr a maint y taliad misol. Gadewch inni gofio ein bod yn flaenorol wedi cyfrifo'r tebygolrwydd o ad-dalu'r benthyciad gan bob cleient, gan ystyried yr un ffactorau hyn. Mae'n rhesymegol ein bod wedi cael tebygolrwydd gwahanol i'r hafaliad cyson .
Gadewch i ni ddiffinio'r tebygolrwydd o samplau:
Cod ar gyfer cyfrifo tebygolrwydd sampl
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)
Tebygolrwydd samplu ar werth cyson :
Samplu tebygolrwydd wrth gyfrifo'r tebygolrwydd o ad-dalu benthyciad gan ystyried ffactorau :
Trodd y tebygolrwydd o sampl gyda thebygolrwydd wedi'i gyfrifo yn dibynnu ar y ffactorau i fod yn uwch na'r tebygolrwydd gyda gwerth tebygolrwydd cyson. Beth mae hyn yn ei olygu? Mae hyn yn awgrymu bod gwybodaeth am y ffactorau wedi ei gwneud yn bosibl i ddewis yn fwy cywir y tebygolrwydd o ad-dalu benthyciad ar gyfer pob cleient. Felly, wrth roi’r benthyciad nesaf, byddai’n fwy cywir defnyddio’r model a gynigir ar ddiwedd adran 3 o’r erthygl ar gyfer asesu’r tebygolrwydd o ad-dalu dyled.
Ond wedyn, os ydym am wneud y mwyaf swyddogaeth tebygolrwydd sampl, yna beth am ddefnyddio rhywfaint o algorithm a fydd yn cynhyrchu tebygolrwydd ar gyfer Vasya, Fedya a Lesha, er enghraifft, yn hafal i 0.99, 0.99 a 0.01, yn y drefn honno. Efallai y bydd algorithm o'r fath yn perfformio'n dda ar y sampl hyfforddi, gan y bydd yn dod â gwerth tebygolrwydd y sampl yn agosach ato , ond, yn gyntaf, bydd algorithm o'r fath yn fwyaf tebygol o gael anawsterau gyda gallu cyffredinoli, ac yn ail, ni fydd yr algorithm hwn yn bendant yn llinol. Ac os yw'n amlwg nad yw dulliau o frwydro yn erbyn gorhyfforddiant (gallu cyffredinoli yr un mor wan) wedi'u cynnwys yng nghynllun yr erthygl hon, yna gadewch i ni fynd trwy'r ail bwynt yn fwy manwl. I wneud hyn, atebwch gwestiwn syml. A all y tebygolrwydd y bydd Vasya a Fedya yn ad-dalu'r benthyciad fod yr un peth, gan ystyried y ffactorau sy'n hysbys i ni? O safbwynt rhesymeg sain, nid wrth gwrs, ni all. Felly bydd Vasya yn talu 2.5% o'i gyflog y mis i ad-dalu'r benthyciad, a Fedya - bron i 27,8%. Hefyd yng ngraff 2 “Dosbarthiad cleient” gwelwn fod Vasya yn llawer pellach o'r llinell sy'n gwahanu'r dosbarthiadau na Fedya. Ac yn olaf, rydym yn gwybod bod y swyddogaeth ar gyfer Vasya ac mae Fedya yn cymryd gwerthoedd gwahanol: 4.24 ar gyfer Vasya ac 1.0 ar gyfer Fedya. Nawr, pe bai Fedya, er enghraifft, yn ennill gorchymyn maint yn fwy neu'n gofyn am fenthyciad llai, yna byddai'r tebygolrwydd o ad-dalu'r benthyciad ar gyfer Vasya a Fedya yn debyg. Mewn geiriau eraill, ni ellir twyllo dibyniaeth llinol. Ac os ydym mewn gwirionedd yn cyfrifo yr ods , a heb eu tynnu allan o awyr denau, gallem ddweud yn ddiogel bod ein gwerthoedd orau caniatáu i ni amcangyfrif y tebygolrwydd o ad-dalu’r benthyciad gan bob benthyciwr, ond ers i ni gytuno i gymryd yn ganiataol bod y penderfyniad ar y cyfernodau ei wneud yn unol â'r holl reolau, yna byddwn yn cymryd yn ganiataol felly - mae ein cyfernodau yn caniatáu inni roi amcangyfrif gwell o'r tebygolrwydd :)
Fodd bynnag, rydym yn crwydro. Yn yr adran hon mae angen i ni ddeall sut mae fector pwysau yn cael ei bennu , sy'n angenrheidiol i asesu'r tebygolrwydd y bydd pob benthyciwr yn ad-dalu'r benthyciad.
Gadewch inni grynhoi'n fyr pa arsenal yr ydym yn mynd i chwilio amdano :
1. Tybiwn mai llinol yw'r berthynas rhwng y newidyn targed (gwerth rhagfynegiad) a'r ffactor sy'n dylanwadu ar y canlyniad. Am y rheswm hwn mae'n cael ei ddefnyddio swyddogaeth atchweliad llinol rhywogaethau , y mae ei linell yn rhannu gwrthrychau (cleientiaid) yn ddosbarthiadau и neu (cleientiaid sy'n gallu ad-dalu'r benthyciad a'r rhai nad ydynt). Yn ein hachos ni, mae gan yr hafaliad y ffurf .
2. Rydyn ni'n defnyddio swyddogaeth logit gwrthdro rhywogaethau i benderfynu ar y tebygolrwydd y bydd gwrthrych yn perthyn i ddosbarth .
3. Rydym yn ystyried ein set hyfforddi fel gweithrediad cyffredinol cynlluniau Bernoulli, hynny yw, ar gyfer pob gwrthrych mae hapnewidyn yn cael ei gynhyrchu, sydd â thebygolrwydd (ei hun ar gyfer pob gwrthrych) yn cymryd y gwerth 1 a gyda thebygolrwydd - 0.
4. Rydym yn gwybod beth sydd angen i ni ei wneud yn fawr swyddogaeth tebygolrwydd sampl gan ystyried y ffactorau a dderbynnir fel bod y sampl sydd ar gael yn dod yn fwyaf credadwy. Mewn geiriau eraill, mae angen i ni ddewis paramedrau lle bydd y sampl yn fwyaf credadwy. Yn ein hachos ni, y paramedr a ddewiswyd yw'r tebygolrwydd o ad-dalu benthyciad , sydd yn ei dro yn dibynnu ar gyfernodau anhysbys . Felly mae angen inni ddod o hyd i fector pwysau o'r fath , lle bydd tebygolrwydd y sampl yn uchaf.
5. Rydym yn gwybod beth i'w wneud yn fawr swyddogaethau tebygolrwydd sampl yn gallu ei ddefnyddio dull tebygolrwydd mwyaf. Ac rydyn ni'n gwybod yr holl driciau anodd i weithio gyda'r dull hwn.
Dyma sut mae'n troi allan i fod yn symudiad aml-gam :)
Nawr cofiwch ein bod ni am ddeillio dau fath o swyddogaethau colled ar ddechrau'r erthygl Colled Logisteg yn dibynnu ar sut mae dosbarthiadau gwrthrych yn cael eu dynodi. Digwyddodd felly, mewn problemau dosbarthu gyda dau ddosbarth, bod y dosbarthiadau yn cael eu dynodi fel и neu . Yn dibynnu ar y nodiant, bydd gan yr allbwn swyddogaeth colli cyfatebol.
Achos 1. Dosbarthu gwrthrychau yn и
Yn gynharach, wrth bennu tebygolrwydd sampl, lle cyfrifwyd y tebygolrwydd o ad-dalu dyled gan y benthyciwr yn seiliedig ar ffactorau a chyfernodau a roddwyd , gwnaethom gymhwyso'r fformiwla:
Mewn gwirionedd yw'r ystyr swyddogaethau ymateb logistaidd ar gyfer fector pwysau penodol
Yna nid oes dim yn ein hatal rhag ysgrifennu'r swyddogaeth tebygolrwydd sampl fel a ganlyn:
Mae'n digwydd weithiau ei bod hi'n anodd i rai dadansoddwyr newydd ddeall ar unwaith sut mae'r swyddogaeth hon yn gweithio. Edrychwn ar 4 enghraifft fer a fydd yn clirio popeth:
1. Os (h.y., yn ôl y sampl hyfforddi, mae'r gwrthrych yn perthyn i ddosbarth +1), a'n algorithm yn pennu'r tebygolrwydd o ddosbarthu gwrthrych i ddosbarth hafal i 0.9, yna bydd y darn hwn o debygolrwydd sampl yn cael ei gyfrifo fel a ganlyn:
2. Os Ac , yna bydd y cyfrifiad fel hyn:
3. Os Ac , yna bydd y cyfrifiad fel hyn:
4. Os Ac , yna bydd y cyfrifiad fel hyn:
Mae'n amlwg y bydd y swyddogaeth tebygolrwydd yn cael ei uchafu yn achosion 1 a 3 neu yn yr achos cyffredinol - gyda gwerthoedd wedi'u dyfalu'n gywir o'r tebygolrwydd o aseinio gwrthrych i ddosbarth .
Oherwydd bod wrth benderfynu ar y tebygolrwydd o aseinio gwrthrych i ddosbarth Nid ydym yn gwybod y cyfernodau , yna byddwn yn edrych amdanynt. Fel y soniwyd uchod, mae hon yn broblem optimeiddio lle yn gyntaf mae angen i ni ddod o hyd i ddeilliad y swyddogaeth tebygolrwydd mewn perthynas â fector pwysau . Fodd bynnag, yn gyntaf mae'n gwneud synnwyr i symleiddio'r dasg i ni ein hunain: byddwn yn edrych am ddeilliad y logarithm swyddogaethau tebygolrwydd.
Pam ar ôl logarithm, mewn swyddogaethau gwall logistaidd, rydym yn newid yr arwydd o ar . Mae popeth yn syml, oherwydd mewn problemau o asesu ansawdd model mae'n arferol lleihau gwerth swyddogaeth, rydym wedi lluosi ochr dde'r mynegiant â ac yn unol â hynny, yn lle gwneud y mwyaf, yn awr rydym yn lleihau'r swyddogaeth.
Mewn gwirionedd, ar hyn o bryd, o flaen eich llygaid, roedd y swyddogaeth golled yn deillio'n ofalus - Colled Logisteg ar gyfer set hyfforddi gyda dau ddosbarth: и .
Nawr, i ddod o hyd i'r cyfernodau, does ond angen i ni ddod o hyd i'r deilliad swyddogaethau gwall logistaidd ac yna, gan ddefnyddio dulliau optimeiddio rhifiadol, megis disgyniad graddiant neu ddisgyniad graddiant stochastig, dewiswch y cyfernodau mwyaf optimaidd . Ond, o ystyried maint sylweddol yr erthygl, bwriedir gwneud y gwahaniaeth ar eich pen eich hun, neu efallai y bydd hwn yn destun i'r erthygl nesaf gyda llawer o rifyddeg heb enghreifftiau mor fanwl.
Achos 2. Dosbarthu gwrthrychau yn и
Bydd y dull yma yr un fath ag yn achos dosbarthiadau и , ond y llwybr ei hun i allbwn y swyddogaeth colli Colled Logisteg, Bydd yn fwy addurnedig. Gadewch i ni ddechrau. Ar gyfer y swyddogaeth tebygolrwydd byddwn yn defnyddio'r gweithredwr “os... yna….”. Hynny yw, os Mae'r gwrthrych yn perthyn i'r dosbarth , yna i gyfrifo tebygolrwydd y sampl rydym yn defnyddio'r tebygolrwydd , os yw y gwrthddrych yn perthyn i'r dosbarth , yna rhoddwn i mewn i'r tebygolrwydd . Dyma sut olwg sydd ar y swyddogaeth tebygolrwydd:
Gadewch inni ddisgrifio ar ein bysedd sut mae'n gweithio. Gadewch i ni ystyried 4 achos:
1. Os и , yna bydd y tebygolrwydd samplu yn “mynd”
2. Os и , yna bydd y tebygolrwydd samplu yn “mynd”
3. Os и , yna bydd y tebygolrwydd samplu yn “mynd”
4. Os и , yna bydd y tebygolrwydd samplu yn “mynd”
Mae'n amlwg, yn achosion 1 a 3, pan benderfynwyd y tebygolrwydd yn gywir gan yr algorithm, swyddogaeth tebygolrwydd cael ei huchafu, hynny yw, dyma'n union yr oeddem am ei gael. Fodd bynnag, mae'r dull hwn yn eithaf beichus a nesaf byddwn yn ystyried nodiant mwy cryno. Ond yn gyntaf, gadewch i ni logarithm y swyddogaeth tebygolrwydd gyda newid arwydd, ers nawr byddwn yn ei leihau.
Gadewch i ni eilydd yn lle hynny mynegiant :
Gadewch i ni symleiddio'r term cywir o dan y logarithm gan ddefnyddio technegau rhifyddeg syml a chael:
Nawr mae'n bryd cael gwared ar y gweithredwr “os... yna….”. Sylwch, pan fydd gwrthrych yn perthyn i'r dosbarth , yna yn y mynegiad o dan y logarithm, yn yr enwadur, wedi ei godi i'r gallu , os yw y gwrthddrych yn perthyn i'r dosbarth , yna mae $e$ yn cael ei godi i'r pŵer . Felly, gellir symleiddio'r nodiant ar gyfer y radd trwy gyfuno'r ddau achos yn un: . Yna swyddogaeth gwall logistaidd bydd ar y ffurf:
Yn unol â rheolau logarithm, rydyn ni'n troi'r ffracsiwn drosodd ac yn rhoi'r arwydd allan "" (llai) ar gyfer y logarithm, rydym yn cael:
Dyma'r swyddogaeth colli colled logistaidd, a ddefnyddir yn y set hyfforddi gyda gwrthrychau wedi'u neilltuo i ddosbarthiadau: и .
Wel, ar y pwynt hwn rwy'n cymryd fy ngwyliadwriaeth ac rydym yn gorffen yr erthygl.
Deunyddiau ategol
1. Llenyddiaeth
1) Dadansoddiad atchweliad cymhwysol / N. Draper, G. Smith - 2il arg. – M.: Cyllid ac Ystadegau, 1986 (cyfieithiad o'r Saesneg)
2) Theori tebygolrwydd ac ystadegau mathemategol / V.E. Gmurman - 9fed arg. - M.: Ysgol Uwchradd, 2003
3) Damcaniaeth tebygolrwydd / N.I. Chernova - Novosibirsk: Prifysgol Talaith Novosibirsk, 2007
4) Dadansoddeg busnes: o ddata i wybodaeth / Paklin N. B., Oreshkov V. I. - 2il arg. — St. Petersburg: Pedr, 2013
5) Gwyddor Data Gwyddor data o'r dechrau / Joel Gras - St. Petersburg: BHV Petersburg, 2017
6) Ystadegau ymarferol ar gyfer arbenigwyr Gwyddor Data / P. Bruce, E. Bruce - St Petersburg: BHV Petersburg, 2018
2. Darlithoedd, cyrsiau (fideo)
1)
2)
3)
4)
5)
3. Ffynonellau rhyngrwyd
1)
2)
3)
4)
5)
7)
8)
Ffynhonnell: hab.com