Regresi Logistik dengan teknik Newton-Raphson


Regresi logistik / model logit, dalam statistika digunakan untuk prediksi probabilitas kejadian suatu peristiwa. Contoh yang dibahas kali ini adalah mengenai penentuan penerimaan pengajuan kredit sepeda motor baru berdasarkan kelompok data yang sudah ada
Ada banyak teknik optimasi yang dapat digunakan untuk proses pembelajaran. 2 teknik yang paling umum digunakan adalah teknik Newton-Raphson dan L-BFGS. Pada pembahasan ini, teknik yang digunakan adalah teknik Newton-Raphson.
Contoh variasi lain Regresi Logistik dapat dilihat dengan mengetikkan kata kunci “Regresi Logistik” pada website ini.



Diasumsikan ada 8 data pelanggan yang sudah diketahui datanya, yaitu Pelanggan A,B,C,D,E,F,G,H
Masing-masing pelanggan memiliki kriteria, yaitu umur, jenis kelamin, skor kepribadian, dan memiliki nilai hasil yaitu Diterima / Ditolak
Diasumsikan 8 data tersebut adalah sebagai berikut:

Pelanggan Umur Jenis Kelamin Skor Kepribadian Hasil
Pelanggan A 44 Laki-laki 3.55 Diterima
Pelanggan B 52 Perempuan 4.71 Diterima
Pelanggan C 60 Perempuan 6.56 Ditolak
Pelanggan D 56 Laki-laki 6.8 Ditolak
Pelanggan E 51 Laki-laki 6.94 Ditolak
Pelanggan F 46 Perempuan 6.52 Ditolak
Pelanggan G 48 Laki-laki 4.25 Diterima
Pelanggan H 58 Perempuan 5.71 Diterima

Contoh data awal adalah sebagai berikut:



Selanjutnya ada 2 orang pelanggan baru yang mengajukan kredit sepeda motor
Maka tentukan pelanggan ini nantinya akan termasuk dalam kelompok Diterima / Ditolak
Diasumsikan data awalnya adalah sebagai berikut:

Pelanggan Umur Jenis Kelamin Skor Kepribadian
Pelanggan I 47 Perempuan 6.05
Pelanggan J 52 Laki-Laki 5

Contoh data baru adalah sebagai berikut:



* Tentukan jumlah iterasi yang digunakan dalam perhitungan koefisien Beta
Diasumsikan dalam kasus ini, jumlah iterasi adalah sebanyak 100 kali

* Tentukan epsilon
Perhitungan Koefisien Beta akan berhenti apabila nilai perbedaan antara nilai beta baru dan nilai beta sebelumnya kurang dari nilai epsilon
Artinya nilai koefisien beta sudah ditemukan
Diasumsikan dalam kasus ini, nilai epsilon adalah 0.01

* Tentukan faktor lompatan
Perhitungan Koefisien Beta akan berhenti apabila nilai beta baru lebih dari sekian kali dari nilai beta sebelumnya
Artinya perhitungan algoritma sudah menyimpang dari jalurnya, sehingga nilai beta yang digunakan adalah nilai beta terbaik yang ditemukan sebelumnya
Diasumsikan dalam kasus ini, faktor lompatan adalah 1000


Langkah-langkah penggunaan algoritma ini adalah

1. Hitung koefisien Beta untuk masing-masing kolom kriteria
Teknik yang digunakan dalam perhitungan ini adalah teknik Newton-Raphson
Penjelasan tentang fungsi tersebut akan dibahas pada perhitungan dibawah

2. Gunakan fungsi ini untuk menghitung nilai koefisien Beta untuk masing-masing kolom kriteria
teknik yang digunakan adalah teknik Newton-Raphson
Nilai pengembalian adalah koefisien beta b0 sebagai konstanta, b1 untuk kolom kriteria 1, dst sampai bn untuk kolom kriteria n

  • dataKolomKriteria adalah matriks data untuk kolom kriteria, kemudian nantinya ditambahkan kolom pertama yang semua berisi nilai 1.0 sebagai nilai dummy untuk konstanta b0
  • dataKolomHasil adalah matriks data untuk kolom hasil, dengan nilai 0 atau 1
  • jumlahIterasi adalah jumlah maksimal iterasi
  • epsilon adalah salah satu variabel penghenti perhitungan,
    perulangan akan berhenti apabila nilai yang baru berada diantara nilai epsilon dari nilai yang lama. Koefisien Beta telah ditemukan
  • faktorLompatan adalah salah satu variabel penghenti perhitungan,
    perulangan akan berhenti apabila nilai yang baru adalah sekian kali dari nilai yang lama. Algorima sudah menyimpang dari jalur.

