Regresi Linier Menggunakan Metode Gradient Descent [Dijelaskan Dengan Contoh Coding]

Diterbitkan: 2020-12-21

Pembelajaran mesin masih terus berkembang tidak peduli apakah Anda bercita-cita menjadi pengembang perangkat lunak, ilmuwan data, atau analis data. Untuk melakukan upaya serius dalam regresi linier, Anda harus fasih dengan Python. Memulai fase awal mungkin merupakan tugas yang membosankan, artikel ini akan membantu Anda memahami regresi secara lebih menyeluruh.

Metode penurunan gradien dipilih dalam berbagai iterasi karena teknik pengoptimalan yang ditawarkannya. Dengan algoritma, dimungkinkan untuk mengurangi ukuran, misalnya, regresi logistik dan jaringan saraf. Sebelum memulai dengan gradien, mari kita lihat regresi linier.

Baca: Algoritma Pembelajaran Mesin untuk Ilmu Data

Daftar isi

Apa itu Regresi Linier?

Ini adalah pendekatan linier yang diambil terhadap pemodelan hubungan antara variabel dependen dan satu atau lebih variabel independen. Hubungan linier antara variabel tersebut akan dinyatakan dalam format persamaan ay= mx+b.

Ini adalah algoritma pembelajaran mesin yang dipantau yang akan meningkatkan kurva pembelajarannya dari variabel dependen x yang diberikan dan y sebagai variabel lain yang bertanggung jawab untuk menyebabkan efek. Sifat ini membantu memprediksi nilai dan faktor kepastian untuk x dan y.

Apa itu Gradient Descent?

Penggunaan regresi gradien melibatkan pengoptimalan algoritma yang digunakan untuk menemukan nilai parameter yang diperlukan dari suatu fungsi yang memungkinkan untuk secara langsung meminimalkan biaya suatu fungsi.

Mari kita pahami konsepnya dengan skenario, bayangkan Anda ingin menuruni benteng di lingkungan yang gelap gulita. Selama ini mari kita asumsikan bahwa Anda benar-benar cacat dan perlu mencari jarak terpendek dan termudah untuk turun kembali. Penurunan gradien akan menjadi sumber daya yang digunakan untuk mengetahui cara yang dioptimalkan untuk mencapai tujuan Anda. Dengan masukan arah dasar, algoritme memungkinkan untuk memetakan dan menyarankan rute terbaik.

Gradien adalah salah satu algoritma yang paling banyak digunakan dan diterima secara luas dalam pembelajaran mesin. Gradien juga dianggap meletakkan dasar untuk menguasai pembelajaran mesin pada tahap awal.

Untuk perkiraan gradien yang lebih baik, mari kita coba mengimplementasikannya dengan kode dalam contoh, mengerjakan python dengan bantuan NumPy.

dari impor NumPy *

# y = mx + b

# m adalah kemiringan, b adalah perpotongan y

def compute_error_for_line_given_points(b, m, poin):

kesalahan total = 0

untuk saya dalam rentang (0, len(poin)):

x = poin[i, 0]

y = poin[i, 1]

totalError += (y – (m * x + b)) ** 2

kembalikan totalError / float(len(poin))

def step_gradient(b_current, m_current, poin, learningRate):

b_gradien = 0

m_gradien = 0

N = float(len(poin))

untuk saya dalam rentang (0, len(poin)):

x = poin[i, 0]

y = poin[i, 1]

b_gradien += -(2/N) * (y – ((m_current * x) + b_current))

m_gradient += -(2/N) * x * (y – ((m_current * x) + b_current))

new_b = b_current – ​​(learningRate * b_gradient)

new_m = m_current – ​​(learningRate * m_gradient)

kembalikan [new_b, new_m]

def gradient_descent_runner(poin, starting_b, starting_m, learning_rate, num_iterations):

b = awal_b

m = awal_m

untuk saya dalam jangkauan (num_iterations):

b, m = step_gradient(b, m, array(points), learning_rate)

kembali [b, m]

