Anda di halaman 1dari 6

Modul Praktikum Machine Learning

Support Vector Machine

Dosen: Rifkie Primartha – Universitas Sriwijaya Palembang


Notes:
Sebelum mengerjakan praktikum ini sebaiknya:
(1) pahamilah landasan teori Suport Vector Machine
(2) pahami cara penggunaan R dan juga perintah-perintah R

I. Pendahuluan

Support Vector Machine (SVM) diperkenalkan oleh Vapnik dan kawan-kawan pada tahun
1992 yang dikembangkan berdasarkan statistical learning theory. SVM merupakan
supervised learning dan binary classification. SVM merupakan contoh metoda learning
yang memanfaatkan kernel function. Implementasi SVM antara lain: text and hypertext
classification, image classification, recognizing handwritten characters, biological sciences,
protein classification.
.
SVM banyak diimplementasikan untuk menyelesaikan berbagai persoalan linear dan non
linear yang terkait dengan classification. Beberapa karakteristik SVM:
a. Bersifat non-probabilistic
b. Membagi data menjadi dua katagori
c. Masing-masing kelompok data dibatasi oleh hyperplane

II. Teori

SVM berusaha menemukan hyperplane (pemisah) terbaik untuk memisahkan ke dalam dua
kelas dan memaksimalkan margin antara dua kelas tersebut. Jarak terdekat dari hyperplane
dengan input vectors disebut margin. Data (input vectors) yang bersentuhan dengan
boundary disebut support vectors.

Pada beberapa kasus, data tidak bisa diklasifikasi menggunakan metode linier SVM,
sehingga dikembangkan fungsi kernel untuk mengklasifikasikan data dalam bentuk non-
linier.
Algoritma linier SVM dalam bentuk pseudo code sebagai berikut:

Algoritma non-linier SVM dalam bentuk pseudo code sebagai berikut:

III. Alat dan Bahan

1. Komputer yang sudah diinstal OS Windows, Linux, atau Mac OS X.


2. Aplikasi R atau R Studio versi 3.4 atau yang lebih baru (dapat diperoleh dari Internet).

IV. Permasalahan

Diberikan sejumlah data hasil riset, gunakan algoritma SVM untuk melakukan klasifikasi
dari dataset yang disediakan.

V. Menganalisa Permasalahan
A. Dataset

SVM memerlukan dataset yang diperoleh dari file atau langsung dari R (bawaan R, misal:
IRIS, Boston, dsb).

B. Parameter

Beberapa parameter penting pada SVM seperti: kernel, cost, gamma.

C. Solusi

Solusi dari algoritma SVM adalah class dari data. Algoritma SVM siap pakai sudah
disediakan oleh aplikasi R.

VI. Tahapan Praktikum

1. Jalankan R atau R Studio, jika menggunakan Linux ketikkan:

atau

rstudio

2. Untuk menyelesaikan persoalan SVM diperlukan library bernama e1071. Aktifkan Internet
kemudian ketikkan perintah berikut ini:

install.packages("e1071")

3. Load library e1071. Ketikkan perintah:

library(e1071) 

4. Siapkan data yang dibutuhkan untuk keperluan praktikum. Data ini adalah data bunga, bernama
IRIS yang sudah disediakan oleh R. Untuk melihat dataset IRIS sebanyak 5 baris, ketikkan:

head(iris,5)

Hasilnya sebagai berikut:

     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa
5            5.0         3.6          1.4         0.2     setosa

Perhatikan ada 5 buah kolom, yaitu: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width,


dan Species.

4. Agar data IRIS dapat dicari oleh R berdasarkan namanya, ketikkan perintah berikut ini:
attach(iris)

5. Sebagai percobaan, cobalah ketikkan perintah ini untuk menguji di atas:

Species

[1] setosa     setosa     setosa     setosa     setosa     setosa    
   [7] setosa     setosa     setosa     setosa     setosa     setosa    
  [13]setosa     setosa     setosa     setosa     setosa     setosa    

Sepal.Length
 
 [1]  5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0

6. Pisahkan data menjadi x dan y. Objek x berisi semua features (kolom) yang dimiliki oleh IRIS
kecuali kolom Species. Sedangkan objek y hanya berisi kolom Species.

x <­ subset(iris, select=­Species)
y <­ Species

Notes: perintah terakhir hanya akan berhasil jika sebelumnya sudah mengetikkan perintah
attach(iris). Kebalikan dari perintah attach adalah dettach.

7. Amati hasilnya.

head(x,5)

  Sepal.Length Sepal.Width Petal.Length Petal.Width
1          5.1         3.5          1.4         0.2
2          4.9         3.0          1.4         0.2
3          4.7         3.2          1.3         0.2
4          4.6         3.1          1.5         0.2
5          5.0         3.6          1.4         0.2

head(y,5)

[1] setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica

8. Jalankan algoritma SVM menggunakan perintah berikut:

svm_model <­ svm(Species ~ ., data=iris)

9. Lihat hasilnya:

summary(svm_model)

Call:
svm(formula = Species ~ ., data = iris)

Parameters:
   SVM­Type:  C­classification 
 SVM­Kernel:  radial 
       cost:  1 
      gamma:  0.25 
Number of Support Vectors:  51
 ( 8 22 21 )
Number of Classes:  3 
Levels: 
 setosa versicolor virginica

10. Plot grafik SVM.

plot(svm_model, iris, Petal.Width ~ Petal.Length,
      slice = list(Sepal.Width = 3, Sepal.Length = 4))

11. Cara lain menjalankan algoritma SVM sebagai berikut:

svm_model1 <­ svm(x,y)
summary(svm_model1)

Call:
svm.default(x = x, y = y)
Parameters:
   SVM­Type:  C­classification 
 SVM­Kernel:  radial 
       cost:  1 
      gamma:  0.25 
Number of Support Vectors:  51
 ( 8 22 21 )
Number of Classes:  3 
Levels: 

12. Jalankan perintah-perintah berikut untuk tuning SVM.

pred <­ predict(svm_model1,x)
system.time(pred <­ predict(svm_model1,x))
table(pred,y)
svm_tune <­ tune(svm, train.x=x, train.y=y, 
              kernel="radial", ranges=list(cost=10^(­1:2), 
  gamma=c(.5,1,2)))
print(svm_tune)

13. Melakukan tuning SVM sekali lagi.

svm_model_after_tune <­ svm(Species ~ ., data=iris, kernel="radial", 
cost=1, gamma=0.5)
summary(svm_model_after_tune)
pred <­ predict(svm_model_after_tune,x)
system.time(predict(svm_model_after_tune,x))
table(pred,y)

14. Plot kembali grafik SVM hasil tuning.

plot(svm_model_after_tune, iris, Petal.Width ~ Petal.Length,
      slice = list(Sepal.Width = 3, Sepal.Length = 4))

VII. Diskusi dan Kesimpulan

1. Diskusikan dengan teman Anda baris-baris Perintah yang terkait dengan tuning SVM!

2. Menurut Anda, apakah hasil tuning SVM jauh lebih baik dibandingkan sebelumnya?

Anda mungkin juga menyukai