Regresi linear dan kaedah untuk pemulihannya

Regresi linear dan kaedah untuk pemulihannya
Sumber: xkcd

Regresi linear adalah salah satu algoritma asas untuk banyak bidang yang berkaitan dengan analisis data. Alasan untuk ini adalah jelas. Ini adalah algoritma yang sangat mudah dan mudah difahami, yang telah menyumbang kepada penggunaannya yang meluas selama berpuluh-puluh, jika tidak beratus-ratus tahun. Ideanya ialah kita menganggap pergantungan linear satu pembolehubah pada set pembolehubah lain, dan kemudian cuba memulihkan pergantungan ini.

Tetapi artikel ini bukan tentang menggunakan regresi linear untuk menyelesaikan masalah praktikal. Di sini kami akan mempertimbangkan ciri menarik pelaksanaan algoritma teragih untuk pemulihannya, yang kami temui semasa menulis modul pembelajaran mesin dalam Apache Ignite. Sedikit matematik asas, pembelajaran mesin dan pengkomputeran teragih boleh membantu anda memikirkan cara melakukan regresi linear walaupun data anda diedarkan merentasi ribuan nod.

Apa yang kita bincangkan?

Kami berhadapan dengan tugas memulihkan pergantungan linear. Sebagai data input, satu set vektor pembolehubah bebas yang sepatutnya diberikan, setiap satunya dikaitkan dengan nilai tertentu pembolehubah bersandar. Data ini boleh diwakili dalam bentuk dua matriks:

Regresi linear dan kaedah untuk pemulihannya

Sekarang, kerana pergantungan diandaikan, dan, lebih-lebih lagi, linear, kami akan menulis andaian kami dalam bentuk hasil darab matriks (untuk memudahkan rakaman, di sini dan di bawah diandaikan bahawa istilah bebas persamaan tersembunyi di belakang Regresi linear dan kaedah untuk pemulihannya, dan lajur terakhir matriks Regresi linear dan kaedah untuk pemulihannya mengandungi unit):

Regresi linear dan kaedah untuk pemulihannya

Bunyi sangat seperti sistem persamaan linear, bukan? Nampaknya, tetapi kemungkinan besar tidak akan ada penyelesaian kepada sistem persamaan sedemikian. Sebabnya ialah bunyi bising, yang terdapat dalam hampir semua data sebenar. Sebab lain mungkin adalah kekurangan pergantungan linear seperti itu, yang boleh diatasi dengan memperkenalkan pembolehubah tambahan yang tidak linear bergantung pada yang asal. Pertimbangkan contoh berikut:
Regresi linear dan kaedah untuk pemulihannya
Sumber: Wikipedia

Ini adalah contoh mudah regresi linear yang menunjukkan hubungan satu pembolehubah (di sepanjang paksi Regresi linear dan kaedah untuk pemulihannya) daripada pembolehubah lain (di sepanjang paksi Regresi linear dan kaedah untuk pemulihannya). Agar sistem persamaan linear yang sepadan dengan contoh ini mempunyai penyelesaian, semua titik mesti terletak tepat pada garis lurus yang sama. Tetapi itu tidak benar. Tetapi mereka tidak terletak pada garis lurus yang sama dengan tepat kerana bunyi bising (atau kerana andaian perhubungan linear adalah salah). Oleh itu, untuk memulihkan hubungan linear daripada data sebenar, biasanya perlu memperkenalkan satu lagi andaian: data input mengandungi hingar dan hingar ini mempunyai taburan normal. Anda boleh membuat andaian tentang jenis taburan hingar lain, tetapi dalam kebanyakan kes, taburan normallah yang dipertimbangkan, yang akan dibincangkan lebih lanjut.

Kaedah kemungkinan maksimum

Jadi, kami mengandaikan kehadiran bunyi taburan normal rawak. Apa yang perlu dilakukan dalam keadaan sedemikian? Untuk kes ini dalam matematik ada dan digunakan secara meluas kaedah kemungkinan maksimum. Pendek kata, intipatinya terletak pada pilihan fungsi kemungkinan dan pemaksimumannya yang seterusnya.

