Prediksi Nilai dengan Supervised Model Lanjutan



Pada contoh kita akan mencoba membuat logika sederhana untuk mengestimasi harga sebuah rumah (disini menggunakan bahasa python)

Kita sudah mengetahui, harga aktual dari rumah dengan ukuran 3800 square foot dengan 5 kamar tidur adalah 450000 dolar

Untuk melakukan prediksi, kita harus memilih faktor pendukung apa yang mempengaruhi nilai sebuah rumah. Untuk contoh sederhana, ukuran dan jumlah kamar.

Pada contoh juga dimasukan harga minimal sebuah rumah dengan asumsi setiap rumah minimal berharga sekian dolar.

ukuran * 92 dan jumlah_kamar * 10000 => angka 92 dan 10000  adalah koefisien atau weight yang harus kita cari, pada contoh ini digunakan fixed weight.

Bila program dijalankan maka untuk rumah ukuran 3800 dengan 4 kamar akan menghasilkan nilai 449600 dolar. Estimasi yang dilakukan program sudah cukup mendekati nilai real.

Proses modeling dengan  dengan fixed weight disebut linear regression, algoritma machine learning yang paling sederhana.

Namun dengan ML, komputer akan mencari sendiri weight atau koefisien tersebut dengan cara training.

def estimasi_harga_rumah(ukuran, jumlah_kamar):
    value = 50000
    value = value + (ukuran * 92)
    value = value + (jumlah_kamar * 10000)

    return value

hrg_estimasi = estimasi_harga_rumah(3800, 5)
print("Harga estimasi:", hrg_estimasi)


Bagaimana Machine Learning menentukan Weights
Persamaan dari menghitung harga estimasi rumah adalah seperti berikut

value = 50000 + (ukuran * weight1) + (jumlah_kamar * weight2)

Dengan menggunakan contoh training data seperti berikut:

KamarLuasHarga
53800450000
42200293000
21150175000

Maka persamaan akan seperti berikut

harga_rumah1 = 50000 + (3800 * weight1) + (5 * weight2)
harga_rumah2 = 50000 + (2200 * weight1) + (4 * weight2)
harga_rumah3 = 50000 + (1100 * weight1) + (2 * weight2)

Yang menjadi pertanyaan adalah weightnya berapa? Mari kita coba dengan angka random 10 untuk kedua weight tersebut

Maka hasilnya akan seperti berikut (Jika dibandingkan dengan table training data diatas, maka estimasi kita sangat jauh dari kenyataan.)

harga_rumah1 = 88050 => seharusnya 450000
harga_rumah2 = 72040 => seharusnya 293000
harga_rumah3 = 61520 => seharusnya 175000

Seberapa salah kah kita melakukan estimasi? Kurangkan harga aktual dengan harga prediksi untuk setiap rumah, lalu kuardratkan masing-masing harga tersebut, dibagi dengan jumlah data.

Cost =  ( (450000 - 88050)2 + (293000 - 72040)2 + (175000 - 61520)2 ) / 3

Total error ini adalah cost function.Ini menunjukan seberapa salahnya weight yang kita gunakan. Disebut juga total cost untuk model. Tujuan kita adalah mencari nilai weight dengan total cost terkecil untuk semua data diatas.

Jika cost bisa mencapai nilai nol, maka algoritma prediksi kita akan sempurna untuk semua rumah. Makin tinggi cost, makin jauh prediksi kita dari nilai sesungguhnya.

Secara umum, cost function diatas dapat kita tuliskan seperti ini



Sekarang kita memiliki cost function yang harus dioptimalkan, dapat menggunakan algoritma pengoptimalan yang sudah standar dari matematika.

Algoritma yang umum digunakan adalah Gradient Descent, sebuah algoritma pengoptimalan yang melakukan pengulangan untuk mendapatkan nilai cost terendah dengan nilai koefisien weight paling tepat.

Jadi, kita akan memberikan  cost function dan angka random sebagai awal perhitungan pada Gradient Descent Algorithm.

Kemudian Gradient descent akan mencoba nilai weight secara berulang hingga nilai cost 0 atau mendekati 0.

Pada contoh program prediksi rumah kita, maka hasil yang diperoleh adalah 92.1 dan 10001

Mari kita coba hitung ulang prediks harga rumah berdasar nilai weight yang dihasilkan oleh gradient descent

harga_rumah1 = 50000 + (3800 * 92.1) + (5 * 10001)
harga_rumah2 = 50000 + (2200 * 92.1) + (4 * 10001)
harga_rumah3 = 50000 + (1100 * 92.1) + (2 * 10001)

harga_rumah1 = 449985 => (nilai pasar : 450000)
harga_rumah2 = 292624 => (nilai pasar : 293000)
harga_rumah3 = 175917 => (nilai pasar :175000)

Hasil prediksi sudah cukup mendekati nilai sesungguhnya.

Mari kita review, untuk mendapatkan weight yang paling tepat untuk program estimasi harga rumah:
Buat persamaan matematis untuk model dari problem yang akan kita pecahkan
Buat cost function untuk menghitung error dari sebuah model
Gunakan algoritma pengotimalan (Gradient descent) untuk mendapatkan nilai weight paling tepat untuk meminimalkan cost

Sebetulnya Machine learning akan melakukan semua langkah diatas, termasuk gradient descent. Namun bila kita ada gambaran dengan proses yang berlangsung, kita akan lebih paham jenis masalah apa yang dapat diselesaikan oleh Machine Learning.


Prediksi Nilai dengan Supervised Model Lanjutan Prediksi Nilai dengan Supervised Model Lanjutan Reviewed by noname needed on May 24, 2018 Rating: 5

No comments:

Powered by Blogger.