Machine Learning Classification
Pengantar
• Mesin Pembelajaran adalah sebuah bidang studi dan
berfokus pada algoritma pembelajaran dari contoh.
• Klasifikasi adalah tugas yang membutuhkan
penggunaan algoritma mesin pembelajaran yang
mempelajari cara menetapkan label kelas untuk
contoh-contoh dari domain masalah. Contoh yang
mudah dipahami adalah mengklasifikasikan email
sebagai "spam" atau "bukan spam."
• Ada banyak jenis tugas klasifikasi yang mungkin kita
temui dalam mesin pembelajaran dan pendekatan
khusus untuk pemodelan yang dapat digunakan untuk
setiap masing-masing mesin tersebut.
Jenis pemodelan prediktif klasifikasi
dalam mesin pembelajaran
• Pemodelan prediktif klasifikasi melibatkan
pemberian label kelas untuk memasukkan
contoh.
• Klasifikasi biner mengacu pada memprediksi satu
dari dua kelas dan klasifikasi multi-kelas
melibatkan memprediksi satu dari lebih dari dua
kelas.
• Klasifikasi multi-label melibatkan memprediksi
satu atau lebih kelas untuk setiap contoh dan
klasifikasi tidak seimbang mengacu pada tugas
klasifikasi di mana distribusi contoh di seluruh
kelas tidak sama.
Tipe Klasifikasi
1. Classification Predictive
Modeling/Pemodelan Prediktif Klasifikasi
2. Binary Classification/Klasifikasi Biner
3. Multi-Class Classification/Klasifikasi Multi-
Kelas
4. Multi-Label Classification/Klasifikasi Multi-
Label
5. Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
Pemodelan Prediktif Klasifikasi
• Dalam mesin pembelajaran, klasifikasi mengacu pada masalah pemodelan
prediktif di mana label kelas diprediksi untuk contoh input data tertentu.
• Contoh masalah klasifikasi meliputi:
– Diberikan contoh, mengklasifikasikan apakah itu spam atau tidak.
– Diberikan karakter tulisan tangan, mengklasifikasikannya sebagai salah satu
karakter yang dikenal.
– Diberikan perilaku pengguna baru-baru ini, diklasifikasikan sebagai churn
atau tidak.
– Dari perspektif pemodelan, klasifikasi membutuhkan dataset pelatihan
dengan banyak contoh input dan output yang dapat dipelajari.
• Sebuah model akan menggunakan dataset pelatihan dan akan menghitung cara
terbaik memetakan contoh data input ke label kelas tertentu. Dengan demikian,
set data pelatihan harus cukup mewakili masalah dan memiliki banyak contoh
masing-masing label kelas.
• Label kelas sering berupa nilai string, mis. "Spam," "bukan spam," dan harus
dipetakan ke nilai numerik sebelum diberikan ke algoritma untuk pemodelan. Ini
sering disebut sebagai pengkodean label, di mana integer unik ditugaskan untuk
setiap label kelas, mis. “Spam” = 0, “tidak ada spam” = 1.
Pemodelan Prediktif Klasifikasi
• Ada banyak jenis algoritma klasifikasi untuk pemodelan klasifikasi pemodelan masalah
prediktif.
• Tidak ada teori yang baik tentang cara memetakan algoritma ke jenis masalah; sebagai
gantinya, umumnya direkomendasikan bahwa seorang praktisi menggunakan eksperimen
terkontrol dan menemukan algoritma dan konfigurasi algoritma mana yang menghasilkan
kinerja terbaik untuk tugas klasifikasi tertentu.
• Algoritma pemodelan prediktif klasifikasi dievaluasi berdasarkan hasilnya. Akurasi
klasifikasi adalah metrik populer yang digunakan untuk mengevaluasi kinerja model
berdasarkan label kelas yang diprediksi. Akurasi klasifikasi tidak sempurna tetapi
merupakan titik awal yang baik untuk banyak tugas klasifikasi.
• Sebagai ganti label kelas, beberapa tugas mungkin memerlukan prediksi probabilitas
keanggotaan kelas untuk setiap contoh. Ini memberikan ketidakpastian tambahan dalam
prediksi yang dapat ditafsirkan oleh aplikasi atau pengguna. Diagnosis populer untuk
mengevaluasi probabilitas yang diprediksi adalah Kurva ROC. ( Receiver Operating
Characteristic)
• Ada empat jenis tugas klasifikasi yang mungkin kita temui; yaitu:
– Klasifikasi Biner
– Klasifikasi Multi-Kelas
– Klasifikasi Multi-Label
– Klasifikasi yang Tidak Seimbang
Binary Classification/Klasifikasi Biner
• Klasifikasi biner mengacu pada tugas-tugas klasifikasi yang memiliki dua label kelas.
• Contohnya termasuk:
– Deteksi spam email (spam atau tidak).
– Prediksi churn (churn atau tidak).
– Prediksi konversi (beli atau tidak).
– Biasanya, tugas klasifikasi biner melibatkan satu kelas yang merupakan keadaan
normal dan kelas lain yang merupakan keadaan abnormal.
• Misalnya "bukan spam" adalah keadaan normal dan "spam" adalah keadaan
abnormal. Contoh lain adalah "kanker tidak terdeteksi" adalah keadaan normal dari
suatu tugas yang melibatkan tes medis dan "kanker terdeteksi" adalah keadaan
abnormal.
• Kelas untuk keadaan normal diberikan label kelas 0 dan kelas dengan keadaan
abnormal diberikan label kelas 1.
• Adalah umum untuk memodelkan tugas klasifikasi biner dengan model yang
memprediksi distribusi probabilitas Bernoulli untuk setiap contoh.
• Distribusi Bernoulli adalah distribusi probabilitas diskrit yang mencakup kasus di
mana suatu peristiwa akan memiliki hasil biner sebagai 0 atau 1. Untuk klasifikasi, ini
berarti bahwa model tersebut memprediksi probabilitas contoh yang termasuk kelas
1, atau keadaan abnormal. .
Binary Classification/Klasifikasi Biner
• Algoritma populer yang dapat digunakan untuk klasifikasi biner
meliputi:
– Logistic Regression
– k-Nearest Neighbors
– Decision Trees
– Support Vector Machine
– Naive Bayes
• Beberapa algoritma secara khusus dirancang untuk klasifikasi biner
dan tidak mendukung secara asli lebih dari dua kelas; contoh
termasuk Regresi Logistik dan Mesin Vektor Dukungan.
• Selanjutnya, mari kita lihat lebih dekat pada dataset untuk
mengembangkan intuisi untuk masalah klasifikasi biner.
• Kita dapat menggunakan fungsi make_blobs () untuk menghasilkan
dataset klasifikasi biner sintetis.
Binary Classification/Klasifikasi Biner
• Contoh di bawah ini menghasilkan dataset dengan 1.000 contoh yang termasuk
dalam salah satu dari dua kelas, masing-masing dengan dua fitur input.
# example of binary classification task
from numpy import where
from collections import Counter
from [Link] import make_blobs
from matplotlib import pyplot
# define dataset
X, y = make_blobs(n_samples=1000, centers=2, random_state=1)
# summarize dataset shape
print([Link], [Link])
# summarize observations by class label
counter = Counter(y)
print(counter)
# summarize first few examples
for i in range(10):
print(X[i], y[i])
# plot the dataset and color the by class label
for label, _ in [Link]():
row_ix = where(y == label)[0]
[Link](X[row_ix, 0], X[row_ix, 1], label=str(label))
[Link]()
[Link]()
• Contoh pertama meringkas dataset yang dibuat menunjukkan 1.000 contoh dibagi
menjadi elemen input (X) dan output (y).
• Distribusi label kelas kemudian dirangkum, menunjukkan bahwa instance milik
kelas 0 atau kelas 1 dan bahwa ada 500 contoh di setiap kelas.
Binary Classification/Klasifikasi Biner
• Selanjutnya, 10 contoh pertama dalam dataset dirangkum, menunjukkan nilai
input numerik dan nilai target adalah bilangan bulat yang mewakili keanggotaan
kelas.
(1000, 2) (1000,)
Counter({0: 500, 1: 500})
[-3.05837272 4.48825769] 0
[-8.60973869 -3.72714879] 1
[1.37129721 5.23107449] 0
[-9.33917563 -2.9544469 ] 1
[-11.57178593 -3.85275513] 1
[-11.42257341 -4.85679127] 1
[-10.44518578 -3.76476563] 1
[-10.44603561 -3.26065964] 1
[-0.61947075 3.48804983] 0
[-10.91115591 -4.5772537 ] 1
• Akhirnya, sebaran plot dibuat untuk variabel input dalam dataset dan titik-titik
diwarnai berdasarkan nilai kelas mereka.
• Kita dapat melihat dua kelompok berbeda yang mungkin kita harapkan akan
mudah dibedakan.
Binary Classification/Klasifikasi Biner
Plot sebaran Dataset Klasifikasi Biner
Multi-Class Classification/Klasifikasi Multi-Kelas
• Klasifikasi multi-kelas mengacu pada tugas-tugas klasifikasi yang
memiliki lebih dari dua label kelas.
• Contohnya termasuk:
– Klasifikasi wajah.
– Klasifikasi spesies tanaman.
– Pengenalan karakter optis.
• Tidak seperti klasifikasi biner, klasifikasi multi-kelas tidak memiliki
gagasan hasil yang normal dan abnormal. Sebagai gantinya, contoh
diklasifikasikan sebagai milik salah satu di antara berbagai kelas yang
dikenal.
• Jumlah label kelas mungkin sangat besar pada beberapa masalah.
Misalnya, seorang model dapat memperkirakan foto sebagai milik
salah satu di antara ribuan atau puluhan ribu wajah dalam sistem
pengenalan wajah.
Multi-Class Classification/Klasifikasi Multi-Kelas
• Masalah yang melibatkan memprediksi urutan kata-kata, seperti
model terjemahan teks, juga dapat dianggap sebagai jenis klasifikasi
multi-kelas khusus. Setiap kata dalam urutan kata yang akan
diprediksi melibatkan klasifikasi multi-kelas di mana ukuran kosakata
mendefinisikan jumlah kelas yang mungkin dapat diprediksi dan bisa
berukuran puluhan atau ratusan ribu kata.
• Adalah umum untuk memodelkan tugas klasifikasi multi-kelas
dengan model yang memprediksi distribusi probabilitas Multinoulli
untuk setiap contoh.
• Distribusi Multinoulli adalah distribusi probabilitas diskrit yang
mencakup kasus di mana suatu peristiwa akan memiliki hasil yang
pasti, mis. K dalam {1, 2, 3, ..., K}. Untuk klasifikasi, ini berarti bahwa
model tersebut memprediksi probabilitas contoh yang dimiliki oleh
masing-masing label kelas.
• Banyak algoritma yang digunakan untuk klasifikasi biner dapat
digunakan untuk klasifikasi multi-kelas.
Multi-Class Classification/Klasifikasi Multi-Kelas
• Algoritma populer yang dapat digunakan untuk klasifikasi multi-
kelas meliputi:
– k-Nearest Neighbors.
– Decision Trees.
– Naive Bayes.
– Random Forest.
– Gradient Boosting.
• Algoritma yang dirancang untuk klasifikasi biner dapat diadaptasi
untuk digunakan untuk masalah multi-kelas.
• Ini melibatkan penggunaan strategi pemasangan model klasifikasi
biner berganda untuk setiap kelas vs semua kelas lainnya (disebut
one-vs-rest) atau satu model untuk setiap pasangan kelas (disebut
one-vs-one).
– One-vs-Rest: Pas satu model klasifikasi biner untuk setiap kelas vs semua kelas
lainnya.
– One-vs-One: Pas satu model klasifikasi biner untuk setiap pasangan kelas.
Multi-Class Classification/Klasifikasi Multi-Kelas
• Algoritma klasifikasi biner yang # example of multi-class classification task
dapat menggunakan strategi ini from numpy import where
untuk klasifikasi multi-kelas from collections import Counter
meliputi: from [Link] import make_blobs
– Logistic Regression. from matplotlib import pyplot
– Support Vector Machine. # define dataset
X, y = make_blobs(n_samples=1000, centers=3,
• Selanjutnya, mari kita lihat lebih
random_state=1)
dekat pada dataset untuk
# summarize dataset shape
mengembangkan intuisi untuk
print([Link], [Link])
masalah klasifikasi multi-kelas.
# summarize observations by class label
• Kita dapat menggunakan fungsi counter = Counter(y)
make_blobs () untuk print(counter)
menghasilkan dataset klasifikasi # summarize first few examples
multi-kelas sintetis. for i in range(10):
• Contoh disamping ini print(X[i], y[i])
menghasilkan dataset dengan # plot the dataset and color the by class label
1.000 contoh yang termasuk for label, _ in [Link]():
dalam salah satu dari tiga kelas, row_ix = where(y == label)[0]
masing-masing dengan dua fitur [Link](X[row_ix, 0], X[row_ix, 1],
input. label=str(label))
[Link]()
[Link]()
Multi-Class Classification/Klasifikasi Multi-Kelas
• Contoh pertama meringkas dataset yang
(1000, 2) (1000,)
dibuat menunjukkan 1.000 contoh dibagi
menjadi elemen input (X) dan output (y).
Counter({0: 334, 1: 333, 2: 333})
• Distribusi label kelas kemudian dirangkum,
menunjukkan bahwa instance milik kelas 0, [-3.05837272 4.48825769] 0
kelas 1, atau kelas 2 dan bahwa ada sekitar [-8.60973869 -3.72714879] 1
333 contoh di setiap kelas. [1.37129721 5.23107449] 0
• Selanjutnya, 10 contoh pertama dalam [-9.33917563 -2.9544469 ] 1
dataset dirangkum menunjukkan nilai input [-8.63895561 -8.05263469] 2
numerik dan nilai target adalah bilangan bulat [-8.48974309 -9.05667083] 2
yang mewakili keanggotaan kelas. [-7.51235546 -7.96464519] 2
• Akhirnya, sebaran plot dibuat untuk variabel [-7.51320529 -7.46053919] 2
input dalam dataset dan titik-titik diwarnai [-0.61947075 3.48804983] 0
berdasarkan nilai kelas mereka. [-10.91115591 -4.5772537 ] 1
Multi-Class Classification/Klasifikasi Multi-Kelas
Plot Sebaran Multi-Klasifikasi Dataset
Multi-Label Classification/Klasifikasi Multi-Label
• Klasifikasi multi-label mengacu pada tugas-tugas klasifikasi
yang memiliki dua atau lebih label kelas, di mana satu atau
beberapa label kelas dapat diprediksi untuk setiap contoh.
• Perhatikan contoh klasifikasi foto, di mana foto yang
diberikan mungkin memiliki beberapa objek dalam adegan
dan model dapat memprediksi keberadaan beberapa objek
yang dikenal dalam foto, seperti "sepeda," "apel," "orang,"
dll.
• Ini tidak seperti klasifikasi biner dan klasifikasi multi-kelas,
di mana label kelas tunggal diprediksi untuk setiap contoh.
• Adalah umum untuk memodelkan tugas klasifikasi multi-
label dengan model yang memprediksi banyak output,
dengan setiap pengambilan diprediksi sebagai distribusi
probabilitas Bernoulli. Ini pada dasarnya adalah model yang
membuat beberapa prediksi klasifikasi biner untuk setiap
contoh
Multi-Label Classification/Klasifikasi Multi-Label
• Algoritma klasifikasi yang digunakan untuk klasifikasi biner atau
multi-kelas tidak dapat digunakan secara langsung untuk
klasifikasi multi-label. Versi khusus dari algoritma klasifikasi
standar dapat digunakan, yang disebut versi multi-label dari
algoritma, termasuk:
– Multi-label Decision Trees
– Multi-label Random Forests
– Multi-label Gradient Boosting
• Pendekatan lain adalah dengan menggunakan algoritma
klasifikasi terpisah untuk memprediksi label untuk setiap kelas.
• Selanjutnya, mari kita lihat lebih dekat pada dataset untuk
mengembangkan intuisi untuk masalah klasifikasi multi-label.
• Kita dapat menggunakan fungsi make_multilabel_classification ()
untuk menghasilkan dataset klasifikasi multi-label sintetik.
Multi-Label Classification/Klasifikasi Multi-Label
• Contoh di bawah ini menghasilkan dataset dengan 1.000 contoh,
masing-masing dengan dua fitur input. Ada tiga kelas, masing-
masing dapat mengambil satu dari dua label (0 atau 1).
# example of a multi-label classification task
from [Link] import make_multilabel_classification
# define dataset
X, y = make_multilabel_classification(n_samples=1000, n_features=2,
n_classes=3, n_labels=2, random_state=1)
# summarize dataset shape
print([Link], [Link])
# summarize first few examples
for i in range(10):
print(X[i], y[i])
Multi-Label Classification/Klasifikasi Multi-Label
• Contoh pertama meringkas
(1000, 2) (1000, 3)
dataset yang dibuat
menunjukkan 1.000 contoh [18. 35.] [1 1 1]
dibagi menjadi elemen input [22. 33.] [1 1 1]
[26. 36.] [1 1 1]
(X) dan output (y). [24. 28.] [1 1 0]
[23. 27.] [1 1 0]
[15. 31.] [0 1 0]
• Selanjutnya, 10 contoh [20. 37.] [0 1 0]
pertama dalam dataset [18. 31.] [1 1 1]
dirangkum menunjukkan nilai [29. 27.] [1 0 0]
[29. 28.] [1 1 0]
input numerik dan nilai target
adalah bilangan bulat yang
mewakili keanggotaan label
kelas.
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Klasifikasi tidak seimbang mengacu pada tugas klasifikasi di
mana jumlah contoh di setiap kelas didistribusikan secara
tidak merata.
• Biasanya, tugas klasifikasi tidak seimbang adalah tugas
klasifikasi biner di mana sebagian besar contoh dalam
dataset pelatihan termasuk kelas normal dan sebagian kecil
contoh milik kelas abnormal.
• Contohnya termasuk:
– Fraud detection.
– Outlier detection.
– Medical diagnostic tests.
• Masalah-masalah ini dimodelkan sebagai tugas klasifikasi
biner, meskipun mungkin memerlukan teknik khusus.
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Teknik-teknik khusus dapat digunakan untuk mengubah
komposisi sampel dalam dataset pelatihan dengan
undersampling kelas mayoritas atau oversampling kelas
mayoritas.
• Contohnya termasuk:
– Random Undersampling.
– SMOTE Oversampling.
• Algoritma pemodelan khusus dapat digunakan yang lebih
memperhatikan kelas minoritas ketika memasang model
pada set data pelatihan, seperti algoritma pembelajaran
mesin yang sensitif biaya.
• Contohnya termasuk:
– Cost-sensitive Logistic Regression.
– Cost-sensitive Decision Trees.
– Cost-sensitive Support Vector Machines.
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Akhirnya, metrik kinerja alternatif mungkin
diperlukan karena melaporkan akurasi klasifikasi
mungkin menyesatkan.
• Contohnya termasuk:
– Precision.
– Recall.
– F-Measure.
• Selanjutnya, mari kita lihat lebih dekat pada
dataset untuk mengembangkan intuisi untuk
masalah klasifikasi yang tidak seimbang.
• Kita dapat menggunakan fungsi
make_classification () untuk menghasilkan dataset
klasifikasi biner sintetis yang tidak seimbang.
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Contoh di bawah ini menghasilkan dataset dengan 1.000 contoh
yang termasuk dalam salah satu darai dua kelas, masing-masing
dengan dua fitur input.
# example of an imbalanced binary classification task
from numpy import where
from collections import Counter
from [Link] import make_classification
from matplotlib import pyplot
# define dataset
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_classes=2,
n_clusters_per_class=1, weights=[0.99,0.01], random_state=1)
# summarize dataset shape
print([Link], [Link])
# summarize observations by class label
counter = Counter(y)
print(counter)
# summarize first few examples
for i in range(10):
print(X[i], y[i])
# plot the dataset and color the by class label
for label, _ in [Link]():
row_ix = where(y == label)[0]
[Link](X[row_ix, 0], X[row_ix, 1], label=str(label))
[Link]()
[Link]()
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Contoh pertama meringkas dataset
yang dibuat menunjukkan 1.000 contoh (1000, 2) (1000,)
dibagi menjadi elemen input (X) dan
output (y). Counter({0: 983, 1: 17})
• Distribusi label kelas kemudian [0.86924745 1.18613612] 0
dirangkum, menunjukkan [1.55110839 1.81032905] 0
ketidakseimbangan kelas yang parah [1.29361936 1.01094607] 0
dengan sekitar 980 contoh milik kelas 0 [1.11988947 1.63251786] 0
dan sekitar 20 contoh milik kelas 1. [1.04235568 1.12152929] 0
[1.18114858 0.92397607] 0
• Selanjutnya, 10 contoh pertama dalam [1.1365562 1.17652556] 0
dataset dirangkum menunjukkan nilai [0.46291729 0.72924998] 0
input numerik dan nilai target adalah [0.18315826 1.07141766] 0
bilangan bulat yang mewakili [0.32411648 0.53515376] 0
keanggotaan kelas. Dalam hal ini, kita
dapat melihat bahwa sebagian besar
contoh milik kelas 0, seperti yang kita
harapkan.
Imbalanced Classification/ Klasifikasi yang
Tidak Seimbang
• Akhirnya, sebaran plot dibuat untuk variabel input dalam dataset dan titik-titik diwarnai
berdasarkan nilai kelas mereka.
• Kita dapat melihat satu kelompok utama untuk contoh-contoh yang termasuk kelas 0 dan
beberapa contoh tersebar yang termasuk kelas 1. Intuisi adalah bahwa dataset dengan properti
label kelas yang tidak seimbang ini lebih menantang untuk dimodelkan.
Plot Sebaran dari Dataset Klasifikasi Biner Ketidakseimbangan
Kesimpulan
• Kita menemukan berbagai jenis pemodelan
prediktif klasifikasi dalam pembelajaran mesin.
• Secara khusus:
– Pemodelan prediktif klasifikasi melibatkan pemberian
label kelas untuk memasukkan contoh.
– Klasifikasi biner mengacu pada memprediksi satu dari
dua kelas dan klasifikasi multi-kelas melibatkan
memprediksi satu dari lebih dari dua kelas.
– Klasifikasi multi-label melibatkan memprediksi satu
atau lebih kelas untuk setiap contoh dan klasifikasi
tidak seimbang mengacu pada tugas klasifikasi di
mana distribusi contoh di seluruh kelas tidak sama.
Referensi
• [Link]
itu-classification-dalam-machine-learning-
bcdf4fcdc614
• [Link]
of-classification-in-machine-learning/
• [Link]
in-machine-learning/