Kami kembali untuk memulihkan hubungan linear daripada data dengan hingar biasa. Perhatikan bahawa hubungan linear yang diandaikan ialah jangkaan matematik Regresi linear dan kaedah untuk pemulihannya taburan normal sedia ada. Pada masa yang sama, kebarangkalian itu Regresi linear dan kaedah untuk pemulihannya mengambil satu nilai atau yang lain, tertakluk kepada kehadiran yang boleh diperhatikan Regresi linear dan kaedah untuk pemulihannya, seperti berikut:

Regresi linear dan kaedah untuk pemulihannya

Marilah kita menggantikannya sekarang Regresi linear dan kaedah untuk pemulihannya и Regresi linear dan kaedah untuk pemulihannya Pembolehubah yang kita perlukan ialah:

Regresi linear dan kaedah untuk pemulihannya

Yang tinggal hanyalah mencari vektor Regresi linear dan kaedah untuk pemulihannya, di mana kebarangkalian ini adalah maksimum. Untuk memaksimumkan fungsi sedemikian, adalah mudah untuk mengambil logaritmanya dahulu (logaritma fungsi akan mencapai maksimum pada titik yang sama dengan fungsi itu sendiri):

Regresi linear dan kaedah untuk pemulihannya

Yang, seterusnya, turun untuk meminimumkan fungsi berikut:

Regresi linear dan kaedah untuk pemulihannya

By the way, ini dipanggil kaedah petak terkecil. Selalunya semua pertimbangan di atas ditinggalkan dan kaedah ini hanya digunakan.

Penguraian QR

Minimum fungsi di atas boleh didapati dengan mencari titik di mana kecerunan fungsi ini adalah sifar. Dan kecerunan akan ditulis seperti berikut:

Regresi linear dan kaedah untuk pemulihannya

Penguraian QR ialah kaedah matriks untuk menyelesaikan masalah pengecilan yang digunakan dalam kaedah kuasa dua terkecil. Dalam hal ini, kami menulis semula persamaan dalam bentuk matriks:

Regresi linear dan kaedah untuk pemulihannya

Jadi kita menguraikan matriks Regresi linear dan kaedah untuk pemulihannya kepada matriks Regresi linear dan kaedah untuk pemulihannya и Regresi linear dan kaedah untuk pemulihannya dan melakukan satu siri transformasi (algoritma penguraian QR itu sendiri tidak akan dipertimbangkan di sini, hanya penggunaannya berkaitan dengan tugas yang sedang dijalankan):

Regresi linear dan kaedah untuk pemulihannya

matriks Regresi linear dan kaedah untuk pemulihannya adalah ortogonal. Ini membolehkan kita menyingkirkan kerja Regresi linear dan kaedah untuk pemulihannya:

Regresi linear dan kaedah untuk pemulihannya

Dan jika anda menggantikan Regresi linear dan kaedah untuk pemulihannya pada Regresi linear dan kaedah untuk pemulihannya, maka ia akan berjaya Regresi linear dan kaedah untuk pemulihannya. Mempertimbangkan itu Regresi linear dan kaedah untuk pemulihannya ialah matriks segi tiga atas, ia kelihatan seperti ini:

Regresi linear dan kaedah untuk pemulihannya

Ini boleh diselesaikan menggunakan kaedah penggantian. unsur Regresi linear dan kaedah untuk pemulihannya terletak sebagai Regresi linear dan kaedah untuk pemulihannya, elemen sebelumnya Regresi linear dan kaedah untuk pemulihannya terletak sebagai Regresi linear dan kaedah untuk pemulihannya dan sebagainya.

Perlu diperhatikan di sini bahawa kerumitan algoritma yang terhasil disebabkan oleh penggunaan penguraian QR adalah sama dengan Regresi linear dan kaedah untuk pemulihannya. Selain itu, walaupun pada hakikatnya operasi pendaraban matriks adalah selari dengan baik, ia tidak mungkin untuk menulis versi teragih yang berkesan bagi algoritma ini.

Keturunan Kecerunan

Apabila bercakap tentang meminimumkan fungsi, ia sentiasa bernilai mengingati kaedah keturunan kecerunan (stokastik). Ini ialah kaedah pengecilan yang mudah dan berkesan berdasarkan pengiraan secara berulang kecerunan fungsi pada satu titik dan kemudian mengalihkannya ke arah yang bertentangan dengan kecerunan. Setiap langkah sedemikian membawa penyelesaian lebih dekat kepada minimum. Kecerunan masih kelihatan sama:

