Anda di halaman 1dari 5

13

kelas selalu dapat dipisahkan dengan hyperplane tersebut. SVM menemukan


ini menggunakan support vector dan margin, Widodo (2013). Dalam teknik
ini, kita berusaha untuk menemukan fungsi pemisah (klasifier) yang optimal
yang bisa memisahkan dua kelas yang berbeda. Teknik ini berusaha mene-
mukan fungsi pemisah (hyperplane) terbaik diantara fungsi yang tidak ter-
batas jumlahnya untuk memisahkan dua macam obyek. Hyperplane terbaik
adalah hyperplane yang terletak di tengah-tengah antara dua set obyek dari
dua kelas. Gambar 1, memperlihatkan bagaimana SVM mencari hyperpla-
ne terbaik ekivalen dengan memaksimalkan margin atau jarak dua set dari
kelas yang berbeda. Hal ini dapat dirumuskan pada problem optimasi SVM
untuk klasifikasi linear, seperti dibawah ini (Santoso, B. 2007).

1
min || ω ||2 ) (2.1)
2
Dengan memperhatikan

yi(wxi + b) ≥ 1, i = 1, . . . , λ (2.2)

xi adalah data input yi adalah keluaran dari data xi , w, b adalah


parameter-parameter yang kita cari nilainya. Dalam rumus di atas, ingin me-
minimalkan fungsi tujuan (obyektif function) 1/2 ||w||2 atau memaksimalk-
an kuantitas ||w||2 atau wTw dengan memperhatikan pembatas y1(wxi+
b) ≥ 1. Bila output data y1 = +1, maka pembatas menjadi (wxi + b) ≥
1. Sebaliknya bila yi=−1, pembatas menjadi (wxi+b) ≤ −1. Di dalam ka-
sus yang tidak feasible (infeasible) dimana beberapa data mungkin tidak bisa
dikelompokkan secara benar, formulasi matematikanya menjadi berikut,

λ
X
min12||ω||2 + C ti (2.3)
i=1

Dengan memperhatikan

yi(wxi + b) + ti ≥ 1 (2.4)

ti ≥ 0, i = 1, . . . , λ (2.5)

Dimana ti adalah variabel slack. Dalam formulasi ini, kita ingin memak-
simalkan margin antara dua kelas dengan meminimalkan ||w||2. Selain itu,
upaya dilakukan untuk meminimalkan kesalahan klasifikasi (misclassifica-
14

tion error), yang dinyatakan melalui penggunaan variabel slack ti. Pada saat
yang sama, kita juga berupaya memaksimalkan margin yaitu ||w||2. Peng-
gunaan variabel slack t1 adalah untuk mengatasi kasus ketidaklayakan (infe-
asibility) dari pembatas (constraints) yi (wxi + b) ≥ 1 dengan cara memberi
pinalti untuk data yang tidak memenuhi pembatas tersebut. Untuk memini-
malkan nilai ti ini, kita berikan pinalti dengan menerapkan konstanta ongkos
C. Vektor w tegak lurus terhadap fungsi pemisah: wx + b = 0. Konstanta b
menentukan lokasi fungsi pemisah relatif terhadap titik asal (origin).

Gambar 2.3: SVM berusaha menemukan hyperplane terbaik yang memisahk-


an class -1 dan class +1.

Pada gambar 2.3 memperlihatkan beberapa pola yang merupakan ang-


gota dari dua buah kelas data yaitu kelas -1 dan kelas +1. Data yang terga-
bung pada kelas −1 disimbolkan dengan bentuk lingkaran, sedangkan da-
ta pada kelas +1 disimbolkan dengan bentuk bujur sangkar. Hyperplane
(batas keputusan) pemisah terbaik antara kedua kelas dapat ditemukan de-
ngan mengukur margin hyperplane tersebut dan mencari titik maksimalnya.
Margin adalah jarak antara hyperlane tersebut dengan data terdekat dari
masing-masing kelas. Data yang paling dekat ini disebut dengan support ve-
ctor. Garis lurus utuh yang berada ditengah pada gambar 2.3 menunjukkan
hyperplane yang terbaik, yaitu terletak tepat pada tengah-tengah kedua ke-
las. Sedangkan data lingkaran dan bujur sangkar yang dilewati garis batas
margin (garis putus-putus) adalah support vector.
15

2.5 Kernel pada Support Vector Machine


Dalam kasus machine learning, kernel trick merupakan metode yang meng-
gunakan algoritma linier classifier untuk menyelesaikan permasalahan nonli-
nier dengan cara memetakkan dimensi input ke ruang dimensi yang lebih
tinggi, sehingga membuat linier classifier di ruang dimensi yang baru seta-
ra dengan nonlinear classifier di ruang dimensi asli. Dengan kernel, fungsi
pemetaan tidak pernah dihitung secara explisit, karena ruang dimensi tinggi
yang digunakan memungkinkan pada dimensi yang tak terbatas (Pratama
& Trilaksono, 2015). Berikut ini adalah beberapa fungsi kernel yang umum
digunakan antara lain:

Tabel 2.1: Kernel pada Support Vector Machine


Kernel Fungsi Kernel
Linier x.y
d
Polynomial (x.y
 + c)  2
RBF exp − ||x−y||
2a2
Sigmoid tanh(k(x − y) + c)

2.6 Python
Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi
perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim
sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sin-
taksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka
jelas, dan standar yang besar serta komprehensif (Syahrudin & Kurniaw-
an, 2018). Python mendukung multi paradigma pemrograman, utamanya,
namun tidak dibatasi, pada pemrograman berorientasi objek, pemrogram-
an imperatif, dan pemrograman fungsional. Salah satu fitur yang tersedia
pada python adalah sebagai bahasa pemrograman dinamis yang dilengkapi
dengan manajemen memori otomatis. Seperti halnya pada baha ati halnya
pada bahasa pemrograman dinamis lainnya, python umumnya digunakan
sebagai bahasa script meski pada praktiknya penggunaan bahasa ini lebih
luas mencakup konteks pemanfaatan yang umumnya tidak dilakukan de-
ngan menggunakan bahasa script. Python dapat digunakan untuk berbagai
keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai
platform sistem operasi. Salah satu notebook yang berbasis dalam bahasa
16

pemograman python adalah Google Colaboratory, sehingga dalam penelitian


ini menggunakan Google Colaboratory karena memberikan machine learning
yang lebih banyak.

2.7 TF-IDF
Metode TF-IDF adalah suatu cara yang digunakan untuk memberikan bobot
hubungan pada suatu term (kata) terhadap suatu dokumen, yang merupak-
an sebuah gabungan dari dua konsep perhitungan bobot yaitu gabungan dari
metode term frequency (tf)/frekuensi kemunculan dari sebuah kata pada se-
buah dokumen tertentu dan metode inverse document frequency (idf)/inverse
dari frekuensi dokumen yang mengandung kata tersebut (Karmayasa, 2012).
Pembobotan dasar yang dilakukan dalam melakukan term weighting
(pembobotan kata) yaitu menghitung frekuensi kemunculan kata dalam do-
kumen. Frekuensi kemuculan (TF) yaitu menunjukkan sejauh mana kata
tersebut mewakili dari isi dokumen. Kemudian semakin besar dari kemun-
culan suatu kata (term) pada dokumen maka akan memberikan nilai kese-
suaian yang semakin besar. Pada pembobotan juga akan memperhitungkan
faktor dari kebalikan frekuensi dokumen yang mengandung suatu kata (IDF)
(Karmayasa, 2012).
Pada Term Frequency terbagi menjadi beberapa jenis algoritma yaitu (Yo-
ren, 2018):

1. Raw Term Frequency (TF Murni), yaitu nilai TF yang didapatkan dengan
menghitung frekuensi kemunculan suatu term pada dokumen. Jika
muncul kata sebanyak 4 kali maka kata tersebut akan bernilai 4.

2. Binary Term Frequency (TF Binary), yaitu penyeragaman bobot pada


dokumen dimana jika muncul minimal satu kali dalam dokumen maka
memiliki nilai 1 dan jika kata tidak muncul sama sekali maka memiliki
nilai 0.

3. Logarithmic Term Frequency (TF Logaritmik), yaitu mengurangi tingkat


kepentingan kemunculan kata dalam menghitung bobot dokumen ter-
hadap suatu kata dengan melakukan log pada TF yang dapat diperoleh
dari persamaan berikut:
TF = 1+Log(TF)
17

4. Augmented Term Frequency (TF Normalisasi), yaitu nilai TF dengan


menggunakan perbandingan antara frekuensi sebuah kata dengan
jumlah keseluruhan kata pada dokumen.

TF

TF = 0.5 + 0.5 x M axT F

Kemudian untuk menghitung nilai IDF yaitu sebagai berikut :

D
IDFj = ln DF j

Keterangan :
D : jumlah semua dokumen yang ada dalam koleksi
DFj : jumlah dokumen yang mengandung term (j)

Rumus pada metode TF dan IDF merupakan gabungan dari formula perhi-
tungan row TF dan Formula IDF. Pada penelitian ini jenis formula tf yang
digunakan yaitu Raw Term Frequency (TF Murni), Sehingga jika digunakan
dalam setiap kata pada setiap dokumen akan dihitung bobotnya dengan
menggunakan rumus sebagai berikut:

Wi,j = T Fi,j × IDFj


D
Wi,j = T Fi,j × ln DF j

Keterangan :
i = dokumen ke-d
j = kata ke-t dari kata kunci
Wi,j = bobot term (j) terhadap dokumen (i)
TFi,j = jumlah kemunculan term (j) dalam dokumen (i)
Dapat dilihat pada persamaan, didapatkan hasil bahwa berapapun
besarnya nilai TFi,j jika nilai D = DFj maka akan didapatkan hasil 0 pada
perhitungan IDF. Dengan begitu akan ditambahkan 1 pada sisi IDF, Sehingga
perhitungan bobotnya dirumuskan menjadi sebagai berikut:

 
D
Wi,j = T Fi,j × ln +1 (2.6)
DFj

Anda mungkin juga menyukai