Machine Learning : Regresi Linear Satu variabel (Bagian -2 )
Untuk permasalahan regresi linear satu variabel. hypothesis diformulasikan sebagai berikut
θ0 dan θ1 disebut parameter (atau sering disebut bobot) yang merupakan nilai prediktif untuk membuat fungsi linier hypothesis
Matriks
Secara praktek, dalam perhitungan akan lebih efektif menggunakan matriks untuk mengkalkulasi dataset secara bersamaan. Oleh karena itu formula hypothesis ditulis dengan perkalian vektor antara matriks X dan vektor theta. Dimana matriks X berisi dataset alias sampel pelatihan sedangkan theta adalah vektor yang berisi nilai bobot θ1, dan θ0. hypothesis kemudian bisa diformulasikan dalam bentuk matriks sebagai berikut
GNU Octave
Untuk lebih memahami, maka langsung saja kita ke contoh, jalankan aplikasi GNU octave atau Matlab, jika komputer anda belum diinstal salah satu dari dua aplikasi tersebut, silahkan install terlebih dahulu sebagaimana pernah saya bahas di tulisan saya sebelumnya.
Misalkan kita dihadapkan pada sebuah dataset terkait luas tanah dengan harga hunian, sebagaimana contoh sebelumnya, saya memiliki sampel dataset yang bisa anda download di link berikut.
Setelah selesei di-download, akses file tersebut menggunakan aplikasi GNU octave, saya mengasumsikan anda telah menguasai perintah – perintah dasar pada GNU Octave, jika ternyata anda belum menguasai saya sarankan membaca dokumentasinya terlebih dahulu
Untuk menload data exdata1.txt, gunakan perintah berikut
Kini data yang berada di ex1data1.txt telah disalin pada variabel data perhatikan pada workspace variabel terdapat matriks data dengan ukuraan 97 x 2. Kini, kita akan memisahkan matriks data menjadi dua matriks X dan y
Perintah tersebut menciptakan matriks berukuran 97 x 1 bernama X yang berisi kolom 1 dari matriks data, dan y yang berisi semua nilai kolom 2 pada matriks data. Untuk mendapatkan jumlah dataset yang dinotasikan m, gunakan instruksi
Untuk memplot matriks X dan y, gunakan perintah berikut
plot(x, y, ‘rx’, ‘MarkerSize’, 10);
ylabel(‘Harga hunian’);
xlabel(‘luas tanah’);
Jika berhasil, maka anda akan mendapat tampilan sebagai berikut
Oke, sejauh ini kita telah berhasil melihat sebaran data dari nilai Y (harga tanah) terhadap X. Tahap selanjutnya, kita akan menggunakan GNU Octave untuk membuat sebuah algoritma pembelajaran untuk mendapatkan nilai hypothesis yang telah diformulasikan sebagai berikut
Untuk mendapatkan hypothesis h. diperlukan nilai X dan theta. matriks X sebagai representasi dari feature perlu ditambahkan nilai bias dengan menyisipkan kolom pertama dengan matriks satu
Sehingga matriks X menjadi
matriks theta belum diketahui nilainya, sehingga untuk inisialisasi awal diset dengan matriks nol.
Lalu bagaimana menemukan nilai bobot theta yang tepat sehingga bisa didapatkan hypothesis yang paling mendekati fungsi target?
Dalam tulisan selanjutnya saya akan memperkenalkan apa yang disebut dengan Cost Function dan algoritma Gradient Descent yang merupakan tool dan algoritma pembelajaran yang kita gunakan untuk menemukan hypothesis untuk menyeleseikan persoala Regresi Linear Satu variabel.
Untuk sementara, berikut m-file dari tutorial saya kali ini
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| data = load('ex1data1.txt'); | |
| X = data(:, 1); y = data(:, 2); | |
| m = length(y); | |
| figure; | |
| plot(x, y, 'rx', 'MarkerSize', 10); | |
| ylabel('Harga hunian'); | |
| xlabel('luas tanah'); | |
| X = [ones(m, 1), data(:,1)]; | |
| theta = zeros(2, 1); | |
Bersambung
