Source:
Regresi linier minangka salah sawijining algoritma dhasar kanggo akeh wilayah sing ana gandhengane karo analisis data. Alesan kanggo iki ketok. Iki minangka algoritma sing gampang banget lan bisa dingerteni, sing nyumbang kanggo panggunaan sing nyebar nganti pirang-pirang puluhan, yen ora atusan, taun. Ing idea iku kita nganggep katergantungan linear siji variabel ing pesawat saka variabel liyane, lan banjur nyoba kanggo mulihake katergantungan iki.
Nanging artikel iki ora babagan nggunakake regresi linier kanggo ngatasi masalah praktis. Ing kene kita bakal nimbang fitur menarik saka implementasine algoritma sing disebarake kanggo pemulihan, sing ditemokake nalika nulis modul pembelajaran mesin ing
Apa kita ngomong babagan?
Kita ngadhepi tugas mulihake katergantungan linear. Minangka data input, sakumpulan vektor saka variabel bebas sing mesthine diwenehake, saben-saben digandhengake karo nilai tartamtu saka variabel gumantung. Data iki bisa diwakili ing rong matriks:
Saiki, wiwit katergantungan dianggep, lan, luwih-luwih, linear, kita bakal nulis asumsi kita ing wangun produk saka matriks (kanggo nyederhanakake rekaman, ing kene lan ing ngisor iki dianggep yen istilah bebas saka persamaan didhelikake ing mburi. , lan kolom pungkasan matriks ngemot unit):
Kayane kaya sistem persamaan linear, ta? Kayane, nanging kemungkinan ora ana solusi kanggo sistem persamaan kasebut. Alesan kanggo iki yaiku gangguan, sing ana ing meh kabeh data nyata. Alasan liya bisa uga ora ana katergantungan linier, sing bisa dilawan kanthi ngenalake variabel tambahan sing ora gumantung karo variabel asli. Coba conto ing ngisor iki:
Source:
Iki minangka conto prasaja saka regresi linier sing nuduhake hubungan siji variabel (sadawane sumbu ) saka variabel liyane (sadawane sumbu ). Supaya sistem persamaan linear sing cocog karo conto iki duwe solusi, kabeh titik kudu ana ing garis lurus sing padha. Nanging kuwi ora bener. Nanging dheweke ora ngapusi ing garis lurus sing padha amarga gangguan (utawa amarga anggepan hubungan linear salah). Dadi, kanggo mulihake hubungan linear saka data nyata, biasane perlu ngenalake siji asumsi maneh: data input ngemot gangguan lan gangguan iki
Metode kemungkinan maksimum
Dadi, kita nganggep manawa ana gangguan sing disebarake kanthi acak. Apa sing kudu ditindakake ing kahanan kaya ngono? Kanggo kasus iki ing matématika ana lan digunakake digunakake
Kita bali menyang mulihake hubungan linear saka data kanthi gangguan normal. Elinga yen hubungan linear sing dianggep minangka pangarepan matematika distribusi normal sing ana. Ing wektu sing padha, kemungkinan sing njupuk siji nilai utawa liyane, tundhuk ing ngarsane observasi , kaya ing ngisor iki:
Ayo kita saiki ngganti и Variabel sing kita butuhake yaiku:
Kabeh sing isih ana yaiku nemokake vektor , ing kang kemungkinan iki maksimum. Kanggo nggedhekake fungsi kasebut, luwih becik njupuk logaritma kasebut (logaritma fungsi kasebut bakal maksimal ing titik sing padha karo fungsi kasebut):
Kang, ing siji, mudhun kanggo nyilikake fungsi ing ngisor iki:
Miturut cara, iki diarani metode
dekomposisi QR
Minimal fungsi ing ndhuwur bisa ditemokake kanthi nemokake titik ing ngendi gradien fungsi iki nol. Lan gradien bakal ditulis kaya ing ngisor iki:
Supaya kita decompose matriks kanggo matriks и lan nindakake serangkaian transformasi (algoritma dekomposisi QR dhewe ora bakal dianggep ing kene, mung panggunaane ana gandhengane karo tugas sing ditindakake):
Matriks punika ortogonal. Iki ngidini kita nyingkirake karya :
Lan yen sampeyan ngganti ing , banjur bakal bisa . Ngelingi iku minangka matriks segitiga ndhuwur, katon kaya iki:
Iki bisa ditanggulangi kanthi nggunakake metode substitusi. unsur dumunung minangka , unsur sadurungé dumunung minangka lan ing.
Perlu dicathet yen kerumitan algoritma sing diasilake amarga nggunakake dekomposisi QR padha karo . Menapa malih, senadyan kasunyatan bilih operasi multiplikasi matriks uga paralel, ora bisa nulis versi distribusi sing efisien saka algoritma iki.
Keturunan Gradien
Nalika ngomong babagan nyilikake fungsi, mesthine kudu ngelingi metode turunan gradien (stokastik). Iki minangka cara minimalake sing prasaja lan efektif adhedhasar ngitung gradien fungsi kanthi iteratif ing sawijining titik lan banjur pindhah menyang arah sing ngelawan karo kecerunan. Saben langkah kasebut ndadekake solusi nyedhaki minimal. Gradien isih katon padha:
Cara iki uga paralel lan disebarake amarga sifat linier operator gradien. Elinga yen ing rumus ing ndhuwur, ing tandha jumlah ana istilah independen. Ing tembung liyane, kita bisa ngetung gradien independen kanggo kabeh indeks saka pisanan kanggo , ing podo karo iki, ngetung gradien kanggo indeks karo kanggo . Banjur nambah gradients asil. Asil tambahan bakal padha yen kita langsung ngetung gradien kanggo indeks saka pisanan kanggo . Dadi, yen data disebarake ing antarane sawetara potongan data, gradien bisa diitung kanthi mandiri ing saben potongan, banjur asil petungan kasebut bisa dijumlah kanggo entuk asil pungkasan:
Saka sudut pandang implementasine, iki cocog karo paradigma
Senadyan gampang implementasine lan kemampuan kanggo nglakokake paradigma MapReduce, keturunan gradien uga duwe kekurangan. Utamane, jumlah langkah sing dibutuhake kanggo entuk konvergensi luwih dhuwur tinimbang metode liyane sing luwih khusus.
LSQR
Metode LSQR adhedhasar
Nanging yen kita nganggep yen matriks wis partisi horisontal, banjur saben pengulangan bisa dituduhake minangka rong langkah MapReduce. Kanthi cara iki, bisa nyilikake transfer data sajrone saben iterasi (mung vektor kanthi dawane padha karo jumlah sing ora dingerteni):
Iki pendekatan sing digunakake nalika ngleksanakake regresi linear ing
kesimpulan
Ana akeh algoritma pemulihan regresi linier, nanging ora kabeh bisa ditrapake ing kabeh kahanan. Dadi dekomposisi QR apik banget kanggo solusi akurat ing set data cilik. Keturunan gradien gampang dileksanakake lan ngidini sampeyan nemokake solusi kira-kira kanthi cepet. Lan LSQR nggabungke sifat paling apik saka loro kalkulus sadurungé, awit iku bisa mbagekke, converges luwih cepet dibandhingake karo gradien keturunan, lan uga ngidini mungkasi awal saka algoritma, ora kaya dekomposisi QR, kanggo nemokake solusi kira-kira.
Source: www.habr.com