Ad Code

Ticker

6/recent/ticker-posts

Linear Regression Series - Part 1/5: Intuisi Dibalik Model Linear Regression

Linear Regression adalah salah satu metode dalam statistik yang digunakan untuk memodelkan hubungan antara variabel dependen dengan satu atau lebih variabel independen. Metode ini telah diaplikasikan untuk banyak hal, antara lain untuk memperkirakan harga rumah, nilai saham, harapan hidup seseorang, atau jumlah waktu yang akan dihabiskan pengguna untuk menonton video atau menghabiskan waktu di sebuah situs web.

Pembahasan ini akan dibagi menjadi beberapa bagian. Pada bagian ini, kita akan berfokus untuk belajar merancang algoritma atau prosedur agar komputer menemukan garis yang baik menggunakan linear regression.

Katakanlah kita memiliki beberapa titik seperti yang tampak pada gambar di bawah ini.

Gambar 1 Beberapa titik yang kira-kira terlihat seperti membentuk garis

Tujuan linear regression adalah untuk membuat garis sedekat mungkin dengan titik-titik itu. Contoh garis yang dapat kita buat terlihat pada gambar di bawah

Gambar 2 Garis yang melewati titik


Kita juga bisa membayangkan titik-titik itu sebagai magnet yang tergeletak melesat ke lantai dan tidak bisa bergerak. Sekarang bayangkan kita melempar batang logam lurus di atasnya. Batang akan bergerak karena magnet menariknya, pada akhirnya batang tersebut akan berakhir dalam posisi sedekat mungkin dengan semua titik.

Studi kasus: Memprediksi harga sebuah rumah

Kita berkenalan dulu dengan Pak Dengklek. Seorang agent real estate yang bertanggung jawab untuk menjual rumah baru. Pak Dengklek belum tau ingin memberi harga berapa, maka beliau berencana membandingkan dengan rumah-rumah lainnya untuk dapat menarik kesimpulan dengan bijak.

Gambar 3 Pak Dengklek, Agent real estate

Pak Dengklek melihat fitur-fitur rumah yang dapat mempengaruhi harga, seperti ukuran, jumlah kamar, lokasi, tingkat kejahatan, kualitas sekolah, dan jarak ke pusat perbelanjaan. Beliau menginginkan formula untuk mengkombinasikan semua fitur ini sehingga dapat menghasilkan perkiraan harga yang baik untuk rumah yang akan dijualnya.

Membangun model linear regression sederhana

Kita berangkat dengan contoh yang sederhana dulu. Kita ambil satu fitur saja, yaitu jumlah kamar. Rumah yang akan dijual Pak Dengklek memiliki 4 kamar. Terdapat 6 rumah lain di sekitarnya sebagai pembanding. Datanya terlihat pada tabel di bawah.

Tabel data perumahan dengan jumlah kamar dan harga

Berapa harga perkiraan yang kalian berikan untuk rumah 4 hanya dengan informasi dari tabel di atas? Jika kalian menjawab 3 Milyar, Pak Dengklek pun berpikir demikian. Kalian mungkin melihat pola untuk menebak harga rumah. Dan apa yang baru saja kalian lakukan dengan pola tersebut, itulah Linear Regression.

Mari kita pelajari pola ini lebih lanjut. Kalian mungkin telah memperhatikan bahwa setiap kali menambahkan kamar, harga rumah bertambah 0,5 Milyar. Lebih khusus lagi, kita dapat menganggap harga rumah sebagai kombinasi dari dua hal: harga dasar 1 Milyar, dan biaya tambahan 0,5 Milyar untuk masing-masing kamar. Dengan demikian, kita dapat meringkasnya ke dalam rumus sederhana seperti di bawah.

Persamaan model yang akan digunakan untuk membuat prediksi

Kita bisa menyebut rumus di atas sebagai model. Model ini akan memberikan kita prediksi harga rumah berdasarkan fitur, yaitu jumlah kamar. Harga per kamar disebut bobot fitur, dan harga dasar rumah disebut sebagai bias model. Kata-kata yang dicetak tebal adalah konsep-konsep penting dalam machine learning. Beberapa di antaranya telah kita pelajari pada postingan sebelumnya, namun mari kita ingat kembali istilah-istilah di atas dan mengaitkannya dengan studi kasus ini.

  • Fitur: Properti yang kita gunakan untuk membuat prediksi. Dalam hal ini, fitur-fiturnya adalah jumlah kamar di rumah, tingkat kejahatan, usia rumah, ukuran, dan sebagainya. Untuk kasus ini, kita telah memilih satu fitur: jumlah kamar di rumah.
  • Label: Target yang akan kita coba untuk prediksi berdasarkan fitur-fiturnya. Dalam hal ini, labelnya adalah harga rumah.
  • Model: Aturan  atau rumus yang memprediksi label berdasarkan fitur. Dalam kasus ini, modelnya adalah persamaan atau rumus untuk menentukan harga rumah.
  • Prediksi: Output dari model. Jika kita mengatakan, "Saya pikir rumah dengan 4 kamar harganya adalah 3 Milyar." maka prediksinya adalah 3 Milyar.
  • Bobot: Pada persamaan di atas, masing-masing fitur dikalikan dengan faktor yang sesuai. Faktor-faktor ini adalah bobotnya. Dalam kasus ini, satu-satunya fitur adalah jumlah kamar, dan bobot yang cocok adalah 0,5 Milyar.
  • Bias: Seperti yang terlihat, model atau rumus di atas memiliki konstanta yang tidak melekat pada fitur apapun. Konstanta ini disebut bias. Dalam kasus ini, biasnya adalah 1 Milyar, yaitu harga dasar sebuah rumah.

Sekarang pertanyaannya adalah, bagaimana kita menemukan rumus ini? Atau lebih khusus lagi, bagaimana kita membuat komputer menghasilkan bobot dan bias ini? Untuk mengilustrasikan ini, mari kita lihat contoh yang sedikit lebih rumit. Dan karena ini adalah masalah machine learning, kita akan melakukan pendekatan dengan framework remember-formulate-predict yang telah kita pelajari di postingan sebelumnya (Baca Selengkapnya).

Remember: Melihat harga rumah yang ada

Untuk melihat prosesnya dengan lebih jelas, mari kita lihat himpunan data yang sedikit lebih rumit, seperti yang ada pada tabel di bawah.

Tabel data perumahan dengan jumlah kamar dan harga yang lebih rumit

Dataset ini hampir sama dengan yang pertama, namun pola harganya tidak secantik dataset sebelumnya. Jika pada dataset sebelumnya setiap kamar memiliki selisih 0,5 Milyar, sekarang selisihnya agak random.

Biasanya, hal pertama yang kita lakukan ketika mendapat dataset baru adalah membuat plot. Kita dapat membuat plot dari poin-poin di atas menggunakan sistem koordinat, di mana sumbu horizontal merepresentasikan jumlah kamar, dan sumbu vertikal merepresentasikan harga rumah.

Gambar 4 Dataset tabel kedua yang diplotkan. Sumbu horizontal merepresentasikan jumlah kamar dan sumbu vertikal merepresentasikan harga rumah

Formulate: Merumuskan model yang memperkirakan harga rumah

Dataset kedua meskipun dengan selisih harga yang lebih acak, namun tidak terlalu jauh berbeda dengan dataset pertama, maka kita masih dapat menggunakan rumus atau model yang sama. Perbedaannya adalah harga rumah tidak akan persis seperti yang dihasilkan oleh rumus dan akan ada sedikit kesalahan. Kesalahan ini akan kita sebut sebagai error. Dengan demikian, kita dapat memodifikasi rumus tadi menjadi seperti ini.

Untuk memprediksi harga rumah, kita dapat menggunakan rumus di atas. Meskipun kita tidak yakin akan mendapatkan hasil yang benar, namun kita akan mendapatkan hasil yang mendekati.

Mari kita kembali ke plot dan melihat apa arti rumus di atas. Apa yang terjadi jika kita melihat semua titik di mana koordinat vertikal (y) adalah 1 ditambah 0,5 kali koordinat horizontal (x)? Kumpulan titik ini membentuk garis dengan slope 0,5 dan y-intercept 1. Jangan bingung dulu, kita coba jabarkan satu per satu.

  • Slope: Kalian mungkin lebih familiar dengan istilah gradient atau kemiringan. Yap, mereka adalah hal yang sama. Kemiringan ini menunjukkan seberapa curam garis tersebut. Cara menghitungnya adalah dengan membagi besar unit kenaikan dengan besar unit ke kanan (akan diilustrasikan pada gambar di bawah). Dalam machine learning, ini akan menjadi bobot sebuah fitur dan memberi tau kita seberapa besar nilai label naik ketika kita meningkatkan nilai fitur sebanyak satu unit. Jika garisnya horizontal, maka kemiringannya nol, dan jika garisnya turun, kemiringannya negatif.
  • Y-intercept:  ketinggian di mana garis melintasi sumbu vertikal (y-axis). Dalam machine learning, ini akan menjadi bias dan memberi tau kita di mana letak titik ketika semua fitur bernilai nol.
  • Persamaan Linear: Ini adalah persamaan garis. Persamaan ini memiliki 2 parameter, yaitu slope dan y-intercept. Jika slope adalah m dan y-intercept adalah b, maka persamaan garis adalah y = mx+b, di mana garis ini dibentuk oleh semua titik (x, y) yang memenuhi persamaan tersebut. Dalam machine learning, x adalah fitur dan y adalah prediksi untuk label. Bobot dan bias masing-masing adalah m dan b.
Sekarang kita dapat menganalisis persamaannya. Ketika kita mengatakan bahwa kemiringan garis (slope) adalah 0,5—ini berarti bahwa setiap kali kita menambahkan satu kamar ke rumah, kita memperkirakan bahwa harga rumah akan naik sebesar 0,5 Milyar. Ketika kita mengatakan bahwa y-intercept dari garis adalah 1, ini berarti bahwa perkiraan harga rumah (hipotetis) dengan kamar nol akan menjadi harga dasar, yaitu 1 Milyar (ya mungkin sekelas apartement studio).

Sekarang, dari semua garis yang mungkin (masing-masing dengan persamaannya sendiri), mengapa kita memilih garis yang seperti gambar di atas? Karena garis tersebut hampir mendekati semua titik. Mungkin ada yang lebih baik, tetapi setidaknya kita tahu yang ini bagus, berbeda dengan yang tidak mendekati titik.

Predict: Apa yang kita lakukan ketika rumah baru datang di pasaran?

Sekarang kita dapat menggunakan model yang telah kita rumuskan untuk memprediksi harga rumah dengan 4 kamar. Untuk itu, kita memasang angka 4 sebagai fitur dalam rumus tadi sehingga didapatkan hasil berikut.


Model kita memprediksi rumah yang akan dijual Pak Dengklek itu berharga 3 Milyar. Ini juga dapat terlihat secara grafis dengan menggunakan garis seperti yang tampak pada gambar di bawah.

Bagaimana jika kita ingin menggunakan lebih dari satu fitur? Gunakan Multivariate Linear Regression

Sebelumnya kita mencoba menggunakan linear regression 1 variabel, kita mungkin berpikir bagaimana jika kita mengombinasikan beberapa fitur lain seperti ukuran, usia rumah, dan kualitas lingkungan. Apakah linear regression dapat mengakomodasi variabel-variabel lain? Tentu bisa!

Ketika kita menggunakan 1 fitur, model akan memprediksi harga rumah dengan menjumlahkan bias dengan hasil perkalian bobot dengan fitur terkait. Jika kita ingin menggunakan lebih banyak fitur, maka kita hanya perlu menjumlahkan hasil perkalian masing-masing bobot dan fitur lalu ditambahkan dengan biasnya. Dengan demikian, model kita akan tampak seperti di bawah.

Dalam persamaan ini, mengapa semua bobot positif, kecuali usia rumah? Pasalnya, tiga fitur lainnya (jumlah kamar, ukuran, dan kualitas lingkungan) berkorelasi positif dengan harga rumah. Dengan kata lain, karena rumah yang lebih besar dan terletak di lokasi yang baik harganya lebih mahal, semakin tinggi fitur ini, semakin tinggi kita mengharapkan harga rumah tersebut. Namun, karena rumah yang lebih tua cenderung lebih murah, fitur usia berkorelasi negatif dengan harga rumah.

Bagaimana jika bobot dari sebuah fitur adalah 0? Ini bisa saja terjadi jika ada fitur yang tidak relevan dengan harga. Sebagai contoh,  misalnya ada fitur yang menghitung jumlah tetangga yang namanya diawali dengan huruf S. Fitur ini hampir tidak mungkin relevan dengan harga rumah, meskipun mungkin saja ada orang yang mempertimbangkan hal itu karena suatu alasan tertentu, maka mereka adalah kaum outlier yang memang semestinya kita abaikan saja, hehe. Dengan alasan tersebut, kita dapat memberi bobot 0 atau yang mendekati 0.

Pada postingan sebelumnya (Baca di sini), kita telah belajar tentang Dimensionality Reduction untuk menyederhanakan data tanpa terlalu banyak kehilangan informasi. Di sana sempat kita bahas bahwa dimensi adalah nama lain dari kolom. Dengan demikian, himpunan data dengan 2 kolom dapat direpresentasikan sebagai satu set titik di bidang, dan himpunan data dengan 3 kolom dapat direpresentasikan sebagai satu set titik dalam ruang tiga dimensi. Dalam himpunan data seperti itu, model linear regression tidak tampak seperti garis namun terlihat seperti bidang yang melewati titik sedekat mungkin. Bayangkan jika ada banyak lalat yang terbang di sekitar ruangan dalam posisi diam, dan tugas kita adalah mencoba melewatkan lembaran kardus raksasa sedekat mungkin dengan semua lalat. Ini adalah contoh Multivariate Linear Regression dengan tiga variabel.

Contoh kasus yang ketika pelajari barusan memang sederhana, kita hanya memiliki sampel sebanyak 6 rumah untuk dijadikan perbandingan, bagaimana jika jumlah rumah ada ribuan? Bukankah itu akan menjadi sesuatu yang sangat rumit? Ya, benar. Seiring berjalannya waktu, kita akan terus belajar menggunakan kasus yang lebih rumit. Namun akan lebih baik jika kita melakukannya secara bertahap agar benar-benar paham.

Di postingan berikutnya, kita akan belajar bagaimana cara komputer menggambar garis menggunakan algoritma linear regression.

See you~

Referensi