Modul 7
Modul 7
Tujuan
Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:
1. Memahami konsep klasifikasi multi kelas menggunakan SVM
2. Mengimplementasikan salah satu metode SVM untuk klasifikasi multi kelas
3. Tujuan 3
Dasar Teori
Algoritma klasifikasi SVM didesain untuk melakukan proses klasifikasi biner untuk
data yang hanya memiliki dua kelas saja. Namun, SVM dapat dimodifikasi untuk
menyelesaikan klasifikasi multi kelas dengan cara mengubah permasalahan multi kelas
menjadi beberapa permasalahan klasifikasi biner. Dua metode umum untuk menyelesaikan
permasalahan SVM multi kelas adalah one-vs-rest dan one-vs-all.
Metode on-vs-rest (atau biasa juga disebut one-vs-all atau one-against-all)
membentuk sebuah model SVM untuk setiap kelas yang ada. Sebagai contoh, pada dataset
Iris yang terdiri dari 3 kelas, maka akan terbentuk 3 model SVM sebagai berikut:
1. SVM1, berfungsi mengenali kelas Iris-setosa. Model ini dilatih menggunakan
dataset Iris, yang mana data latih dengan kelas Iris-setosa diberi target/label 1
sedangkan kelas lainnya diberi target/label -1.
2. SVM2, berfungsi mengenali kelas Iris-versicolor. Model ini dilatih menggunakan
dataset Iris, yang mana data latih dengan kelas Iris-versicolor diberi target/label 1
sedangkan kelas lainnya diberi target/label -1.
3. SVM3, berfungsi mengenali kelas Iris-virginica. Model ini dilatih menggunakan
dataset Iris, yang mana data latih dengan kelas Iris-virginica diberi target/label 1
sedangkan kelas lainnya diberi target/label -1.
Strategi kedua adalah one-vs-one yang memecah permasalahan multi kelas menjadi
permasalahan klasifikasi biner. Metode one-vs-one membentuk 𝐾(𝐾 − 1)/2 model, dimana
K menyatakan banyaknya kelas pada data. Setiap model ditujukan untuk mengenali
pasangan kelas tertentu. Dengan menggunakan contoh dataset Iris, maka akan terbentuk
3(3 − 1)/2 = 3 model sebagai berikut :
1. SVM1 mengenali Iris-setosa dan Iris-versicolor
2. SVM2 mengenali Iris-setosa dan Iris-virginica
3. SVM3 mengenali Iris-versicolor dan Iris virginica.
Praktikum ini akan menggunakan metode one-vs-rest untuk melakukan proses
klasifikasi data Iris. Metode one-vs-rest memanfaatkan klasifikasi SVM biner yang telah
diimplementasikan pada praktikum sebelumnya.
Praktikum
1. Import Data
Unduh dataset yang akan digunakan pada praktikum kali ini. Anda dapat
menggunakan aplikasi wget untuk mendowload dataset dan menyimpannya dalam Google
Colab. Jalankan cell di bawah ini untuk mengunduh dataset
! wget https://dataset-ppm.s3.amazonaws.com/iris.csv
Setelah dataset berhasil diunduh, langkah berikutnya adalah membaca dataset dengan
memanfaatkan fungsi readcsv dari library pandas. Lakukan pembacaan berkas csv ke
dalam dataframe dengan nama data menggunakan fungsi readcsv. Jangan lupa untuk
melakukan import library pandas terlebih dahulu
import pandas as pd
import numpy as np
data = pd.read_csv('iris.csv')
Pisahkan label/kelas dari data uji menjadi sebuah variabel bernama label_uji
label_uji = data_uji.pop('species')
Tampilkan isi trainingset agar Anda dapat memahami struktur dari variabel tersebut.
print(trainingset)
4. Pembentukan SVM Biner
Metode one-vs-rest pada SVM memanfaatkan SVM biner yang telah dipraktekkan
pada praktikum sebelumnya. Pembentukan SVM biner tidak dijelaskan pada praktikum kali
ini karena metodenya sama persis dengan praktikum sebelumnya.
5. Proses Training
Proses training dilakukan dengan memanggil fungsi sgd berulang kali sesuai
banyaknya kelas yang ada pada data. Dengan demikian, proses training menghasilkan
bobot sebanyak kelas yang ada pada dataset. Buatlah fungsi bernama training yang
digunakan untuk melakukan proses training one-vs-rest.
def training(trainingset):
list_kelas = trainingset.keys()
w = {}
for kelas in list_kelas:
data_latih = trainingset[kelas]
label_latih = data_latih.pop(data_latih.columns[-1])
w[kelas] = sgd(data_latih,label_latih)
return w
Hasil dari proses training berupa dictionary dengan key berupa kelas dan value berupa
bobot dari SVM yang mengenali kelas tersebut.
Lakukan proses training dengan memanggil fungsi training dan menempatkan
hasilnya pada variabel W
W = training(trainingset)
Tugas
Pada tugas kali ini Anda mengimplementasikan metode testing pada metode one-vs-
rest. Lengkapilah kerangka source code pada notebook yang tersedia dan jawablah
pertanyaan yang ada.