Linjära regressioner och metoder för dess återställning

Linjära regressioner och metoder för dess återställning
Källa: xkcd

Linear regression är en av de grundläggande algoritmerna för många områden kopplade till dataanalys. Anledningen till detta är uppenbar. Det är en mycket enkel och lättförståelig algoritm, vilket bidrar till dess breda tillämpning under många decennier, om inte hundratals år. Idén är att vi antar ett linjärt förhållande mellan en variabel och en uppsättning andra variabler, och sedan försöker vi återställa detta förhållande.

Men i denna artikel kommer vi inte att fokusera på tillämpningen av linjär regression för att lösa praktiska problem. Vi kommer istället att titta på intressanta egenskaper hos implementeringen av distribuerade algoritmer för dess återställande, som vi stötte på när vi skrev en modul för maskininlärning i Apache Ignite. Lite grundläggande matematik, maskininlärningens och distribuerade beräkningars grundprinciper kan hjälpa oss att förstå hur man återställer linjär regression, även om data är spridda över tusentals noder.

Vad handlar det om?

Vi står inför uppgiften att återställa den linjära relationen. Som ingångsuppgifter ges en mängd vektorer av antas oberoende variabler, där varje enskild knyts till ett visst värde av den beroende variabeln. Dessa data kan representeras i form av två matriser:

Linjära regressioner och metoder för dess återställning

Nu, eftersom vi antar att det finns ett beroende, och dessutom ett linjärt, kan vi skriva vår hypotes i form av en produkt av matriser (för att förenkla skrivningen antas här och framöver att den konstanta termen i ekvationen döljs bakom Linjära regressioner och metoder för dess återställning, och den sista kolumnen i matrisen Linjära regressioner och metoder för dess återställning innehåller ettor):

Linjära regressioner och metoder för dess återställning

Det liknar mycket ett system av linjära ekvationer, eller hur? Det ser ut så, men den här typen av ekvationssystem har förmodligen inga lösningar. Anledningen till detta är det brus som nästan alltid finns i verkliga data. En annan orsak kan vara avsaknaden av ett linjärt beroende, vilket vi kan försöka övervinna genom att införa ytterligare variabler som icke-linjärt beror på de ursprungliga. Låt oss titta på följande exempel:
Linjära regressioner och metoder för dess återställning
Källa: Wikipedia

Detta är ett enkelt exempel på linjär regression som visar beroendet av en variabel (på axeln Linjära regressioner och metoder för dess återställning) från en annan variabel (på axeln Linjära regressioner och metoder för dess återställning). För att det linjära ekvationssystemet som motsvarar detta exempel ska ha en lösning, måste alla punkter ligga exakt på en och samma linje. Men så är det inte. De ligger inte på en linje just på grund av störningar (eller för att antagandet om en linjär beroende var felaktigt). Därför krävs det ofta att man gör ytterligare ett antagande för att återställa den linjära beroende med verkliga data: indata innehåller störningar och dessa störningar har normalfördelning. Man kan göra antaganden om andra typer av störningar, men i överväldigande majoriteten av fallen överväger man just normalfördelning, vilket kommer att diskuteras vidare.

Metoden för maximalt sannolikhet

Så vi har antagit att det finns en slumpmässig normalt fördelad störning. Hur ska vi då agera i en sådan situation? För detta finns det inom matematik en metod som är allmänt använd metoden för maximalt sannolikhet. I korthet handlar det om att välja sannolikhetsfunktion och senare maximera den.

Vi återkommer till att återställa den linjära beroende med data som innehåller normal störning. Observera att den antagna linjära beroende är det matematiska förväntade värdet Linjära regressioner och metoder för dess återställning av den aktuella normala fördelningen. Samtidigt är sannolikheten att Linjära regressioner och metoder för dess återställning ta ett visst värde givet att det finns observerade Linjära regressioner och metoder för dess återställning, ser ut som följande:

Linjära regressioner och metoder för dess återställning

Nu sätter vi istället in Linjära regressioner och metoder för dess återställning och Linjära regressioner och metoder för dess återställning de variabler vi behöver:

Linjära regressioner och metoder för dess återställning

Det återstår bara att hitta vektorn Linjära regressioner och metoder för dess återställning, där denna sannolikhet är maximal. För att maximera en sådan funktion är det praktiskt att först logaritmera den (logaritmen av funktionen når sitt maxima vid samma punkt som själva funktionen):

Linjära regressioner och metoder för dess återställning

Detta leder i sin tur till att minimera följande funktion:

Linjära regressioner och metoder för dess återställning

För övrigt kallas detta metoden för minsta kvadrat. Ofta utelämnas alla ovanstående resonemang och denna metod används helt enkelt.

QR-faktorisering

Minimumpunkten för den angivna funktionen kan hittas genom att finna punkten där gradienten av denna funktion är noll. Gradient kommer att skrivas på följande sätt:

Linjära regressioner och metoder för dess återställning

QR-faktorisering är en matrismetod för att lösa minimiseringsproblemet som används i metoden för minsta kvadrat. I denna mån omformulerar vi ekvationen i matrisform:

Linjära regressioner och metoder för dess återställning

