
Het doel van dit artikel is om ondersteuning te bieden aan beginnende datascientists. In dit artikel hebben we op eenvoudige wijze drie manieren besproken om de vergelijking van lineaire regressie op te lossen: analytische oplossing, gradient descent en stochastische gradient descent. Voor de analytische oplossing hebben we de formule toegepast
. In dit artikel, zoals uit de titel blijkt, zullen we het gebruik van deze formule onderbouwen, of met andere woorden, deze zelf afleiden.
Waarom is het zinvol om extra aandacht te besteden aan de formule?
?
Het is meestal met de matrixvergelijking dat men begint met lineaire regressie. Daarbij zijn gedetailleerde afleidingen van hoe de formule is afgeleid, zeldzaam.
Bijvoorbeeld, in de cursussen machine learning van Yandex, wanneer deelnemers kennismaken met regulering, wordt aangeboden gebruik te maken van functies uit de bibliotheek sklearn, terwijl er geen woord wordt vermeld over de matrixrepresentatie van het algoritme. Precies op dit punt kan er bij sommige deelnemers de behoefte ontstaan om dit onderwerp dieper te bestuderen ā om code te schrijven zonder gebruik te maken van kant-en-klare functies. En daarvoor moet men eerst de vergelijking met de regulator in matrixvorm voorstellen. Dit artikel zal precies diegenen helpen die deze vaardigheden willen verwerven. Laten we beginnen.
Initiƫle voorwaarden
Doelstellingen
We hebben een reeks waarden van de doelvariabele. Zo kan de doelvariabele bijvoorbeeld de prijs van een bepaalde activa zijn: olie, goud, tarwe, dollar, enzovoort. Hiermee bedoelen we met een reeks waarden van de doelvariabele het aantal waarnemingen. Deze waarnemingen kunnen bijvoorbeeld de maandprijzen van olie over een jaar zijn, waardoor we 12 waarden van de doelvariabele zullen hebben. Laten we symbolen introduceren. We zullen elke waarde van de doelvariabele aanduiden als
. In totaal hebben we
waarnemingen, en dus kunnen we onze waarnemingen voorstellen als
.
Regressoren
Laten we aannemen dat er factoren zijn die in zekere mate de waarden van de doelvariable verklaren. Bijvoorbeeld, de wisselkoers van de dollar ten opzichte van de roebel wordt sterk beĆÆnvloed door de olieprijs, de rentevoet van de Fed, enz. Dergelijke factoren worden regressors genoemd. Dit betekent dat aan elke waarde van de doelvariable een waarde van de regressor moet worden gekoppeld; dat wil zeggen, als we 12 doelwaarden voor elke maand in 2018 hebben, moeten er ook 12 regressorwaarden in dezelfde periode zijn. Laten we de waarden van elke regressor aanduiden door
. Laten we in ons geval hebben
regressors (d.w.z.
factoren die invloed hebben op de waarden van de doelvariable). Dat betekent dat onze regressors als volgt kunnen worden gepresenteerd: voor de 1e regressor (bijvoorbeeld, de olieprijs):
, voor de 2e regressor (bijvoorbeeld, de rentevoet van de Fed):
, voor de Ā«
-deĀ» regressor: 
De afhankelijkheid van de doelvariabelen van de regressors
Laten we aannemen dat de afhankelijkheid van de doelvariable
van de regressors Ā«
-deĀ» observatie kan worden uitgedrukt in de vorm van een lineaire regressievergelijking:

, waar
ā Ā«
-deĀ» waarde van de regressor van 1 tot
,
ā het aantal regressors van 1 tot 
ā hellingscoĆ«fficiĆ«nten die de hoeveelheid vertegenwoordigen waarmee de berekende doelvariable gemiddeld verandert bij een wijziging van de regressor.
Met andere woorden, voor elke (met uitzondering van
) regressor bepalen we de «eigen» coëfficiënt
, en vermenigvuldigen vervolgens de coëfficiënten met de waarden van de regressors «
-deĀ» observatie, waardoor we een benadering van Ā«
-deĀ» doelvariable verkrijgen.
Daarom moeten we zulke coƫfficiƫnten selecteren
, waarbij de waarden van onze approximatiefunctie
maximaal dicht bij de waarden van de doelvariabelen liggen.
Evaluatie van de kwaliteit van de approximatiefunctie
We gaan de kwaliteit van de approximatiefunctie bepalen met behulp van de methode van de kleinste kwadraten. De kwaliteitsfunctie krijgt in dat geval de volgende vorm:

We moeten zulke waarden voor de coƫfficiƫnten $w$ vinden waarbij de waarde
het kleinste zal zijn.
We brengen de vergelijking naar matrixvorm
Vectorrepresentatie
Om te beginnen, om het ons gemakkelijker te maken, moeten we naar de vergelijking van de lineaire regressie kijken en opmerken dat de eerste coƫfficiƫnt
wordt niet vermenigvuldigd met een enkele regressort. Wanneer we de gegevens naar matrixvorm omzetten, zal deze omstandigheid de berekeningen aanzienlijk compliceren. In dit verband stellen we voor om een extra regressort in te voeren voor de eerste coƫfficiƫnt.
en deze gelijk te stellen aan ƩƩn. Met andere woorden, elk "
-e" waarde van deze regressort gelijk te stellen aan ƩƩn - want bij vermenigvuldigen met ƩƩn verandert er met betrekking tot de resultaatberekeningen niets, en wat betreft de matrixvermenigvuldigingsregels zal onze inspanning aanzienlijk worden verminderd.
Laten we nu voor een korte periode, met het doel het materiaal te vereenvoudigen, aannemen dat we slechts ƩƩn "
-e" observatie hebben. Laten we de waarden van de regressoren van de "
-e" observatie beschouwen als een vector.
De vector
heeft een dimensie van
, namelijk de
rijen en 1 kolom:

Laten we de gezochte coƫfficiƫnten weergeven in de vorm van een vector
, met een dimensie van
:

De vergelijking van lineaire regressie voor de "
-e" observatie zal de volgende vorm aannemen:

De functie voor het beoordelen van de kwaliteit van het lineaire model zal de volgende vorm aannemen:

Laten we opmerken dat we in overeenstemming met de matrixvermenigvuldigingsregels de vector moesten transponeren
.
Matrixrepresentatie
Als gevolg van de vermenigvuldiging van de vectors krijgen we een getal:
, wat te verwachten was. Dit getal is de benadering van de "
-e" doelwaarde. Maar we hebben niet de benadering van ƩƩn doelwaarde nodig, maar van allemaal. Daarom schrijven we alle "
-e" regressoren in matrixformaat.
. De verkregen matrix heeft een dimensie van
:

Nu zal de vergelijking van lineaire regressie de volgende vorm aannemen:

Laten we de waarden van de doelindicatoren (alle
) aanduiden met de vector
met een dimensie van
:

Nu kunnen we de vergelijking van de kwaliteit van het lineaire model in matrixvorm opschrijven:

Eigenlijk krijgen we uit deze formule de ons bekende formule 
Hoe wordt dit gedaan? We brengen de haakjes naar buiten, differentiƫren, transformeren de verkregen uitdrukkingen, enzovoort, en dat is precies wat we nu zullen doen.
Matrixtransformaties
We zullen de haakjes openen.


We bereiden de vergelijking voor op differentiatie.
Om dit te doen, zullen we enkele transformaties uitvoeren. In de volgende berekeningen zal het handiger zijn als de vector
aan het begin van elk product in de vergelijking wordt weergegeven.
Transformatie 1

Hoe is dit ontstaan? Om deze vraag te beantwoorden, hoeven we alleen maar naar de afmetingen van de te vermenigvuldigen matrixen te kijken en te zien dat we een getal of anderszins krijgen.
.
Laten we de afmetingen van de matrixuitdrukkingen opschrijven.



Transformatie 2

We schrijven het op dezelfde manier als transformatie 1.


Aan de uitkomst krijgen we een vergelijking die we moeten differentiƫren:

We differentiƫren de functie voor het evalueren van het model.
We differentiƫren naar de vector.
:




Vragen waarom
zou er niet moeten zijn, maar we zullen de afgeleiden in de twee andere uitdrukkingen uitgebreider bespreken.
Differentiatie 1
We zullen de differentiatie uitschrijven: 
Om de afgeleide van een matrix of vector te bepalen, moeten we kijken naar wat erin zit. Kijk:



Laten we het product van de matrixen aanduiden
door de matrix
. De matrix
is vierkant en bovendien symmetrisch. Deze eigenschappen zullen we later nodig hebben, laten we ze onthouden. De matrix
heeft een dimensie van
:

is nu onze taak om de vectoren correct met de matrix te vermenigvuldigen en niet "tweemaal twee is vijf" te krijgen, dus laten we ons concentreren en uiterst voorzichtig zijn.




Maar we hebben een ingewikkelde uitdrukking gekregen! Eigenlijk hebben we een getal gekregen ā een scalar. En nu gaan we echt over tot differentiatie. We moeten de afgeleide van de verkregen uitdrukking naar elke coefficient vinden.
en we krijgen een vector van afmetingen
. Voor alle zekerheid zal ik de procedures uitschrijven:
1) we differentiƫren naar
, we krijgen: 
2) we differentiƫren naar
, we krijgen: 
3) we differentiƫren naar
, we krijgen: 
Aan de uitkomst ā de beloofde vector van grootte
:

Als we de vector beter bekijken, kunnen we opmerken dat de linker en de bijbehorende rechter elementen van de vector zo kunnen worden gegroepeerd dat we uiteindelijk uit de gepresenteerde vector de vector kunnen onderscheiden
van grootte
. Bijvoorbeeld,
(linker element van de bovenste rij van de vector)
(rechter element van de bovenste rij van de vector) kan worden voorgesteld als
, met behulp van 1 bit, gelijk aan 0,
ā als
enzovoorts voor elke rij. Laten we groeperen:

Laten we de vector
buiten halen en als resultaat krijgen we:

Nu, laten we kijken naar de verkregen matrix. De matrix is de som van twee matrixen
:

Laten we herinneren dat we eerder een belangrijke eigenschap van de matrix hebben opgemerkt
ā ze is symmetrisch. Gezien deze eigenschap kunnen we met vertrouwen stellen dat de uitdrukking
gelijk is aan
. Dit is gemakkelijk te verifiƫren door het elementgewijs product van de matrixen uit te breiden.
. We zullen dit hier niet doen; degenen die willen kunnen zelf een controle uitvoeren.
Laten we teruggaan naar onze expressie. Na onze transformaties is hij geworden zoals we hem wilden zien:

Dus we hebben de eerste differentiatie gedaan. Laten we naar de tweede expressie gaan.
Differentiatie 2

Laten we de bekende weg volgen. Het zal veel korter zijn dan de vorige, dus blijf dichtbij het scherm.
Laten we de vectoren en de matrix element voor element bekijken:



Laten we tijdelijk de twee weglaten uit de berekeningen ā die speelt geen grote rol, we voegen hem later weer toe. Laten we de vectoren met de matrix vermenigvuldigen. Laten we eerst de matrix
vermenigvuldigen met de vector
, hier hebben we geen beperkingen. We krijgen een vector van de grootte
:

Laten we de volgende stap uitvoeren ā vermenigvuldig de vector
met de verkregen vector. Aan het einde krijgen we een getal:

Dat is wat we gaan differentiƫren. We krijgen een vector van dimensie
:

Herinner je je iets? Juist! Dit is het product van de matrix.
vermenigvuldigen met de vector
.
Op deze manier is de tweede differentiatie met succes afgerond.
Ter afsluiting
Nu weten we hoe de gelijkheid tot stand kwam.
.
Tot slot beschrijven we een snelle manier om de basisformules om te zetten.
Laten we de kwaliteit van het model beoordelen overeenkomstig de methode van de kleinste kwadraten:


Laten we de verkregen expressie differentiƫren:


Literatuur
Internetbronnen:
1)
2)
3)
4)
Leerboeken, verzamelingen van opgaven:
1) Samenvatting van colleges over hogere wiskunde: volledige cursus / D.T. Pismennyi ā 4e editie ā Moskou: Iris-press, 2006
2) Toegepaste regressieanalyse / N. Draper, G. Smith ā 2e editie ā Moskou: FinanciĆ«n en statistiek, 1986 (vertaling uit het Engels)
3) Opgaven voor het oplossen van matrixvergelijkingen:
Bron: habr.com
