{"id":37955,"date":"2019-10-31T22:20:47","date_gmt":"2019-10-31T19:20:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\/"},"modified":"2019-10-31T22:20:47","modified_gmt":"2019-10-31T19:20:47","slug":"linejnaya-regressiya-i-metody-eyo-vosstanovleniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"Lineaire regressie en methoden voor het herstel ervan","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Bron: <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>Lineaire regressie is een van de basisalgoritmen voor veel gebieden die verband houden met data-analyse. De reden hiervoor is duidelijk. Het is een zeer eenvoudig en begrijpelijk algoritme, wat bijdraagt aan het brede gebruik ervan al tientallen, zo niet honderden jaren. Het idee is dat we een lineaire afhankelijkheid van \u00e9\u00e9n variabele veronderstellen van een set andere variabelen, en vervolgens proberen we deze afhankelijkheid te herstellen.<\/p>\n<p>Maar dit artikel gaat niet over de toepassing van lineaire regressie voor het oplossen van praktische problemen. Hier worden interessante kenmerken van de implementatie van gedistribueerde algoritmen voor het herstel ervan besproken, waarmee we te maken kregen bij het schrijven van de machine learning-module in <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Een beetje basiswiskunde, fundamenten van machine learning en gedistribueerde computing zullen helpen begrijpen hoe we lineaire regressie kunnen herstellen, zelfs als de gegevens zijn verspreid over duizenden knooppunten.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Waar gaat het over?<\/h3>\n<p>\nWe hebben de taak om een lineaire afhankelijkheid te herstellen. Als invoergegevens krijgen we een set vectoren van verondersteld onafhankelijke variabelen, elk gekoppeld aan een bepaalde waarde van de afhankelijke variabele. Deze gegevens kunnen worden weergegeven in de vorm van twee matrices:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNu, aangezien we een afhankelijkheid veronderstellen, en bovendien ook nog lineair, laten we onze hypothese opschrijven in de vorm van matrixvermenigvuldiging (ter vereenvoudiging van de notatie wordt hier en in het vervolg aangenomen dat de constante term van de vergelijking verborgen is achter <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, en de laatste kolom van de matrix <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> bevat enen):<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nHet lijkt heel erg op een systeem van lineaire vergelijkingen, nietwaar? Het lijkt zo, maar deze vergelijking zal hoogstwaarschijnlijk geen oplossingen hebben. De reden hiervoor is de ruis die in bijna alle werkelijke gegevens aanwezig is. Een andere reden kan zijn het ontbreken van een echte lineaire afhankelijkheid, waarmee we kunnen proberen te worstelen door extra variabelen in te voeren die niet-lineair afhangen van de oorspronkelijke. Laten we het volgende voorbeeld bekijken:<br \/>\n<img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Bron: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>Dit is een eenvoudig voorbeeld van lineaire regressie dat de afhankelijkheid van \u00e9\u00e9n variabele (langs de as <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) van een andere variabele (langs de as <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). Om te voldoen aan het voorbeeld moet het systeem van lineaire vergelijkingen een oplossing hebben, waarbij alle punten precies op \u00e9\u00e9n lijn liggen. Maar dat is niet het geval. Ze liggen niet op \u00e9\u00e9n lijn juist vanwege de ruis (of omdat de veronderstelling over de aanwezigheid van een lineaire afhankelijkheid onjuist was). Om de lineaire afhankelijkheid te herstellen op basis van echte gegevens, is het gebruikelijk om nog een veronderstelling in te voeren: de invoergegevens bevatten ruis en deze ruis heeft <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">een normale verdeling<\/a><\/noindex>. Je kunt ook veronderstellingen doen over andere soorten van ruisverdelingen, maar in de overgrote meerderheid van de gevallen wordt de normale verdeling beschouwd, waarover hier verder zal worden gesproken.<\/p>\n<h3>De methode van maximale waarschijnlijkheid<\/h3>\n<p>\n. Dus we nemen aan dat er een willekeurige normaal verdeelde ruis is. Hoe gaan we om met zo'n situatie? Hiervoor bestaat er in de wiskunde een populaire en veelgebruikte methode, <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">de methode van maximale waarschijnlijkheid<\/a><\/noindex>. In het kort komt het erop neer dat we <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">de waarschijnlijkheidsfunctie<\/a><\/noindex> kiezen en deze vervolgens maximaliseren.<\/p>\n<p>Laten we terugkeren naar het herstellen van de lineaire afhankelijkheid met gegevens met normale ruis. Opmerkelijk is dat de veronderstelde lineaire afhankelijkheid het mathematisch verwachtingswaarde is <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> van de huidige normale verdeling. Tegelijkertijd is de kans dat <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> een bepaalde waarde aanneemt, afhankelijk van de waargenomen <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, ziet het er als volgt uit:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nLaten we nu de juiste variabelen substitueren: <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> We moeten alleen de vector vinden<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n, waar de kans maximaal is. Om zo'n functie te maximaliseren, is het handig om deze eerst te logaritmeren (de logaritme van de functie bereikt zijn maximum op hetzelfde punt als de functie zelf): <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>Wat op zijn beurt neerkomt op het minimaliseren van de volgende functie:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nOverigens wordt dit de methode genoemd<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nvan de kleinste kwadraten <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">. Vaak worden alle bovenstaande redeneringen overgeslagen en wordt deze methode eenvoudig toegepast.<\/a><\/noindex>QR-decompositie<\/p>\n<h3>. Het minimum van de hierboven genoemde functie kan worden gevonden door het punt te vinden waar de gradi\u00ebnt van deze functie gelijk is aan nul. De gradi\u00ebnt zal als volgt worden weergegeven:<\/h3>\n<p>\nis een matrixmethode voor het oplossen van een minimaliseringsprobleem dat in de methode van de kleinste kwadraten wordt gebruikt. Daarom herschrijven we de vergelijking in matrixvorm:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/1581c46f8fa625826ae2f76ec561dc3f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/QR_decomposition\">. Het minimum van de hierboven genoemde functie kan worden gevonden door het punt te vinden waar de gradi\u00ebnt van deze functie gelijk is aan nul. De gradi\u00ebnt zal als volgt worden weergegeven:<\/a><\/noindex> Dus we decomponeren de matrix<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nin matrices <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> op de matrices <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> en we voeren een aantal transformaties uit (het algoritme voor QR-decompositie wordt hier niet behandeld, alleen het gebruik ervan met betrekking tot de gestelde taak):<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMatrix <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> is orthogonaal. Dit stelt ons in staat om het product kwijt te raken van <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAls we vervangen <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> en een werkende opdracht krijgen. <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>, dan krijgen we <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. Gezien dat <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> een bovenste driehoeksmatrix is, ziet dit er als volgt uit:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDit kan worden opgelost met de substitutiemethode. Het element <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> wordt gevonden als <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, het vorige element <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> wordt gevonden als <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> en zo verder.<\/p>\n<p>Het is vermeldenswaard dat de complexiteit van het resulterende algoritme door het gebruik van QR-decompositie gelijk is aan <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Ondanks het feit dat de matrixvermenigvuldiging goed kan worden geparallelliseerd, is het niet mogelijk om een effici\u00ebnte gedistribueerde versie van dit algoritme te schrijven.<\/p>\n<h3>Gradi\u00ebntafdalingsmethode<\/h3>\n<p>\nAls we het hebben over de minimalisatie van een bepaalde functie, is het altijd goed om de (stochastische) gradi\u00ebntafdalingsmethode in gedachten te houden. Dit is een eenvoudige en effectieve methode voor minimalisatie, gebaseerd op iteratieve berekening van de gradi\u00ebnt van de functie op een punt en de daaropvolgende verschuiving in de tegenrichting van de gradi\u00ebnt. Elke dergelijke stap brengt de oplossing dichter bij het minimum. De gradi\u00ebnt ziet er als volgt uit:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Bovendien kan deze methode goed worden geparallelliseerd en verdeeld vanwege de lineaire eigenschappen van de gradi\u00ebntoperator. Merk op dat in de bovenstaande formule onder het somteken onafhankelijke termen staan. Met andere woorden, we kunnen de gradi\u00ebnt onafhankelijk voor alle indexen berekenen <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> van de eerste tot <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, terwijl we parallel de gradi\u00ebnt voor de indexen van <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> tot <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>berekenen. Vervolgens worden de resulterende gradi\u00ebnten bij elkaar opgeteld. Het resultaat van de optelling zal hetzelfde zijn als als we de gradi\u00ebnt onmiddellijk voor de indexen van de eerste tot <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. Dus, als de gegevens zijn verdeeld over verschillende gegevensdelen, kan de gradi\u00ebnt onafhankelijk op elk deel worden berekend, en vervolgens kunnen de resultaten van deze berekeningen worden opgeteld om het uiteindelijke resultaat te krijgen:<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Vanuit het perspectief van implementatie past dit binnen de paradigma <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. Bij elke stap van de gradi\u00ebntafdalingsmethode wordt een taak naar elke gegevensknop verzonden om de gradi\u00ebnt te berekenen, vervolgens worden de berekende gradi\u00ebnten samengevoegd en het resultaat van hun optelling wordt gebruikt om het resultaat te verbeteren.<\/p>\n<p>Hoewel gradient descent eenvoudig te implementeren is en uitgevoerd kan worden in de MapReduce-paradigma, heeft het ook zijn nadelen. In het bijzonder is het aantal stappen dat nodig is om convergentie te bereiken veel groter in vergelijking met andere, meer gespecialiseerde methoden.<\/p>\n<h3>LSQR<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/\">LSQR<\/a><\/noindex> is een andere methode om het probleem op te lossen, die zowel geschikt is voor het herstel van lineaire regressie als voor het oplossen van systemen van lineaire vergelijkingen. Het belangrijkste kenmerk is dat het de voordelen van matrixmethoden en een iteratieve aanpak combineert. Implementaties van deze methode zijn te vinden in de bibliotheek <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>, alsook in <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB<\/a><\/noindex>. Een beschrijving van deze methode zal hier niet worden gegeven (deze is te vinden in het artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/lsqr-toms82a.pdf\">LSQR: An algorithm for sparse linear equations and sparse least squares<\/a><\/noindex>). In plaats daarvan zal een benadering worden gedemonstreerd die het mogelijk maakt om LSQR aan te passen aan een gedistribueerde omgeving.<\/p>\n<p>De basis van de LSQR-methode is <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">de procedure van badiagonalisatie<\/a><\/noindex>. Dit is een iteratieve procedure, waarbij elke iteratie uit de volgende stappen bestaat:<br \/>\n<img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaar als we ervan uitgaan dat de matrix <img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> horizontaal is gepartitioneerd, kan elke iteratie worden weergegeven als twee MapReduce-stappen. Dit minimaliseert de gegevensoverdracht tijdens elke iteratie (alleen vectoren met een lengte die gelijk is aan het aantal onbekenden):<\/p>\n<p><img decoding=\"async\" alt=\"Lineaire regressie en methoden voor het herstel ervan\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDeze benadering wordt gebruikt bij de implementatie van lineaire regressie in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/apache\/ignite\/blob\/master\/modules\/ml\/src\/main\/java\/org\/apache\/ignite\/ml\/math\/isolve\/lsqr\/AbstractLSQR.java\">Apache Ignite ML<\/a><\/noindex>.<\/p>\n<h3>Conclusie<\/h3>\n<p>\nEr zijn veel algoritmen voor het herstellen van lineaire regressie, maar niet alle kunnen onder alle omstandigheden worden toegepast. QR-ontbinding is uitstekend voor nauwkeurige oplossingen op kleine datasets. Gradient descent is eenvoudig te implementeren en stelt in staat om snel een benadering van de oplossing te vinden. LSQR combineert de beste eigenschappen van de vorige twee algoritmen, aangezien het kan worden gedistribueerd, sneller convergeert in vergelijking met gradient descent en bovendien een vroegtijdige stop van het algoritme mogelijk maakt, in tegenstelling tot QR-ontbinding voor het vinden van een benaderde oplossing.<br \/>\n<br \/>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465743\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: xkcd \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u044d\u0442\u043e\u043c\u0443 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0433\u043e \u0448\u0438\u0440\u043e\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0442\u043d\u0438, \u043b\u0435\u0442. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28483,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0451 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lineaire regressie en methoden voor het herstel ervan | ProHoster","description":"Bron:","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0451 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster","og:description":"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:47+00:00","article:modified_time":"2019-10-31T19:20:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37955","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:55:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:17:23","updated":"2026-01-23 19:55:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}