Så vi faktoriserar matrisen Linjära regressioner och metoder för dess återställning till matriser Linjära regressioner och metoder för dess återställning och Linjära regressioner och metoder för dess återställning och utför en rad transformationer (själva QR-faktoriseringen kommer inte att diskuteras här, endast dess användning i förhållande till den uppställda uppgiften):

Linjära regressioner och metoder för dess återställning

Matrisen Linjära regressioner och metoder för dess återställning är ortogonal. Detta gör att vi kan bli av med produkten Linjära regressioner och metoder för dess återställning:

Linjära regressioner och metoder för dess återställning

Om vi istället byter ut Linjära regressioner och metoder för dess återställning till Linjära regressioner och metoder för dess återställningfår vi Linjära regressioner och metoder för dess återställning. Med tanke på att Linjära regressioner och metoder för dess återställning är en övre triangulär matris, ser detta ut så här:

Linjära regressioner och metoder för dess återställning

Detta kan lösas med substitutionsmetoden. Elementet Linjära regressioner och metoder för dess återställning beräknas som Linjära regressioner och metoder för dess återställning, det föregående elementet Linjära regressioner och metoder för dess återställning beräknas som Linjära regressioner och metoder för dess återställning och hämta bilder från dab.semrush.com

Här är det värt att notera att den resulterande algoritmens komplexitet på grund av användningen av QR-faktorisering är Linjära regressioner och metoder för dess återställning. Trots att matrismultiplikation kan parallelliseras väl, är det inte möjligt att skriva en effektiv distribuerad version av denna algoritm.

Gradientnedstigning

När man talar om att minimera en viss funktion är det alltid värt att nämna (stochastisk) gradientnedstigning. Detta är en enkel och effektiv metod för att minimera, baserat på iterativ beräkning av gradienten för funktionen vid en punkt och därefter förflyttning i riktningen motsatt gradienten. Varje sådant steg närmar lösningen till minimum. Gradientet ser fortfarande likadant ut:

Linjära regressioner och metoder för dess återställning

Denna metod kan också parallelliseras och distribueras tack vare de linjära egenskaperna hos gradientoperatorn. Observera att i formeln ovan under summatecknet finns oberoende termer. Med andra ord kan vi beräkna gradienten oberoende för alla index Linjära regressioner och metoder för dess återställning från den första till Linjära regressioner och metoder för dess återställning, samtidigt som vi beräknar gradienten för indexen från Linjära regressioner och metoder för dess återställning till Linjära regressioner och metoder för dess återställning. Därefter adderar vi de erhållna gradienterna. Resultatet av additionen kommer att vara detsamma som om vi direkt beräknade gradienten för indexen från den första till Linjära regressioner och metoder för dess återställning. Således, om data är distribuerade över flera datadelar, kan gradienten beräknas oberoende på varje del och resultaten av dessa beräkningar kan sedan summeras för att få det slutgiltiga resultatet:

Linjära regressioner och metoder för dess återställning

Ur ett implementationsperspektiv passar detta in i paradigm MapReduce. Vid varje steg av gradientnedstigningen skickas en uppgift att beräkna gradienten till varje datanod, sedan samlas de beräknade gradienterna ihop, och resultatet av deras summering används för att förbättra resultatet.

Trots den enkla implementeringen och möjligheten att utföra i MapReduce-paradigmen har gradientnedstigning sina brister. Särskilt antalet steg som krävs för att nå konvergens är betydligt större jämfört med andra mer specialiserade metoder.

LSQR

LSQR är en annan metod för att lösa det aktuella problemet som passar både för att återställa linjär regression och för att lösa system av linjära ekvationer. Dess huvudsakliga egenskap är att den kombinerar fördelarna med matrismetoder och iterativa tillvägagångssätt. Implementationer av denna metod kan hittas i biblioteken SciPy.ts MATLAB. En beskrivning av denna metod kommer inte att ges här (den kan hittas i artikeln LSQR: An algorithm for sparse linear equations and sparse least squares). Istället kommer en metod att demonstreras som anpassar LSQR för att utföras i en distribuerad miljö.

Kärnan i LSQR-metoden är bidiagonalisering. Det är en iterativ procedur där varje iteration består av följande steg:
Linjära regressioner och metoder för dess återställning

Men om vi utgår ifrån att matrisen Linjära regressioner och metoder för dess återställning är horisontellt partitionerad kan varje iteration representeras i form av två MapReduce-steg. På så sätt minimeras datatransfereringen under varje iteration (bara vektorer med en längd som motsvarar antalet okända):

Linjära regressioner och metoder för dess återställning

Just denna metod används vid implementeringen av linjär regression i Apache Ignite ML.

Slutsats

Det finns många algoritmer för att återställa linjär regression, men inte alla av dem kan tillämpas under alla förhållanden. QR-zerlegung är utmärkt för exakta lösningar på små datamängder. Gradientnedstigning implementeras enkelt och tillåter snabbt att hitta en approximativ lösning. LSQR kombinerar de bästa egenskaperna från de två föregående algoritmerna, eftersom den kan distribueras, konvergerar snabbare jämfört med gradientnedstigning, och möjliggör tidig avstängning av algoritmen till skillnad från QR-zerlegung för att söka approximativa lösningar.

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster