Bron:
Lineêre regressie is een van die basiese algoritmes vir baie gebiede wat met data-analise verband hou. Die rede hiervoor is voor die hand liggend. Dit is 'n baie eenvoudige en verstaanbare algoritme, wat bygedra het tot die wydverspreide gebruik daarvan vir baie tiene, indien nie honderde nie, jare. Die idee is dat ons 'n lineêre afhanklikheid van een veranderlike van 'n stel ander veranderlikes aanneem, en dan probeer om hierdie afhanklikheid te herstel.
Maar hierdie artikel gaan nie oor die gebruik van lineêre regressie om praktiese probleme op te los nie. Hier sal ons interessante kenmerke van die implementering van verspreide algoritmes vir die herstel daarvan oorweeg, wat ons teëgekom het tydens die skryf van 'n masjienleermodule in
Waaroor praat ons?
Ons staan voor die taak om lineêre afhanklikheid te herstel. As insetdata word 'n stel vektore van veronderstelde onafhanklike veranderlikes gegee, wat elkeen met 'n sekere waarde van die afhanklike veranderlike geassosieer word. Hierdie data kan in die vorm van twee matrikse voorgestel word:
Nou, aangesien die afhanklikheid aanvaar word, en boonop lineêr, sal ons ons aanname skryf in die vorm van 'n produk van matrikse (om die optekening te vereenvoudig, word hier en onder aangeneem dat die vrye term van die vergelyking versteek is agter , en die laaste kolom van die matriks bevat eenhede):
Klink baie soos 'n stelsel van lineêre vergelykings, nie waar nie? Dit blyk, maar heel waarskynlik sal daar geen oplossings vir so 'n stelsel van vergelykings wees nie. Die rede hiervoor is geraas, wat in byna enige werklike data teenwoordig is. Nog 'n rede kan die afwesigheid van lineêre afhanklikheid as sodanig wees, wat bekamp kan word deur bykomende veranderlikes in te voer wat nie-lineêr afhanklik is van die oorspronklike. Oorweeg die volgende voorbeeld:
Bron:
Dit is 'n eenvoudige voorbeeld van lineêre regressie wat die verwantskap van een veranderlike (langs die as) toon ) van 'n ander veranderlike (langs die as ). Om die stelsel lineêre vergelykings wat met hierdie voorbeeld ooreenstem, 'n oplossing te hê, moet alle punte presies op dieselfde reguit lyn lê. Maar dis nie waar nie. Maar hulle lê nie juis as gevolg van geraas op dieselfde reguit lyn nie (of omdat die aanname van 'n lineêre verwantskap foutief was). Dus, om 'n lineêre verwantskap van werklike data te herstel, is dit gewoonlik nodig om nog een aanname in te voer: die insetdata bevat geraas en hierdie geraas het
Maksimum waarskynlikheid metode
Dus, ons het die teenwoordigheid van ewekansige normaalverspreide geraas aanvaar. Wat om te doen in so 'n situasie? Vir hierdie geval in wiskunde is daar en word wyd gebruik
Ons keer terug na die herstel van 'n lineêre verhouding van data met normale geraas. Let daarop dat die veronderstelde lineêre verwantskap die wiskundige verwagting is bestaande normale verspreiding. Terselfdertyd is die waarskynlikheid dat neem een of ander waarde aan, onderhewig aan die teenwoordigheid van waarneembares , soos volg:
Kom ons vervang nou eerder и Die veranderlikes wat ons benodig is:
Al wat oorbly is om die vektor te vind , waarteen hierdie waarskynlikheid maksimum is. Om so 'n funksie te maksimeer, is dit gerieflik om eers 'n logaritme daarvan te neem (die logaritme van die funksie sal 'n maksimum bereik op dieselfde punt as die funksie self):
Wat op sy beurt daarop neerkom om die volgende funksie te minimaliseer:
Terloops, dit word 'n metode genoem
QR ontbinding
Die minimum van die bogenoemde funksie kan gevind word deur die punt te vind waarop die gradiënt van hierdie funksie nul is. En die gradiënt sal soos volg geskryf word:
So ontbind ons die matriks na matrikse и en voer 'n reeks transformasies uit (die QR-ontbindingsalgoritme self sal nie hier oorweeg word nie, slegs die gebruik daarvan in verhouding tot die taak wat voorhande is):
matriks is ortogonaal. Dit stel ons in staat om van die werk ontslae te raak :
En as jy vervang op , dan sal dit werk . Neem dit in ag is 'n boonste driehoekige matriks, dit lyk soos volg:
Dit kan opgelos word deur die vervangingsmetode te gebruik. Element is geleë as , vorige element is geleë as en so aan.
Dit is opmerklik hier dat die kompleksiteit van die resulterende algoritme as gevolg van die gebruik van QR-ontbinding gelyk is aan . Verder, ten spyte van die feit dat die matriksvermenigvuldiging goed geparalleliseer is, is dit nie moontlik om 'n effektiewe verspreide weergawe van hierdie algoritme te skryf nie.
gradiënt afkoms
Wanneer daar gepraat word oor die minimalisering van 'n funksie, is dit altyd die moeite werd om die metode van (stogastiese) gradiënt-afkoms te onthou. Dit is 'n eenvoudige en effektiewe minimaliseringsmetode wat gebaseer is op die iteratiewe berekening van die gradiënt van 'n funksie by 'n punt en dit dan in die rigting teenoor die gradiënt te verskuif. Elke so 'n stap bring die oplossing nader aan die minimum. Die gradiënt lyk steeds dieselfde:
Hierdie metode is ook goed geparalleliseer en versprei as gevolg van die lineêre eienskappe van die gradiëntoperateur. Let daarop dat in die bogenoemde formule, onder die somteken daar onafhanklike terme is. Met ander woorde, ons kan die gradiënt onafhanklik vir alle indekse bereken van eerste tot , parallel hiermee, bereken die gradiënt vir indekse met aan . Voeg dan die gevolglike gradiënte by. Die resultaat van die optelling sal dieselfde wees asof ons dadelik die gradiënt vir indekse van die eerste tot bereken het . Dus, as die data tussen verskeie stukke data versprei word, kan die gradiënt onafhanklik op elke stuk bereken word, en dan kan die resultate van hierdie berekeninge opgesom word om die finale resultaat te verkry:
Vanuit 'n implementeringsoogpunt pas dit by die paradigma
Ten spyte van die gemak van implementering en die vermoë om in die MapReduce-paradigma uit te voer, het gradiëntafkoms ook sy nadele. In die besonder, die aantal stappe wat nodig is om konvergensie te bereik is aansienlik hoër in vergelyking met ander meer gespesialiseerde metodes.
LSQR
Die LSQR-metode is gebaseer op
Maar as ons aanvaar dat die matriks horisontaal gepartisioneer is, kan elke iterasie as twee MapReduce-stappe voorgestel word. Op hierdie manier is dit moontlik om data-oordragte tydens elke iterasie te minimaliseer (slegs vektore met 'n lengte gelyk aan die aantal onbekendes):
Dit is hierdie benadering wat gebruik word wanneer lineêre regressie in
Gevolgtrekking
Daar is baie lineêre regressie-herstelalgoritmes, maar nie almal kan in alle toestande toegepas word nie. QR-ontbinding is dus uitstekend vir akkurate oplossing op klein datastelle. Gradiënt afkoms is maklik om te implementeer en stel jou in staat om vinnig 'n benaderde oplossing te vind. En LSQR kombineer die beste eienskappe van die vorige twee algoritmes, aangesien dit versprei kan word, vinniger konvergeer in vergelyking met gradiënt-afkoms, en laat ook die vroeë stop van die algoritme toe, anders as QR-ontbinding, om 'n benaderde oplossing te vind.
Bron: will.com