{"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\/da\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"Line\u00e6r regression og metoder til dens genopretning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kilde: <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>Line\u00e6r regression er en af de grundl\u00e6ggende algoritmer inden for mange omr\u00e5der relateret til dataanalyse. \u00c5rsagen hertil er \u00e5benlys. Det er en meget simpel og forst\u00e5elig algoritme, hvilket g\u00f8r den bredt anvendelig i mange \u00e5rtier, hvis ikke hundreder, nu. Ideen er, at vi antager en line\u00e6r afh\u00e6ngighed af \u00e9n variabel fra et s\u00e6t af andre variable, og derefter fors\u00f8ger vi at genskabe denne afh\u00e6ngighed.<\/p>\n<p>Men i denne artikel vil vi ikke fokusere p\u00e5 anvendelsen af line\u00e6r regression til l\u00f8sning af praktiske opgaver. Her vil vi se p\u00e5 interessante egenskaber ved implementeringen af distribuerede algoritmer til dens genskabelse, som vi st\u00f8dte p\u00e5, da vi skrev en maskinl\u00e6ringsmodul i <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Noget grundl\u00e6ggende matematik, grundl\u00e6ggende maskinl\u00e6ringsprincipper og distribueret computing vil hj\u00e6lpe med at forst\u00e5, hvordan man kan genskabe line\u00e6r regression, selvom dataene er fordelt mellem tusindvis af noder.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Hvad handler det om?<\/h3>\n<p>\nVi st\u00e5r over for opgaven at genskabe den line\u00e6re afh\u00e6ngighed. Som inputdata gives et s\u00e6t vektorer af formodede uafh\u00e6ngige variable, hvor hver af dem svarer til en v\u00e6rdi af den afh\u00e6ngige variabel. Disse data kan repr\u00e6senteres som to matricer:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNu, da der antages en afh\u00e6ngighed, og det er en line\u00e6r en, lad os skrive vores antagelse som et matrixprodukt (for at forenkle notationen antages det her og fremad, at den frie led i ligningen er skjult bag <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, og den sidste kolonne i matricen <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> indeholder etere):<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDet ligner meget et system af line\u00e6re ligninger, g\u00f8r det ikke? Det ligner, men s\u00e5dant et system af ligninger vil sandsynligvis ikke have nogen l\u00f8sninger. \u00c5rsagen til dette er st\u00f8j, der praktisk talt findes i alle virkelige data. En anden \u00e5rsag kan v\u00e6re frav\u00e6ret af en line\u00e6r afh\u00e6ngighed som s\u00e5dan, som man kan fors\u00f8ge at tackle ved at indf\u00f8re yderligere variable, der ikke-line\u00e6rt afh\u00e6nger af de oprindelige. Lad os overveje f\u00f8lgende eksempel:<br \/>\n<img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kilde: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>Dette er et simpelt eksempel p\u00e5 line\u00e6r regression, der viser afh\u00e6ngigheden af \u00e9n variabel (p\u00e5 aksen <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) fra en anden variabel (p\u00e5 aksen <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). For the system of linear equations to have a solution, all points must lie exactly on one line. But this is not the case. They do not lie on one line precisely because of noise (or because the assumption of linear dependence was incorrect). Thus, to recover linear dependence from real data, it is usually necessary to introduce one more assumption: the input data contains noise and this noise has <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">a normal distribution<\/a><\/noindex>. Other types of noise distributions can also be assumed, but in the overwhelming majority of cases, it is specifically the normal distribution that is considered, which will be discussed further.<\/p>\n<h3>Maximum likelihood-metoden<\/h3>\n<p>\nSo, we have assumed the presence of randomly normally distributed noise. What should we do in this situation? Mathematics has a widely used approach for this. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">maksimale sandsynlighedsmetode<\/a><\/noindex>. In short, it involves selecting <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">sandsynlighedsfunktionen<\/a><\/noindex> and subsequently maximizing it.<\/p>\n<p>Returning to the restoration of linear dependence from data with normal noise, note that the presumed linear dependence represents the mathematical expectation <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> of the existing normal distribution. At the same time, the probability that <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> takes a certain value, given the presence of observed <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, looks as follows:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNow, let's substitute the necessary variables instead of <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> :<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nWe only need to find the vector <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>, for which this probability is maximized. To maximize such a function, it is convenient to first logarithm it (the logarithm of the function will reach its maximum at the same point as the function itself):<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nWhich, in turn, reduces to minimizing the following function:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nBy the way, this is called the method of <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">least squares<\/a><\/noindex>. Often, all of the above reasoning is omitted, and this method is simply used.<\/p>\n<h3>QR decomposition<\/h3>\n<p>\nThe minimum of the above function can be found by locating the point at which the gradient of this function is zero. The gradient will be written as follows:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" 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\">QR decomposition<\/a><\/noindex> is a matrix method for solving the minimization problem used in the least squares method. In this regard, let's rewrite the equation in matrix form:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nThus, we decompose the matrix <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> into matrices <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> og <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> og udf\u00f8rer en r\u00e6kke transformationer (selve QR-faktoriseringen vil ikke blive diskuteret her, kun dens anvendelse i forhold til den stillede opgave):<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMatrix <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> er ortogonal. Dette giver os mulighed for at undg\u00e5 produktet <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nOg hvis vi erstatter <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> og f\u00e5 en fungerende kommando. <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>, s\u00e5 f\u00e5r vi <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. I betragtning af at <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> er en \u00f8verste trekantet matrix, ser det s\u00e5ledes ud:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDet kan l\u00f8ses ved substitutionsmetoden. Elementet <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> er fundet som <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, det forrige element <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> er fundet som <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> og s\u00e5 videre.<\/p>\n<p>Her skal det bem\u00e6rkes, at kompleksiteten af den resulterende algoritme ved brug af QR-faktorisering er lig med <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Selvom matrixmultiplikation kan parallelliseres godt, er det ikke muligt at skrive en effektiv distribueret version af denne algoritme.<\/p>\n<h3>Gradientfald<\/h3>\n<p>\nN\u00e5r man taler om optimering af en given funktion, er det altid v\u00e6rd at huske metoden for (stochastic) gradientfald. Det er en simpel og effektiv metode til at minimere, baseret p\u00e5 iterativ beregning af gradienten af funktionen p\u00e5 et punkt og derefter flytning i retning modsat gradienten. Hvert s\u00e5dant skridt bringer l\u00f8sningen t\u00e6ttere p\u00e5 minimum. Gradientet ser dermed stadig s\u00e5dan ud:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Denne metode kan desuden lettet parallelliseres og distribueres takket v\u00e6re de line\u00e6re egenskaber ved gradientoperatoren. Bem\u00e6rk, at de uafh\u00e6ngige led i summen er indeholdt i formlen ovenfor. Med andre ord kan vi beregne gradienten uafh\u00e6ngigt for alle indekser <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> fra den f\u00f8rste til <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, samtidig med dette kan vi beregne gradienten for indekserne fra <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> op til <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>. Derefter kan de opn\u00e5ede gradienter l\u00e6gges sammen. Resultatet af summen vil v\u00e6re det samme, som hvis vi havde beregnet gradienten med det samme for indekserne fra den f\u00f8rste til <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. Dermed, hvis dataene er fordelt mellem flere datadelinger, kan gradienten beregnes uafh\u00e6ngigt p\u00e5 hver del, og derefter kan resultaterne af disse beregninger summeres for at opn\u00e5 det endelige resultat:<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Set fra implementeringssynspunktet falder dette ind under paradigmet <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. I hvert skridt af gradientfaldet sendes der en opgave til hver dataknode for at beregne gradienten, derefter samles de beregnede gradienter, og resultatet af deres summation bruges til at forbedre resultatet.<\/p>\n<p>P\u00e5 trods af den enkle implementering og muligheden for at udf\u00f8re i MapReduce-paradigmet har gradientfaldet ogs\u00e5 sine ulemper. Is\u00e6r er antallet af skridt, der kr\u00e6ves for at n\u00e5 konvergens, betydeligt h\u00f8jere sammenlignet med andre, mere specialiserede metoder.<\/p>\n<h3>LSQR<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/\">LSQR<\/a><\/noindex> er endnu en metode til at l\u00f8se det stillede problem, der er velegnet til b\u00e5de genopbygning af line\u00e6r regression og l\u00f8sning af systemer af line\u00e6re ligninger. Dens hovedkarakteristika er, at den kombinerer fordelene fra matrixmetoder og den iterative tilgang. Implementeringer af denne metode kan findes i biblioteket <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>. Vi kan g\u00f8re dette, da vi har ledige porte (eller vi frig\u00f8r dem p\u00e5 forh\u00e5nd) i switchene <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB<\/a><\/noindex>. Beskrivelsen af denne metode vil ikke blive pr\u00e6senteret her (den kan findes i artiklen <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>). I stedet vil der blive vist en tilgang til at tilpasse LSQR til udf\u00f8relse i et distribueret milj\u00f8.<\/p>\n<p>Kernen i LSQR-metoden er <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">bidiagonalisationsproceduren<\/a><\/noindex>. Dette er en iterativ procedure, hvor hver iteration best\u00e5r af f\u00f8lgende trin:<br \/>\n<img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen hvis vi antager, at matrixen er vandret partitioneret, kan hver iteration pr\u00e6senteres som to MapReduce-trin. P\u00e5 denne m\u00e5de lykkes det at minimere datasendinger under hver iteration (kun vektorer med l\u00e6ngde svarende til antallet af ukendte): <img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> Netop denne tilgang anvendes ved implementeringen af line\u00e6r regression i<\/p>\n<p><img decoding=\"async\" alt=\"Line\u00e6r regression og metoder til dens genopretning\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nApache Ignite ML <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\">Der findes mange algoritmer til genopbygning af line\u00e6r regression, men ikke alle kan anvendes under alle omst\u00e6ndigheder. QR-faktorisering egner sig glimrende til pr\u00e6cise l\u00f8sninger p\u00e5 sm\u00e5 datam\u00e6ngder. Gradientfaldet implementeres nemt og muligg\u00f8r hurtigt at finde en tiln\u00e6rmelsesl\u00f8sning. LSQR kombinerer de bedste egenskaber fra de to tidligere algoritmer, da det kan distribueres, konvergerer hurtigere i forhold til gradientfaldet og tillader tidlig stop af algoritmen i mods\u00e6tning til QR-faktorisering for at finde en tiln\u00e6rmelsesl\u00f8sning.<\/a><\/noindex>.<\/p>\n<h3>Konklusion<\/h3>\n<p>\nBeta-versionen af Vivaldi-browseren er tilg\u00e6ngelig til Android<br \/>\n<br \/>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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\udd47Line\u00e6r regression og metoder til dens genopbygning | ProHoster","description":"Kilde:","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}