Regresi linier lan cara pemulihan

Regresi linier lan cara pemulihan
Source: xkcd

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 Apache Ignite. Matematika dhasar, sinau mesin, lan komputasi sing disebarake bisa mbantu sampeyan nemtokake cara nindakake regresi linier sanajan data sampeyan disebar ing ewonan simpul.

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:

Regresi linier lan cara pemulihan

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. Regresi linier lan cara pemulihan, lan kolom pungkasan matriks Regresi linier lan cara pemulihan ngemot unit):

Regresi linier lan cara pemulihan

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:
Regresi linier lan cara pemulihan
Source: Wikipedia

Iki minangka conto prasaja saka regresi linier sing nuduhake hubungan siji variabel (sadawane sumbu Regresi linier lan cara pemulihan) saka variabel liyane (sadawane sumbu Regresi linier lan cara pemulihan). 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 distribusi normal. Sampeyan bisa nggawe asumsi babagan jinis distribusi gangguan liyane, nanging ing mayoritas kasus, distribusi normal sing dianggep, sing bakal dibahas luwih lanjut.

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 metode kemungkinan maksimum. Cekakipun, intinipun dumunung ing pilihan fungsi kemungkinan lan maksimalisasi sabanjure.

Kita bali menyang mulihake hubungan linear saka data kanthi gangguan normal. Elinga yen hubungan linear sing dianggep minangka pangarepan matematika Regresi linier lan cara pemulihan distribusi normal sing ana. Ing wektu sing padha, kemungkinan sing Regresi linier lan cara pemulihan njupuk siji nilai utawa liyane, tundhuk ing ngarsane observasi Regresi linier lan cara pemulihan, kaya ing ngisor iki:

Regresi linier lan cara pemulihan

Ayo kita saiki ngganti Regresi linier lan cara pemulihan и Regresi linier lan cara pemulihan Variabel sing kita butuhake yaiku:

Regresi linier lan cara pemulihan

Kabeh sing isih ana yaiku nemokake vektor Regresi linier lan cara pemulihan, 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):

Regresi linier lan cara pemulihan

Kang, ing siji, mudhun kanggo nyilikake fungsi ing ngisor iki:

Regresi linier lan cara pemulihan

Miturut cara, iki diarani metode kothak paling. Asring kabeh pertimbangan ing ndhuwur diilangi lan cara iki mung digunakake.

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:

Regresi linier lan cara pemulihan

dekomposisi QR minangka metode matriks kanggo ngrampungake masalah minimalisasi sing digunakake ing metode kuadrat paling sithik. Ing babagan iki, kita nulis ulang persamaan ing wangun matriks:

Regresi linier lan cara pemulihan

Supaya kita decompose matriks Regresi linier lan cara pemulihan kanggo matriks Regresi linier lan cara pemulihan и Regresi linier lan cara pemulihan lan nindakake serangkaian transformasi (algoritma dekomposisi QR dhewe ora bakal dianggep ing kene, mung panggunaane ana gandhengane karo tugas sing ditindakake):

Regresi linier lan cara pemulihan

Matriks Regresi linier lan cara pemulihan punika ortogonal. Iki ngidini kita nyingkirake karya Regresi linier lan cara pemulihan:

Regresi linier lan cara pemulihan

Lan yen sampeyan ngganti Regresi linier lan cara pemulihan ing Regresi linier lan cara pemulihan, banjur bakal bisa Regresi linier lan cara pemulihan. Ngelingi iku Regresi linier lan cara pemulihan minangka matriks segitiga ndhuwur, katon kaya iki:

Regresi linier lan cara pemulihan

Iki bisa ditanggulangi kanthi nggunakake metode substitusi. unsur Regresi linier lan cara pemulihan dumunung minangka Regresi linier lan cara pemulihan, unsur sadurungé Regresi linier lan cara pemulihan dumunung minangka Regresi linier lan cara pemulihan lan ing.

Perlu dicathet yen kerumitan algoritma sing diasilake amarga nggunakake dekomposisi QR padha karo Regresi linier lan cara pemulihan. 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:

Regresi linier lan cara pemulihan

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 Regresi linier lan cara pemulihan saka pisanan kanggo Regresi linier lan cara pemulihan, ing podo karo iki, ngetung gradien kanggo indeks karo Regresi linier lan cara pemulihan kanggo Regresi linier lan cara pemulihan. Banjur nambah gradients asil. Asil tambahan bakal padha yen kita langsung ngetung gradien kanggo indeks saka pisanan kanggo Regresi linier lan cara pemulihan. 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:

Regresi linier lan cara pemulihan

Saka sudut pandang implementasine, iki cocog karo paradigma MapReduce. Ing saben langkah keturunan gradien, tugas dikirim menyang saben simpul data kanggo ngetung gradien, banjur gradien sing diwilang dikumpulake bebarengan, lan asil saka jumlah kasebut digunakake kanggo nambah asil.

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

LSQR minangka cara liya kanggo ngrampungake masalah, sing cocog kanggo mulihake regresi linier lan kanggo ngrampungake sistem persamaan linear. Fitur utamane yaiku nggabungake kaluwihan metode matriks lan pendekatan iteratif. Implementasi metode iki bisa ditemokake ing loro perpustakaan SciPylan ing Matlab. Katrangan babagan cara iki ora bakal diwenehake ing kene (bisa ditemokake ing artikel kasebut LSQR: Algoritma kanggo persamaan linear jarang lan kuadrat paling sithik). Nanging, pendekatan bakal dituduhake kanggo adaptasi LSQR kanggo eksekusi ing lingkungan sing disebarake.

Metode LSQR adhedhasar prosedur bidiagonalisasi. Iki minangka prosedur iteratif, saben pengulangan dumadi saka langkah-langkah ing ngisor iki:
Regresi linier lan cara pemulihan

Nanging yen kita nganggep yen matriks Regresi linier lan cara pemulihan 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):

Regresi linier lan cara pemulihan

Iki pendekatan sing digunakake nalika ngleksanakake regresi linear ing Apache Ignite ML.

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

Add a comment