{"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\/sl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"Linearna regresija in metode njene obnovitve","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Izvor: <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>Linearno regresijo lahko \u0161tejemo za enega od osnovnih algoritmov v mnogih podro\u010djih, povezanih z analizo podatkov. Razlog za to je o\u010diten. To je zelo preprost in razumljiv algoritem, kar spodbuja njegovo \u0161iroko uporabo \u017ee desetletja, \u010de ne stoletja. Ideja je enostavna; predpostavljamo linearno odvisnost ene spremenljivke od niza drugih spremenljivk, nato pa posku\u0161amo to odvisnost obnoviti.<\/p>\n<p>Vendar pa v tem \u010dlanku ne bomo obravnavali uporabe linearne regresije za re\u0161evanje prakti\u010dnih te\u017eav. Obravnavali bomo zanimive zna\u010dilnosti izvajanja porazdeljenih algoritmov za njeno obnovitev, s katerimi smo se sre\u010dali pri pisanju modula za strojno u\u010denje v <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Nekaj osnovne matematike, temelj strojnega u\u010denja in porazdeljenega ra\u010dunalni\u0161tva bo pomagalo razumeti, kako obnoviti linearno regresijo, tudi \u010de so podatki razpr\u0161eni med tiso\u010di vozli\u0161\u010d.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>O \u010dem govorimo?<\/h3>\n<p>\nPred nami je naloga obnove linearne odvisnosti. Kot vhodni podatki imamo mno\u017eico vektorjev domnevno neodvisnih spremenljivk, katerim je pripojeno dolo\u010deno vrednost odvisne spremenljivke. Te podatke lahko predstavimo v obliki dveh matrik:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nZdaj, saj predpostavljamo odvisnost, in \u0161e to linearno, zapi\u0161imo na\u0161e predpostavke v obliki produkta matrik (za poenostavitev zapisa se bo tukaj in naprej domnevalo, da je prosti \u010dlen ena\u010dbe skrit za <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, zadnji stolpec matrike <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> vsebuje enice):<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nZelo podobno kot sistem linearnih ena\u010db, a ne? Zdi se, vendar re\u0161itve za tak sistem ena\u010db verjetno ne bo. Razlog je \u0161um, ki je prisoten v skoraj vseh realnih podatkih. Prav tako lahko razlog za to pomanjkanje linearne odvisnosti, s katero se lahko borimo z uvedbo dodatnih spremenljivk, ki so nelinearno odvisne od izvirnih. Oglejmo si naslednji primer:<br \/>\n<img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Izvor: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>To je preprost primer linearne regresije, ki prikazuje odvisnost ene spremenljivke (na osi <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) od druge spremenljivke (na osi <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). Da bi sistem linearnih jedna\u010dina imao re\u0161enje, sve ta\u010dke moraju le\u017eati ta\u010dno na jednoj pravoj. Me\u0111utim, to nije slu\u010daj. A ne le\u017ee na jednoj pravoj upravo zbog \u0161uma (ili zato \u0161to je pretpostavka o postojanju linearne zavisnosti bila pogre\u0161na). Tako da je, kako bismo rekonstruisali linearnu zavisnost prema stvarnim podacima, obi\u010dno potrebno uvesti jo\u0161 jednu pretpostavku: ulazni podaci sadr\u017ee \u0161um i taj \u0161um ima <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">normalnu raspodelu<\/a><\/noindex>. Mogu se praviti pretpostavke i o drugim tipovima raspodela \u0161uma, ali u prete\u017enoj ve\u0107ini slu\u010dajeva se razmatra ba\u0161 normalna raspodela, o kojoj \u0107e biti re\u010di u nastavku.<\/p>\n<h3>Metod maksimalne verovatno\u0107e<\/h3>\n<p>\n. Dakle, pretpostavili smo prisustvo slu\u010dajnog normalno raspore\u0111enog \u0161uma. \u0160ta u\u010diniti u takvoj situaciji? Za ovaj slu\u010daj u matematici postoji i \u0161iroko se koristi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">metod maksimalne verovatno\u0107e<\/a><\/noindex>. Ukratko, su\u0161tina je u odabiru <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">funkcije verovatno\u0107e<\/a><\/noindex> i njenoj kasnijoj maksimalizaciji.<\/p>\n<p>Vra\u0107amo se rekonstrukciji linearne zavisnosti prema podacima sa normalnim \u0161umom. Prime\u0107ujemo da predlo\u017eena linearna zavisnost predstavlja matemati\u010dko o\u010dekivanje <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> postoje\u0107eg normalnog rasporeda. U isto vreme, verovatno\u0107a da <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> uzima odre\u0111enu vrednost, pod uslovom da su prisutni posmatrani <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, izgleda ovako:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nSada \u0107emo umesto <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> ubaciti potrebne varijable:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nPreostaje samo da prona\u0111emo vektor <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>, pri kojem je ova verovatno\u0107a maksimizovana. Da bismo maksimalizovali takvu funkciju, zgodno je prvo je prilogarifmovati (logaritam funkcije \u0107e dosti\u0107i maksimum u istoj ta\u010dki kao i sama funkcija):<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n\u0160to, zauzvrat, svodi na minimizaciju slede\u0107e funkcije:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nUsput, ovo se naziva metodom <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">najmanjih kvadrata<\/a><\/noindex>. \u010cesto se sve navedene rasprave presko\u010de i koristi se samo ova metoda.<\/p>\n<h3>QR razlaganje<\/h3>\n<p>\nMinimum navedene funkcije mo\u017ee se na\u0107i ako se prona\u0111e ta\u010dka u kojoj je gradijent ove funkcije jednak nuli. A gradijent \u0107e biti zapisan na slede\u0107i na\u010din:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" 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 razlaganje<\/a><\/noindex> je matri\u010dna metoda re\u0161avanja problema minimizacije koja se koristi u metodu najmanjih kvadrata. U tom svetlu, prepisujemo jedna\u010dinu u matri\u010dnom obliku:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDakle, raspore\u0111ujemo matricu <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> na matrice <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> in <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> in izvajamo vrsto transformacij (sam algoritem QR razcepitve tukaj ne bo obravnavan, le njegova uporaba v zvezi z zastavljeno nalogo):<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMatrika <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> je ortogonalna. To nam omogo\u010da, da se znebimo produkta <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n\u010ce zamenjamo <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> na <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>, dobimo <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. Glede na to, da <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> je zgornja trikotna matrika, to izgleda takole:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nTo lahko re\u0161imo z metodo substitucije. Element <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> se izra\u010duna kot <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, prej\u0161nji element <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> se izra\u010duna kot <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> in tako naprej.<\/p>\n<p>Tukaj je treba omeniti, da je kompleksnost nastalega algoritma zaradi uporabe QR razcepitve enaka <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Kljub temu, da se mno\u017eenje matric dobro paralelizira, se u\u010dinkovita razpr\u0161ena razli\u010dica tega algoritma ne zdi mogo\u010da.<\/p>\n<h3>Gradientni spust<\/h3>\n<p>\nKo govorimo o minimizaciji neke funkcije, se vedno spomnimo na metodo (stohasti\u010dnega) gradientnega spu\u0161\u010danja. To je preprosta in u\u010dinkovita metoda minimizacije, ki temelji na iterativnem izra\u010dunu gradienta funkcije v to\u010dki in njenem kasnej\u0161em premikanju v nasprotno smer od gradienta. Vsak tak korak pribli\u017ea re\u0161itev k minimumu. Gradient je pri tem videti enako:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ta metoda se dobro paralelizira in razporeja zaradi linearnih lastnosti gradientnega operatorja. Opa\u017eamo, da so v zgoraj navedeni formuli pod znakom se\u0161tevka neodvisni \u010dlani. Z drugimi besedami, gradient lahko izra\u010dunamo neodvisno za vse indekse <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> od prvega do <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, hkrati pa izra\u010dunamo gradient za indekse od <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> do <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>. Nato se se\u0161tejejo pridobljeni gradienti. Rezultat se\u0161tevanja bo enak, kot \u010de bi neposredno izra\u010dunali gradient za indekse od prvega do <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. Tako, \u010de so podatki razdeljeni med ve\u010d delov podatkov, se gradient lahko izra\u010duna neodvisno na vsaki delu, nato pa se rezultati teh izra\u010dunov lahko se\u0161tejejo za pridobitev kon\u010dnega rezultata:<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Z vidika implementacije to sledi paradigmi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. Na vsakem koraku gradientnega spu\u0161\u010danja se vsakemu podatkovnemu vozli\u0161\u010du po\u0161lje naloga za izra\u010dun gradienta, nato se izra\u010dunani gradienti zberejo skupaj, in rezultat njihovega se\u0161tevanja se uporablja za izbolj\u0161anje rezultata.<\/p>\n<p>Kljub svoji preprostosti pri implementaciji in mo\u017enosti izvajanja v paradigmi MapReduce ima gradientni spust tudi svoje pomanjkljivosti. Zlasti je \u0161tevilo korakov, potrebnih za dosego konvergence, znatno ve\u010dje v primerjavi z drugimi bolj specializiranimi metodami.<\/p>\n<h3>LSQR<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/\">LSQR<\/a><\/noindex> je \u0161e ena metoda za re\u0161evanje zastavljenega problema, ki je primerna tako za obnovo linearne regresije kot za re\u0161evanje sistemov linearnih ena\u010db. Njegova glavna zna\u010dilnost je, da zdru\u017euje prednosti matri\u010dnih metod in iterativnega pristopa. Implementacije te metode so na voljo tako v knji\u017enicah <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>, kot tudi v <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB-u.<\/a><\/noindex>. Opis te metode ne bo podan (lahko ga najdete v \u010dlanku <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>). Namesto tega bo prikazan pristop, ki omogo\u010da prilagajanje LSQR za izvajanje v distribuiranem okolju.<\/p>\n<p>Osnova metode LSQR je <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">postopek bidiagonalizacije<\/a><\/noindex>. To je iterativni postopek, vsaka iteracija pa obsega naslednje korake:<br \/>\n<img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVendar, \u010de predpostavimo, da je matrica <img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> horizontalno razdeljena, lahko vsako iteracijo predstavimo kot dva koraka MapReduce. Tako se zmanj\u0161a prenosi podatkov med posameznimi iteracijami (samo vektorji dol\u017eine, enake \u0161tevilu neznank):<\/p>\n<p><img decoding=\"async\" alt=\"Linearna regresija in metode njene obnovitve\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTa pristop se uporablja pri implementaciji linearne regresije v <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>Zaklju\u010dek<\/h3>\n<p>\nObstaja veliko algoritmov za obnovo linearne regresije, vendar vsi ne morejo biti uporabljeni v vseh pogojih. Na primer, QR razcepitev je odli\u010dna za natan\u010dno re\u0161itev na majhnih podatkovnih mno\u017eicah. Gradientni spust se preprosto implementira in hitro najde pribli\u017eno re\u0161itev. LSQR pa zdru\u017euje najbolj\u0161e lastnosti prej\u0161njih dveh algoritmov, saj ga je mogo\u010de distribuirati, hitreje konvergira v primerjavi z gradientnim spustom in omogo\u010da zgodnje ustavljanje algoritma v nasprotju z QR razcepitvijo za iskanje pribli\u017ene re\u0161itve.<br \/>\n<br \/>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Linearni regresija in metode njene obnovitve | ProHoster","description":"Izvor:","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}