2. Profil Pengajar
DTS 2021
Photo Pengajar
Jabatan Akademik (tahun dan jabatan terakhir Pengajar)
Latarbelakang Pendidikan Pengajar
● AAA
● BBB
● CCC
Riwayat Pekerjaan
● AAA
● BBB
● CCC
Contact Pengajar
Ponsel :
Email :
3. Course Definition
● Modul ini adalah bagian pertama dari Membangun Model
● Membangun Model yang dibahas adalah :
○ Merancang Skenario Model
○ Membangun Model Klasifikasi
● Terdapat beberapa algoritma yang akan dibahas yaitu k-Nearest
Neighbor, Naive Bayes, Support Vector Maching, Boosting dan
Decision Tree
● Pembangunan model menggunakan library
● Modul ini akan dilanjutkan dengan pembahasan pembangunan
model regresi pada modul 12.
3
4. Learning Objective
Dalam pelatihan modul 11 ini diharapkan:
A. Peserta mampu melakukan kegitan persiapan
pemodelan seperti pembagian data, penyusunan
skenario pemodelan
B. Peserta mampu melakukan mampu melakukan proses
pemodelan klasifikasi
4
5. Outline
● Membangun Skenario Pemodelan :
• Pembagian data : data latih-uji, k-fold cross validation
• Menentukan Langkah Eksperimen
• Parameter Evaluasi
● Membangun Model Klasifikasi :
• Algoritma klasifikasi yang diimplementasi menggunakan
library, yaitu : k-NN, Decision Tree, Naïve Bayes, Support Vector
Machine dan Boosting
• Matriks Performansi Klasifikasi
5
6. Pembagian Data
● Data dibagi menjadi 2 bagian :
○ Data Latih (Training Data) : untuk mengembangkan model
○ Data Uji (Testing Data) : untuk Mengukur performansi model
6
Split
Data
Data
Latih
Data
Uji
7. Pembagian Data
● Dataset Iris (https://archive.ics.uci.edu/ml/datasets/iris ):
○ Data Latih (Training Data) : 70%
○ Data Uji (Testing Data) : 30%
7
9. k-Fold Cross Validation
● k-Fold Cross Validation digunakan pada dataset dengan jumlah data yang relatif sedikit
● k-Fold Cross Validation dilakukan pada data latih
● Data latih dibagi menjadi k bagian kemudian secara iteratif, 1 bagian menjadi data validasi
9
Image Source : https://medium.com/the-owl/k-fold-cross-validation-in-keras-3ec4a3a00538
10. Hands On
10
5 Cross Validation
Output akurasi dari setiap fold
Akurasi rata- rata dari seluruh fold
11. Training – Validation – Testing Data
11
Training Validation Test
Model Selection Model assessment
● Model Selection : Mengestimasi performa model - model yang berbeda untuk memilih
model yang terbaik, yaitu model dengan minimum error
● Model Assessment : Dari model yang terpilih, mengestimasi error untuk data baru (data uji)
12. Menentukan Langkah Eksperimen
12
● Setiap metode memiliki parameter tertentu
● Dilakukan eksperimen dengan beberapa variasi parameter
● Parameter yang menghasilkan model performa terbaik akan digunakan selanjutnya
● Beberapa strategi pencarian parameter untuk menghasilkan model terbaik
One Factor at A Time Grid Search
Best Guess
13. Parameter Evaluasi
● Klasifikasi
○ Akurasi
○ Presisi
○ Recall/Sensitivity
○ Specificity
○ F1-measure
○ …
● Regresi
○ MSE (Mean Squared Error)
○ MAPE (Mean Absolute Percentage Error)
○ …
● Klastering
○ Silhouette Score
○ Davies-Bouldin Index
○ …
● Parameter Evaluasi akan dijelaskan secara detail pada modul – modul berikutnya
13
14. Outline
● Membangun Skenario Pemodelan :
• Pembagian data : data latih-uji, k-fold cross validation
• Menentukan Langkah Eksperimen
• Parameter Evaluasi
● Membangun Model Klasifikasi :
• Algoritma klasifikasi yang diimplementasi menggunakan
library, yaitu : k-NN, Decision Tree, Naïve Bayes, Support Vector
Machine dan Boosting
• Matriks Performansi Klasifikasi
14
15. k – Nearest Neighbor (k-NN) Classifier
15
● Algoritma :
○ Menentukan nilai k
○ Menghitung jarak antara data baru
terhadap semua training data
○ Mengidentifikasi k nearest neighbor
○ Menentukan label/kelas data baru
berdasarkan kelas k-nearest neighbor
(dapat menggunakan voting)
Nearest Neighbor terhadap data baru (x)
16. Contoh kasus
16
● Terdapat 4 data latih (P1, P2,
P3, P4). Data memiliki dua
atribut (x1 dan x2)
● Data latih terdiri dari dua
kelas (kelas BAD dan kelas
GOOD)
● Diperlukan klasifikasi untuk
menentukan kelas dari data
uji (P5).
18. Kelebihan dan Kekurangan k-NN Classifier
18
● Cocok untuk data numerik
● Mudah dipahami dan diimplementasikan
● k-NN merupakan lazy learner (tidak
membangun model secara eksplisit)
● Penentuan label/kelas data baru membutuhkan
computational cost yang cukup tinggi
● Perlu menentukan nilai k yang sesuai
○ Jika k terlalu kecil, sensitif terhadap noise
○ Jika k terlalu besar, nearest neigbor mungkin
mencakup data dari kelas lain
19. Hands On
19
k-NN Classifier
Proses training data latih,
prediksi data uji,
perhitungan akurasi
Output akurasi yang
dihasilkan k-NN classifier
20. Hands On (lanjutan)
20
Parameter Keterangan Contoh Nilai
n_neighbors Jumlah Neighbor
- Bilangan Integer (1,2,3,4,
….)
- Nilai default : 4
21. Decision Tree Classifier
21
● Membangun decision tree (pohon
keputusan) dari data latih
● Output dari pohon keputusan => rule.
Rule tersebut digunakan untuk
klasifikasi
● Pohon keputusan, terdiri dari :
○ Root Node
○ Internal Node
○ Leaf Node
Root node
Internal node
Leaf node Leaf node
Leaf node
22. Decision Tree Classifier
22
● Menghitung Gini Index (GI) untuk
setiap atribut
● Menentukan root berdasarkan nilai
GI. Root adalah atribut dengan nilai
GI terkecil.
● Ulangi langkah 1 dan 2 untuk level
berikutnya pada tree hingga nilai GI =
0.
● Data latih terdiri dari 7 data. Data terdiri
dari 3 atribut.
● Terdapat 2 kelas : Beli dan Tidak Beli
27. Penentuan Root
27
● Gini Index “Kebutuhan Primer” : 0.44
● Gini Index “Sudah gajian” : 0.22
● Gini Index “Harga barang < 15000” : 0.34
● Attribut yang terpilih sebagai root adalah
”Sudah Gajian”
● Dilakukan proses perhitungan Gini Index
bagi left node untuk attribut ”Kebutuhan
Primer” dan ”Sudah Gajian”
Merupakan internal
node sehingga
memerlukan
perhitungan Gini Index
Leaf node
29. Hands On
29
Decision tree classifier
Proses training data latih,
prediksi data uji,
perhitungan akurasi
Output akurasi yang
dihasilkan oleh Decision
Tree classifier
30. Hands On (lanjutan)
Parameter Keterangan Contoh Nilai
max_depth
Maksimum kedalaman
tree yang dibentuk
- Bilangan Integer (1,2,3,4,….)
- Nilai default : None (jika None maka tree akan terus
mendalam sampai seluruh Gini Impurity = 0)
min_samples_split
Minimum sampel yang
diperlukan agar node
dapat ‘split’
- Bilangan Integer (1,2,3,4,….)
- Nilai default : 2
31. Kelebihan dan Kekurangan Decision Tree Classifier
31
● Pohon keputusan dapat memberikan penjelasan dari proses
klasifikasi yang dilakukan berupa rule yang dihasilkan
● Proses pembangunan pohon keputusan pada data numerik
menjadi lebih rumit dan memungkinkan terdapat informasi
yang hilang
● Pohon keputusan dapat tumbuh menjadi sangat kompleks
pada data yang rumit.
32. Naïve Bayes Classifier
32
● Membangun probabilistik model untuk klasifikasi
○ Discriminative Model
○ Generative Model
● MAP Classification Rule
○ MAP : Maximum A Posterior
○ Assign
● Generative classification dengan MAP rule
○ Menerapkan Bayesian Rule
33. Contoh Kasus
33
● Terdapat 14 data latih. Data
memiliki 4 atribut (Outlook,
Temperature, Humidity dan
Wind)
● Data latih terdiri dari dua
kelas (kelas YES dan kelas NO
untuk bermain tenis)
● Diperlukan klasifikasi untuk
menentukan kelas dari data
uji, apakah bermain tenis (YES)
atau tidak (NO).
36. Hands On
36
Proses training data latih,
prediksi data uji,
perhitungan akurasi
Naïve Bayes Classifier
Output akurasi yang
dihasilkan oleh Naïve
Bayes Classifier
37. Kelebihan dan Kekurangan Naïve Bayes Classifier
37
● Naïve Bayes Classifier bekerja lebih baik pada training data yang
kecil
● Proses pembangunan Naïve Bayes Classifier pada data numerik
menjadi lebih rumit dan memungkinkan terdapat informasi yang
hilang
● Pada Naïve Bayes Classifier, diasumsikan bahwa satu fitur dengan
fitur yang lain saling independen, hal ini mungkin tidak selalu
terjadi pada kasus nyata
38. Support Vector Machine
38
● Ide utama dari SVM adalah
untuk menemukan hyperplane
terbaik yang memisahkan 2
daerah keputusan dengan baik
● Hyperplane adalah sebuah
fungsi yang dapat digunakan
sebagai pemisah antar kelas
39. Support Vector Machine
39
Algoritma SVM :
● Ide Fitur-fitur dari data dipetakan ke dalam ruang
dimensi lebih tinggi menggunakan fungsi kernel
(linear, polynomial, radial basis function, sigmoid).
● Mencari hyperplane terbaik yang memisahkan
data yang telah dipetakan dalam ruang dimensi
tinggi.
● Hyperplane terbaik dapat diperoleh dengan
memaksimalkan jarak hyperplane dengan titik
data terdekat (Support Vectors)
40. Kernel pada Support Vector Machine
40
● Fitur-fitur dari data dipetakan ke
dalam ruang dimensi tinggi
menggunakan fungsi kernel (linear,
polynomial, sigmoid, atau radial
basis function)
● Dengan menggunakan fungsi kernel,
akan dihasilkan fitur-fitur baru yang
akan digunakan untuk
mengklasifikasi (tidak lagi
menggunakan fitur-fitur lama)
41. Parameter C pada Support Vector Machine
41
● Nilai C yang terbaik harus dicari agar SVM terjadi
keseimbangan antara jarak semaksimal dan kesalahan
klasifikasi seminimal mungkin.
● Nilai C yang tinggi = model akan menerima lebih banyak
penalti ketika model gagal mengklasifikasikan data
dengan tepat.
● Nilai C yang rendah = model akan mentolerir data yang
salah diklasifikasikan.
● Nilai C yang rendah biasanya baik digunakan pada data
yang memiliki banyak noise, sebaliknya nilai C yang
tinggi biasanya baik digunakan pada data yang memiliki
sedikit noise.
Sumber: https://learnopencv.com/svm-using-scikit-learn-in-python/
42. Parameter γ pada Support Vector Machine
42
Nilai γ yang besar akan menghasilkan kelengkungan yang
tajam pada ruang dimensi tinggi. Sebaliknya, nilai γ yang kecil
akan menghasilkan ruang dimensi tinggi yang lebih landai.
43. Hands On
43
Parameter Keterangan Contoh Nilai
kernel
Memilih kernel
untuk SVM
- ‘linear’ untuk linear kernel
- ‘poly’ untuk polynomial kernel
- ‘rbf’ untuk radial basis function
kernel
- Nilai default : rbf
C
Parameter
regularisasi SVM
untuk semua
kernel
- Bilangan Float positif (…, 0.1, 0.5,
1.0, 1.5 , …)
- Nilai default = 1.0
gamma
Parameter
koefisien kernel
untuk ‘poly’ dan
‘rbf’
- Bilangan Float positif (…, 0.001,
0.01, 0.1, 1, …)
degree
Derajat polynomial
untuk kernel ‘poly’)
- Bilangan Integer (2,3,4,….)
- Nilai default : 3
44. Hands On (lanjutan)
44
Support Vector Machine
Proses training data latih,
prediksi data uji,
perhitungan akurasi
Output akurasi yang
dihasilkan oleh Naïve
Bayes Classifier
45. Kelebihan dan Kekurangan Support Vector Machine
45
● SVM menggunakan strategi kernel sehingga dapat mengatasi
data yang kompleks.
● Outlier dapat diatasi menggunakan soft margin constant C.
● Hyper parameter dan kernel perlu di-tuning untuk
mendapatkan akurasi yang diharapkan
● Waktu training yang lebih lama untuk dataset yang lebih besar
46. Boosting Algorithm
46
● Weak Model menjadi Strong Model
● Mengkombinasikan hasil prediksi
dari setiap weak model dengan
metode
○ Average/Weighted Average
○ Higher voting
● Tipe Boosting
○ AdaBoost (Adaptive Boosting)
○ Gradient Tree Boosting
○ XGBoost
Image Source : https://towardsdatascience.com/boosting-algorithms-explained-d38f56ef3f30
47. AdaBoost (Adaptive Boosting)
47
● AdaBoost mengidentifikasi miss-classified
data
● Memberikan bobot lebih terhadap miss-
classified data, sehingga classifier berikutnya
lebih concern terhadap hal tersebut
Image Source :
https://www.analyticsvidhya.com/blog/2015/11/quick-introduction-boosting-algorithms-machine-learning
Image source :
https://www.datacamp.com/community/tutorials/adaboost-classifier-python
49. Hands On (lanjutan)
49
Parameter Keterangan Contoh Nilai
n_estimators
Jumlah weak learner yang
digunakan
- Bilangan Integer (…,10,11,12,…)
- Nilai default = 50
learning_rate
Bobot setiap classifier untuk
setiap iterasi boosting
- Bilangan Float positif (…, 0.1, 0.5, 1.0, 1.5 , …)
- Nilai default = 1.0
53. Summary
● Perancangan skenario eksperimen merupakan langkah yang dilakukan
sebelum membangun model
● Perancangan scenario eksperimen terdiri dari beberapa item :
○ Pembagian Data
○ Strategi langkah eksperimen
○ Parameter evaluasi yang digunakan
● Model klasifikasi dibangun dengan beberapa pilihan algoritma
● Setiap algoritma klasifikasi memiliki kelebihan dan kekurangan
● Perlu dilakukan eksperimen yang komprehensif untuk mendapatkan model
yang terbaik bagi suatu kasus/dataset
53
54. Tugas Harian
● Gunakan dataset Iris (https://archive.ics.uci.edu/ml/datasets/iris)
● Data dibagi dengan proporsi :
○ Data Latih (70%)
○ Data Uji (30%)
● Gunakan metode klasifikasi dengan parameter tuning untuk mendapatkan
akurasi terbaik
● Terapkan Adaboost algorithm dan lakukan analisa perbandingan terhadap
performa yang dihasilkan dari metode klasifikasi sebelumnya