Regresi linear dan kaedah untuk pemulihannya

Kaedah ini juga selari dengan baik dan diedarkan kerana sifat linear pengendali kecerunan. Ambil perhatian bahawa dalam formula di atas, di bawah tanda jumlah terdapat istilah bebas. Dalam erti kata lain, kita boleh mengira kecerunan secara bebas untuk semua indeks Regresi linear dan kaedah untuk pemulihannya dari pertama hingga Regresi linear dan kaedah untuk pemulihannya, selari dengan ini, hitung kecerunan untuk indeks dengan Regresi linear dan kaedah untuk pemulihannya kepada Regresi linear dan kaedah untuk pemulihannya. Kemudian tambahkan kecerunan yang terhasil. Hasil penambahan akan sama seperti jika kita segera mengira kecerunan untuk indeks dari yang pertama hingga Regresi linear dan kaedah untuk pemulihannya. Oleh itu, jika data diedarkan di antara beberapa keping data, kecerunan boleh dikira secara bebas pada setiap bahagian, dan kemudian hasil pengiraan ini boleh dijumlahkan untuk mendapatkan hasil akhir:

Regresi linear dan kaedah untuk pemulihannya

Dari sudut pelaksanaan, ini sesuai dengan paradigma Pengurangan Peta. Pada setiap langkah keturunan kecerunan, tugasan dihantar ke setiap nod data untuk mengira kecerunan, kemudian kecerunan yang dikira dikumpulkan bersama, dan hasil jumlahnya digunakan untuk menambah baik hasilnya.

Walaupun kemudahan pelaksanaan dan keupayaan untuk melaksanakan dalam paradigma MapReduce, keturunan kecerunan juga mempunyai kelemahannya. Khususnya, bilangan langkah yang diperlukan untuk mencapai penumpuan adalah jauh lebih tinggi berbanding kaedah lain yang lebih khusus.

LSQR

LSQR adalah kaedah lain untuk menyelesaikan masalah, yang sesuai untuk memulihkan regresi linear dan untuk menyelesaikan sistem persamaan linear. Ciri utamanya ialah ia menggabungkan kelebihan kaedah matriks dan pendekatan berulang. Pelaksanaan kaedah ini boleh didapati di kedua-dua perpustakaan SciPy, dan dalam MATLAB. Penerangan mengenai kaedah ini tidak akan diberikan di sini (ia boleh didapati dalam artikel LSQR: Algoritma untuk persamaan linear jarang dan kuasa dua terkecil jarang). Sebaliknya, pendekatan akan ditunjukkan untuk menyesuaikan LSQR kepada pelaksanaan dalam persekitaran yang diedarkan.

Kaedah LSQR adalah berdasarkan prosedur bidiagonalisasi. Ini adalah prosedur berulang, setiap lelaran terdiri daripada langkah-langkah berikut:
Regresi linear dan kaedah untuk pemulihannya

Tetapi jika kita menganggap bahawa matriks Regresi linear dan kaedah untuk pemulihannya dipisahkan secara mendatar, maka setiap lelaran boleh diwakili sebagai dua langkah MapReduce. Dengan cara ini, adalah mungkin untuk meminimumkan pemindahan data semasa setiap lelaran (hanya vektor dengan panjang yang sama dengan bilangan yang tidak diketahui):

Regresi linear dan kaedah untuk pemulihannya

Pendekatan inilah yang digunakan apabila melaksanakan regresi linear dalam Apache Ignite ML.

Kesimpulan

Terdapat banyak algoritma pemulihan regresi linear, tetapi tidak semuanya boleh digunakan dalam semua keadaan. Jadi penguraian QR sangat baik untuk penyelesaian tepat pada set data kecil. Penurunan kecerunan adalah mudah untuk dilaksanakan dan membolehkan anda mencari penyelesaian anggaran dengan cepat. Dan LSQR menggabungkan sifat terbaik dari dua algoritma sebelumnya, kerana ia boleh diedarkan, menumpu lebih cepat berbanding dengan keturunan kecerunan, dan juga membenarkan penghentian awal algoritma, tidak seperti penguraian QR, untuk mencari penyelesaian anggaran.

Sumber: www.habr.com

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster