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
Hitung maju kembali
Hitung kembali MSE
Stop criteria : Jika MSEbaru lebih kecil atau sama dengan MSEmin atau jumlah epoch max sudah terpenuhi
No Berhenti
Yes
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 Uji Coba 1 Uji Coba 2 Uji Coba 3 Uji Coba 4
Uji Coba 5 Uji Coba 6 Uji Coba 7
Uji Coba 8 Uji Coba 9
Proporsi Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut Proporsi dari dataset Atribut
Training (%) 10 2 20 2 30 2 40 2 50 2 60 2 70 2 80 2 90% 2
Testing (%) 90 2 80 2 70 2 60 2 50 2 40 2 30 2 20 2 10% 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 Kuning Langsat Kuning Langsat
Variabel Rentang Usia female teen female young
Input pada Sistem 0 0 0 0,3
Kuning Langsat
female adult
0
0,6
Kuning Langsat Sawo matang Sawo matang
female senior female teen female young
0 1 1
1 0 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 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
Nomor lipstik 9 48 12 22 29 15 50 3 52 53
Warna lipstik orange terang merah hati merah terang coklat metalic merah rose coklat terang peach dark pink 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 (log2(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. er = tr – yr r merupakan input ke-r • Rumus untuk menghitung total error.
e = [e1 e2 e3 ... eN]T e merupakan vektor kesalahn berukuran Nx1 yang terdiri dari er r = 1,2,3...N
Menghitung matriks Jacobian J(x) x merupakan matriks yang berisi nilai bobot dan bias dari keseluruhan jaringan. X = [ v11, v12, . . . , v ij; v 01, v 02, . . . v0j ; w11, w12 . . . wjk ; w01, w02 . . .w0K] 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 :