def menjalankan():

poin = genfromtxt(“data.csv”, pembatas=”,”)

learning_rate = 0,0001

initial_b = 0 # tebakan awal y-intercept

initial_m = 0 # tebakan kemiringan awal

jumlah_iterasi = 1000

print “Memulai penurunan gradien pada b = {0}, m = {1}, error = {2}”.format(initial_b, initial_m, compute_error_for_line_given_points(initial_b, initial_m, poin))

cetak "Berjalan ..."

[b, m] = gradient_descent_runner(poin, initial_b, initial_m, learning_rate, num_iterations)

print “Setelah {0} iterasi b = {1}, m = {2}, error = {3}”.format(num_iterations, b, m, compute_error_for_line_given_points(b, m, poin))

jika __name__ == '__main__':

Lari()

Referensi kode

Ini adalah representasi visual dari program pencarian gradien di mana masalah diselesaikan dalam regresi linier dengan memplot titik-titik dalam satu garis. Kode adalah demonstrasi cara kerjanya dan membantu mengatur beberapa titik di sepanjang garis. Penurunan gradien mencoba menemukan nilai terbaik untuk parameter ini terkait dengan fungsi kesalahan.

Kode tersebut berisi fungsi khusus yang diberi label 'run'. Ini membantu menentukan seperangkat parameter yang digunakan dalam algoritme untuk membuat serangkaian prediksi awal berdasarkan perilaku variabel dan kemiringan garis. Faktor-faktor lain melibatkan jumlah iterasi yang diperlukan untuk mencapai penurunan gradien dalam format yang ditunjukkan di bawah ini:

initial_b = 0 # tebakan awal y-intercept

initial_m = 0 # tebakan kemiringan awal

jumlah_iterasi = 1000

Anda dapat dengan mudah memahami bahwa metode Gradien cukup sederhana dan lugas. Setelah Anda memahami kemampuan fungsinya, maka satu-satunya bagian yang perlu Anda fokuskan adalah biaya fungsi yang ingin Anda optimalkan.

Tujuannya adalah untuk melakukan upaya terus-menerus untuk membuat iterasi yang berbeda untuk setiap nilai variabel, untuk mengevaluasi biayanya, dan untuk membuat variabel baru yang akan memulai program dengan biaya yang lebih baik dan rendah.

Harus Dibaca: Pertanyaan Wawancara Pembelajaran Mesin

Tips untuk Keturunan Gradien

1. Tingkat Pembelajaran

Protokol pengoptimalan membantu mengurangi nilai laju pembelajaran bahkan pada desimal yang lebih kecil, mencoba mengacak nilai berbeda yang sesuai untuk platform, lalu memilih nilai kerja terbaik. Pembelajaran bisa jauh lebih cepat dan bermanfaat, untuk mewujudkannya pastikan untuk membatasi jumlah lintasan melalui setiap kumpulan data. Angka yang ideal adalah antara 1 hingga 10.

2. Plot Mean Cost

Waktu pelatihan untuk setiap instance kumpulan data dapat menyebabkan penundaan karena waktu tambahan yang dibutuhkan selama menjalankan algoritme. Untuk hasil yang lebih baik, pilih rata-rata di atas 100 atau 1000 untuk peluang yang lebih baik dalam menemukan tren pembelajaran yang lebih baik untuk algoritme.

Ringkasan

Dalam artikel ini Anda belajar tentang gradien dan cara membuat algoritme semacam itu, ini membantu membuat prediksi yang tepat dan lebih efektif dengan model regresi yang dipelajari. Untuk memahami pada tingkat yang jauh lebih komprehensif dan lebih dalam dengan skenario kasus nyata, daftarlah dengan upGrad. Kami menawarkan kursus yang dikuratori secara khusus untuk calon Ilmuwan Data dan pelamar Pembelajaran Mesin.

Pimpin Revolusi Teknologi Berbasis AI

DIPLOMA PG DALAM PEMBELAJARAN MESIN DAN KECERDASAN BUATAN
Belajarlah lagi