2a. Hitung nilai jawaban untuk semua data dengan nilai koefisien beta adalah 0

* Gunakan fungsi ini untuk menghitung nilai jawaban untuk masing-masing data

Hitung nilai jawaban dengan rumus:
p = 1 / (1 + exp(-z) dimana z = b0x0 + b1x1 + b2x2 + b3x3 + . . .
jika matriks X berukuran 7 x 3 (kolom-kolom nya adalah: x0 = konstanta. 1.0, x1, x2)
maka matriks beta seharusnya berukuran 3 x 1
sehingga hasil dari matriks X dikali matriks beta adalah (7×3)(3×1) = (7×1)

2b. Hitung tingkat kesalahan jawaban dengan menggunakan teknik MeanSquaredError

* Gunakan Fungsi ini untuk menghitung nilai MSE

Hitung tingkat kesalahan nilai jawaban menggunakan teknik Mean Squared Error
dihitung dengan rumus jumlah dari (kuadrat dari (nilai jawaban – nilai hasil pada matriks data)) / jumlah data
Nilai jawaban yang baru bisa jadi mengembalikan nilai MSE yang lebih tinggi, sehingga nilai jawaban ini tidak bisa dipakai

2c. Buat matriks beta baru untuk dibandingkan dengan nilai beta sebelumnya
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah (poin 3)

2d. Cek nilai beta baru apakah masih dalam rentang nilai epsilon.
Jika ya, maka hentikan perhitungan karena nilai beta sudah ditemukan

2e. Cek nilai beta yang baru apakah sekian kali dari nilai beta yang lama.
Jika ya, maka hentikan perhitungan karena perhitungan telah menyimpang dari jalur

2f. Hitung nilai jawaban untuk semua data dengan nilai koefisien beta yang baru

2g. Hitung tingkat kesalahan jawaban baru dengan menggunakan teknik MeanSquaredError

2h. Bandingkan nilai MSE yang baru dan nilai MSE sebelumnya.
Jika nilai MSE jawaban yang baru ternyata lebih dari nilai MSE sebelumnya maka update nilai matriks beta menjadi rata-rata antara nilai beta baru dan nilai beta sebelumnya
Jika nilai MSE jawaban yang baru ternyata kurang dari nilai MSE sebelumnya maka ambil nilainya sebagai nilai matriks beta terbaik

2i. Lakukan perulangan point 2c – 2h sebanyak jumlah iterasi, kecuali perulangan telah dihentikan karena memenuhi kondisi penghentian perulangan

3. Gunakan fungsi ini untuk membuat nilai beta yang baru
Fungsi ini mengandung inti perhitungan dengan teknik Newton-Raphson

nilai beta yang baru dihitung dengan rumus:
bt = bt-1 + inv(X’Wt-1X)X'(y – pt-1)
dimana:
bt adalah nilai beta yang baru
bt-1 adalah nilai beta yang sebelumnya
X’ adalah transpos matriks dari matriks X
Wt-1 adalah nilai bobot matriks sebelumnya
y adalah nilai matriks untuk Kolom Hasil
pt-1 adalah nilai probabilitas yang lama, dihitung dengan rumus 1.0 / (1.0 + exp(-z) dimana z = b0x0 + b1x1 + . . .)

3a. Gunakan fungsi ini untuk menghitung transpos matriks

3b. Gunakan fungsi ini untuk menghitung matriks tilda (~)

3c. Gunakan fungsi ini untuk menghitung penjumlahan matriks

3d. Gunakan fungsi ini untuk menghitung pengurangan matriks

3e. Gunakan fungsi ini untuk menghitung perkalian 2 matriks dengan ukuran sama

3f. Gunakan fungsi ini untuk menghitung perkalian matriks dengan ukuran tidak sama

3g. Gunakan fungsi ini untuk menghitung invers matriks

3h. Gunakan fungsi ini untuk menghitung dekomposisi matriks
Metode yang digunakan untuk mendekomposisi matriks adalah metode Dolittle

4. Setelah memperoleh nilai koefisien beta, cari nilai jawaban untuk masing-masing contoh data

5. Jika nilai probabilitas lebih dari 0.5, maka data baru tersebut termasuk dalam nilai hasil Diterima
Jika nilai probabilitas kurang dari 0.5, maka data baru tersebut termasuk dalam nilai hasil Ditolak

6. Lakukan poin 4 dan 5 untuk semua data baru


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd29a


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *