Presentasi Tugas Akhir
Bagian terpenting dari CRM adalah memahami kebutuhan dari pelanggan terhadap suatu produk yang ditawarkan para pelaku bisnis. CRM membutuhkan sistem yang dapat memberikan suatu keputusan bisnis dalam penentuan produk pilihan pelanggan. Sistem yang ada pada perusahaan dapat menentukan langkah-langkah atau keputusan-keputusan bisnis selanjutnya sesuai dengan informasi yang diperoleh dari sistem. Untuk membangun sistem yang dapat melakukan pengenalan pola, klasifikasi dan ramalan grup (forecast) terhadap pemilihan produk oleh pelanggan digunakan metode Jaringan Syaraf Tiruan (JST) dengan menggunakan fungsi training Levenberg-Marquardt.
Mengapa dipilih metode jaringan syaraf tiruan dalam kasus klasifikasi terhadap data produk pilihan pelanggan? Dari literatur yang ada terdapat contoh bukti kesalahan klasifikasi data training dan testing beberapa metode klasifikasi yang ditunjukkan pada tabel berikut
Bagaimana melakukan proses pengenalan pola (pattern recognition) pada data training kepuasan responden dengan metode Jaringan Syaraf Tiruan? Bagaimana melakukan proses klasifikasi (classification) terhadap data training? Bagaimana melakukan proses ramalan (forecast) terhadap data testing responden berdasarkan hasil dari sistem yang telah dilakukan training? Bagaimana menghitung dan mengetahui nilai akurasi dari hasil training dan testing data berdasarkan evaluasi sistem?
Data yang digunakan sebagai input sistem adalah data berdasarkan hasil survei terhadap 250 responden perempuan tentang pilihan produk kosmetik Produk yang dipilih berupa lipstik dengan 10 pilihan warna yang diwakilkan dengan nomor produknya. Sistem melakukan klasifikasi dengan dua faktor yaitu faktor usia responden dan faktor warna kulit responden.
Faktor usia responden dibagi dalam 4 interval, antara lain : Female teen (13-18 years old) Female young (19-29 years old) Female adult (30-45 years old) Female senior (over 46 years old) Faktor warna kulit dibagi menjadi 2 jenis, antara lain : Kuning langsat Coklat (sawo matang)
Parameter yang terlibat pada algoritma Jaringan Syaraf backpropagation (minimum error MSE, jumlah iterasi, dll) disesuaikan dengan permasalahan Sistem dibuat menggunakan bahasa pemrograman MATLAB 7.0.
Tugas Akhir ini bertujuan untuk mendesain dan merancang sistem perangkat lunak yang dapat melakukan klasifikasi terhadap suatu data responden untuk menentukan jenis produk kosmetik pilihan dengan bantuan sistem yang menggunakan metode Jaringan Syaraf Tiruan.
Mulai Data Input Sistem - warna kulit - rentang usia Transformasi variabel warna kulit (diskrit) menjadi numerik Transformasi variabel rentang usia (diskrit) menjadi numerik Data tersimpan dengan tipe data numerik Berhenti
Mulai Data Target Sistem 10 pilihan produk (P1-P10) Transformasi pilihan produk menjadi kode biner 0001-1010 Data tersimpan dengan tipe data kontinu Berhenti
Mulai Membuat arsitektur jaringan syaraf dengan 3 layer: Input layer Hidden layer Output layer Menetapkan jumlah neuron pada masing-masing layer yang paling optimal Berhenti
Mulai Inisialisasi bobot & bias dengan metode Nguyen-Widrow, max epoch,min MSE Hitung maju (feedforward) pada hidden dan output layer Hitung MSE Hitung mundur (backpropagation) Hitung perubahan bobot dan bias dan bobot bias yang baru Yes Hitung maju kembali Hitung kembali MSE Stop criteria : Jika MSEbaru lebih kecil atau sama dengan MSEmin atau jumlah epoch max sudah terpenuhi No Berhenti
Mulai Inisialisasi bobot & bias dengan metode Nguyen-Widrow, max epoch,min MSE Hitung maju (feedforward) pada hidden dan output layer Hitung MSE Hitung Matriks Jacobian tidak tidak Hitung perubahan bobot dan bias dan bobot bias yang baru Hitung maju kembali Increase μxβ Atau Decrease μ/β Hitung kembali MSE tidak Stop criteria : Jika MSEbaru lebih kecil atau sama dengan MSEmin atau jumlah epoch max sudah terpenuhi atau nilai μ>μmax ya Berhenti
Batch training merupakan salah satu model training yang mengharuskan semua input sistem dilakukan proses training terlebih dahulu untuk dapat menghasilkan bobot dan bias yang baru (update bobot dan bias). Pada model ini, input pada sistem nantinya akan dikonversi secara otomatis menjadi vektor-vektor (kolom matriks) walaupun bentuk awalnya masih dalam bentuk sequence (cell array)
Akurasi hasil berdasarkan tiap neuron pada output layer Hasil output tiap neuron dibandingkan dengan target sistem, jika terdapat suatu data input maka akurasi dihitung dengan membandingkan 4 neuron outputnya dengan target yang ingin dicapai. Akurasi hasil berdasarkan keseluruhan neuron pada output layer Dihitung berdasarkan kesimpulan akhir yang didapat pada output layer. Akurasi ini melihat kesimpulan akhir dari output layer yang memiliki 4 neuron.
Disini akan dilakukan klasifikasi data training dan testing menggunakan data uji coba berupa data produk pilihan kosmetik dari pelanggan menggunakan sistem klasifikasi Jaringan Syaraf Tiruan dengan metode training Levenberg Marquardt. Target yang digunakan pada sistem berupa 10 pilihan produk kosmetik. Data uji coba dibagi menjadi data training dan data testing. Pada skenario ini akan dibedakan menjadi 9 uji coba dengan pembagian proporsi data training dan testing yang berbeda.
Setelah dilakukan klasifikasi terhadap data uji coba dengan proporsi data training dan testing yang telah ditentukan maka akan dihitung tingkat akurasi untuk masing-masing data training dan testing. Akurasi dihitung berdasarkan tiap neuron pada output layer dan keseluruhan neuron pada output layer (kesimpulan akhir produk pilihan yang dihasilkan).
Pembagian proporsi data training dan testing pada 9 uji coba Uji Coba Proporsi Training (%) Testing (%) Uji Coba 1 Proporsi dari dataset 10 90 Atribut 2 2 Uji Coba 2 Proporsi dari dataset 20 80 Atribut 2 2 Uji Coba 3 Proporsi dari dataset 30 70 Atribut 2 2 Uji Coba 4 Proporsi dari dataset 40 60 Atribut 2 2 Uji Coba 5 Proporsi dari dataset 50 50 Atribut 2 2 Uji Coba 6 Proporsi dari dataset 60 40 Atribut 2 2 Uji Coba 7 Proporsi dari dataset 70 30 Atribut 2 2 Uji Coba 8 Proporsi dari dataset 80 20 Atribut 2 2 Uji Coba 9 Proporsi dari dataset 90% 10% Atribut 2 2
Jalannya uji coba skenario 2 sama dengan skenario 1 hanya berbeda pada banyaknya target sistem. Pada skenario 2 terdapat 5 produk pilihan yang berasal dari penggabungan 2 produk dari 10 produk yang memiliki warna dasar yang sama Penggabungan Produk No Produk Baru Binary Target P1-P8 P1 001 P2-P10 P2 010 P3-P5 P3 011 P4-P7 P4 100 P6-P9 P5 101
Skenario 1 Skenario 2
Rata-rata akurasi berdasarkan keseluruhan neuron pada output layer Proporsi Training Testing (%) Akurasi Data Training(%) Akurasi Data Testing(%) 10-90 64 40 20-80 68 52 30-70 71 57 40-60 53 48 50-50 66 56 60-40 53 46 70-30 61 52 80-20 50 44 90-10 60 68 Rata-Rata 60 51
Rata-rata akurasi berdasarkan tiap neuron pada output layer Proporsi Training Testing(%) Akurasi Data Training(%) Akurasi Data Testing(%) 10-90 81 73 20-80 82 75 30-70 82 78 40-60 81 78 50-50 81 77 60-40 81 76 70-30 79 76 80-20 79 74 90-10 79 84 Rata-Rata 80 77
Rata-rata akurasi berdasarkan keseluruhan neuron pada output layer Proporsi Training Testing(%) Akurasi Data Training(%) Akurasi Data Testing(%) 10-90 64 44 20-80 64 45 30-70 71 57 40-60 63 51 50-50 66 56 60-40 59 47 70-30 61 52 80-20 49 40 90-10 58 68 Rata-Rata 62 51
Rata-rata akurasi berdasarkan tiap neuron pada output layer Proporsi Training Testing(%) Akurasi Data Training(%) Akurasi Data Testing(%) 10-90 85 64 20-80 81 70 30-70 81 68 40-60 76 69 50-50 76 69 60-40 76 68 70-30 74 67 80-20 73 69 90-10 73 75 Rata-Rata 77 69
Setelah dilakukan uji coba pada skenario 1 dan 2, nilai rata-rata akurasi berdasarkan keseluruhan neuron di output layer pada skenario 1 mempunyai nilai yang lebih rendah dari skenario 2, yaitu pada data training sedangkan untuk data testing memiliki nilai rata-rata akurasi yang sama. Untuk nilai rata-rata akurasi berdasarkan tiap neuron pada output layer terjadi sebaliknya, nilai rata-rata akurasi baik data training maupun data testing pada skenario 1 lebih besar dari nilai rata-rata akurasi pada skenario 2.
Pada skenario 1 dimana terdapat 10 produk pilihan kosmetik, proses training data dengan proporsi 10% sampai dengan 80% memiliki tingkat akurasi hasil berdasarkan keseluruhan neuron pada output layer yang lebih tinggi dari proses testing data dengan proporsi 90% sampai dengan 20%. Sedangkan untuk proporsi data training 90% dan testing 10% nilai akurasi pada data testing lebih tinggi. Hal yang serupa juga terjadi pada saat perhitungan nilai akurasi berdasarkan tiap neuron pada output layer, hanya saja nilai akurasinya lebih tinggi dibandingkan dengan akurasi berdasarkan keseluruhan neuron pada output layer untuk setiap uji coba (1-9).
Pembuatan skenario 2 pada evaluasi sistem mempunyai tujuan untuk dapat meningkatkan akurasi pada skenario 1. Pada skenario 2 dimana hanya terdapat 5 pilihan produk baru hasil penggabungan produk sebelumnya, ternyata memiliki kondisi yang hampir sama dengan hasil uji coba skenario 1. Nilai rata-rata akurasi hasil berdasarkan keseluruhan neuron di output layer pada skenario 1 dan skenario 2 untuk data training dan testing relatif sama. Sedangkan untuk rata-rata nilai akurasi hasil berdasarkan tiap neuron di output layer pada skenario 1 memiliki nilai akurasi yang lebih tinggi.
Pada skenario 2 tidak terjadi peningkatan nilai akurasi yang signifikan karena produk pilihan digabungkan berdasarkan kemiripan warna dasar dari produk, sedangkan para pelanggan untuk kelompok usia dan warna kulit tertentu mungkin saja memilih produk yang warna dasarnya berbeda sehingga nilai akurasinya pun tidak mengalami peningkatan yang signifikan.
Pada sistem klasifikasi yang menggunakan Jaringan Syaraf Tiruan diperlukan pemilihan konfigurasi jaringan seperti jumlah lapis tersembunyi dan jumlah neuron pada masing-masing lapis tersembunyi. Konfigurasi pada jaringan dapat berbeda-beda untuk suatu set data pelatihan, untuk itu diperlukan beberapa eksperimen untuk dapat menemukan konfigurasi jaringan yang paling optimal.
Eksperimen-eksperimen lanjutan untuk melatih sistem Jaringan Syaraf Tiruan dengan berbagai tipe data nyata, juga untuk membandingkan dengan teknik-teknik klasifikasi data yang lain masih diperlukan untuk mengobservasi performansi dari Jaringan Syaraf Tiruan ini.
Akurasi yang dihasilkan pada proses training maupun testing masih kurang baik dikarenakan faktor usia dan warna kulit dari pelanggan masih belum cukup mewakili dalam penentuan produk kosmetik pilihan, untuk itu perlu dilakukan penambahan variabel atau faktor penentu lainnya.
Penambahan jumlah data pada data uji coba dapat menjadi salah satu alternatif dalam peningkatan nilai akurasi pada sistem klasifikasi.
TERIMA KASIH
Data input sistem mempunyai dua variabel yang masing-masing bertipe kategorikal (diskrit), antara lain : warna kulit yang terdiri dari : kuning langsat bernilai (Yes/No) coklat/sawo matang bernilai (Yes/No) rentang usia yang terdiri dari : female teen (13-18 tahun) bernilai (Yes/No) female young (19-29 tahun) bernilai (Yes/No) female adult (30-45 tahun) bernilai (Yes/No) female senior (>46 tahun) bernilai (Yes/No)
Transformasi data input pada sistem ini dilakukan dengan cara, rentang nilai [0,1] dibagi menjadi rentang-rentang homogen sebanyak nilai pada variabel bertipe diskrit yang ada dikurangi satu, lalu setiap nilai diskrit diasosiasikan dengan nilai pada batas rentang-rentang baru ini.
Untuk variabel warna kulit, jumlah nilai pada variabelnya adalah dua (kuning langsat dan sawo matang). Rentang nilai [0,1] dibagi menjadi rentang-rentang homogen sebanyak nilai pada variabel dikurangi satu, sehingga rentang [0,1] dibagi sebanyak satu bagian.
Setelah dilakukan transformasi data pada variabel input warna kulit, nilai variabel yang digunakan dalam sistem adalah sebagai berikut : warna kulit kuning langsat mempunyai nilai 0 warna kulit sawo matang mempunyai nilai 1
Untuk variabel rentang-usia, jumlah nilai pada variabelnya adalah empat yang terdiri dari female teen, female young, female adult, dan female senior. Rentang nilai [0,1] dibagi menjadi rentangrentang homogen sebanyak nilai pada variabel dikurangi satu, sehingga rentang [0,1] dibagi sebanyak tiga bagian.
Setelah dilakukan transformasi data pada variabel input rentang usia, nilai variabel yang dimasukkan dalam sistem adalah sebagai berikut : rentang usia female teen mempunyai nilai 0 rentang usia female young mempunyai nilai 0,3 rentang usia female adult mempunyai nilai 0,6 rentang usia female senior mempunyai nilai 1
Data input pada sistem mempunyai 8 kemungkinan dengan nilai masing-masing variabel yang telah ditransformasi seperti pada tabel berikut. Variabel Warna Kulit Variabel Rentang Usia Input pada Sistem Kuning Langsat female teen 0 0 Kuning Langsat female young 0 0,3 Kuning Langsat female adult 0 0,6 Kuning Langsat female senior 0 1 Sawo matang female teen 1 0 Sawo matang female young 1 0,3 Sawo matang female adult 1 0,6 Sawo matang female senior 1 1
Target dari sistem adalah 10 pilihan produk kosmetik berupa lipstik yang diwakilkan dengan nomor produknya. Nomor produk lipstik merepresentasikan warna dari lipstik. No produk Nomor lipstik Warna lipstik P1 9 orange terang P2 48 merah hati P3 12 merah terang P4 22 coklat metalic P5 29 merah P6 15 rose P7 50 coklat terang P8 3 peach P9 52 dark pink P10 53 merah metalic
Target 10 pilihan produk akan dilakukan transformasi sebelum digunakan pada sistem. Jumlah unit neuron pada output layer bergantung kepada jumlah kelas yang ada pada target, dalam kasus ini terdapat 10 kelas. Jumlah unit neuron pada output layer didapatkan dengan rumus berikut. Jumlah neuron = pembulatan ke atas (log 2 (jumlah kelas)) Sehingga untuk 10 jumlah kelas didapatkan jumlah neuron sebanyak 4. Dapat disimpulkan untuk target sebanyak 10 produk pilihan memiliki 4 neuron di output layer. Agar dapat menghasilkan 4 neuron pada output layer, target sistem dapat direpresentasikan menjadi sebuah binary target.
Target 10 pilihan produk setelah dilakukan transformasi dapat ditunjukkan pada tabel berikut. No produk Nomor lipstik Binary target P1 9 0 0 0 1 P2 48 0 0 1 0 P3 12 0 0 1 1 P4 22 0 1 0 0 P5 29 0 1 0 1 P6 15 0 1 1 0 P7 50 0 1 1 1 P8 3 1 0 0 0 P9 52 1 0 0 1 P10 53 1 0 1 0
Metode pembelajaran yang digunakan sistem adalah supervised learning. Fungsi error yang digunakan sistem adalah Mean Square Error. Fungsi aktivasi yang paling sesuai untuk binary target yang dipakai pada sistem adalah fungsi aktivasi sigmoid biner (logsig). Pada hasil output layer akan dilakukan proses thresholding, karena hanya terdapat 2 kemungkinan nilai saja yaitu 0 dan 1 (binary)
Hidden layer 8 unit neuron Input layer 2 unit neuron Output layer 4 unit neuron
Feedforward (hitung maju) Tiap-tiap unit input (xi, i = 1, 2, 3,..., o) menerima sinyal input dan meneruskan sinyal tersebut ke tiap-tiap unit pada lapisan tersembunyi. Tiap-tiap unit di lapisan tersembunyi (zj, j = 1, 2, 3,..., p) menjumlahkan sinyal-sinyal input yang berbobot, yaitu:
Backpropagation (Hitung mundur) pada Output Layer Tiap-tiap unit output yk menerima pola target tk untuk menghitung error (δk), yaitu: Kemudian menghitung nilai koreksi bobot yang nantinya digunakan untuk memperbaiki nilai bobot antara lapisan tersembunyi dan lapisan output (wjk), yaitu: menghitung juga koreksi bias yang digunakan untuk memperbaiki nilai bias antara lapisan tersembunyi dan lapisan output (wk0), yaitu:
Backpropagation (Hitung Mundur) pada Hidden Layer Tiap-tiap unit pada lapisan tersembunyi (zj, j = 1, 2, 3,..., p) menjumlahkan sinyal-sinyal input dari lapisan output, yaitu: mengalikan nilai ini dengan fungsi aktivasi untuk menghitung error pada lapisan tersembunyi (δj), yaitu: Kemudian hitung koreksi bobot untuk memperbaiki nilai bobot antara lapisan input dan lapisan tersembunyi (vji), yaitu:
Kemudian menghitung koreksi bias untuk memperbaiki nilai bobot antara lapisan input dan lapisan tersembunyi (vj0), yaitu:
Pengoreksian/Perubahan Bobot Tiap-tiap unit keluaran (yk, k = 1, 2, 3,..., m) memperbaiki bobot dan bias, yaitu: wkj (baru) = wkj (lama) + wkj, ( k = 1, 2,..., m ; j = 0, 1,..., p) Tiap-tiap unit tersembunyi memperbaiki bobot dan bias, yaitu: v ji (baru) = v ji (lama) + v ji, ( j = 1, 2,..., p ; i = 0,1,.., n)
Merupakan pengembangan dari metode EBP Algoritma ini dibangun untuk mengatasi beberapa kekurangan yang ada pada algoritma error back propagation dengan memanfaatkan teknik optimisasi numerik standar yaitu menggunakan pendekatan matriks Jacobian.
Menghitung error dan total error jaringan Rumus untuk error. e r = t r y r r merupakan input ke-r Rumus untuk menghitung total error. e = [e 1 e 2 e 3... e N ] T e merupakan vektor kesalahn berukuran Nx1 yang terdiri dari e r r = 1,2,3...N
Menghitung matriks Jacobian J(x) x merupakan matriks yang berisi nilai bobot dan bias dari keseluruhan jaringan. X = [ v 11, v 12,..., v ij; v 01, v 02,... v 0j ; w 11, w 12... wjk ; w 01, w 02...w 0K ] Matriks Jacobian berisi turunan pertama error jaringan terhadap bobot dan bias jaringan. Rumus untuk mencari Jacobian Matriks.
Menghitung perubahan atau koreksi bobot dan biasnya dengan rumus : Dengan nilai gradient :