Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

8
Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa Mgs. Muhammad Thoyib Antarnusa 1 1 NPM: 1406577392. Fakultas Ilmu Komputer, Universitas Indonesia. Abstract Machine learning merupakan suatu tipe kecerdasan buatan yang memberikan komputer suatu kemampuan untuk belajar. Machine learning fokus pada pengembangan program yang dapat mengajarkan dirinya sendiri untuk berkembang dan berubah ketika menemui data baru. Dengan memanfaatkan machine learning, program dapat mengidentifikasi suatu kata termasuk ke dalam bahasa apa. Terdapat beberapa algoritma yang dapat digunakan dalam machine learning. Perbandingan ini akan melakukan percobaan terhadap algoritma decision tree, neural network, dan naïve bayes untuk melihat algoritma mana yang dapat melakukan identifikasi bahasa yang paling akurat. Hasil akhirnya diketahui bahwa naïve bayes melakukan identifikasi yang paling baik dibandingkan dengan kedua algoritma lain. Kata kunci: classification, identifikasi, bahasa, machine learning, decision tree, neural network, naïve bayes 1. Pendahuluan Bahasa menurut Harun Rasyid, Mansyur & Suratno (2009: 126) merupakan struktur dan makna yang bebas dari penggunanya, sebagai tanda yang menyimpulkan suatu tujuan. Machine learning, dalam hal ini, akan mencoba untuk mengidentifikasi berbagai artikel dan mengelompokkan tiap kata-kata yang ada dalam artikel tersebut ke dalam bahasa apa. Terdapat beberapa algoritma machine learning yang dapat dilakukan untuk melakukan klasifikasi tersebut. Dalam percobaan ini, akan diuji perbandingan keberhasilan antara algoritma decision tree, neural network, serta naïve bayes dalam mengidentifikasi suatu artikel masuk ke dalam bahasa apa. 2. Latar Belakang Terdapat tiga algoritma yang akan diuji dalam percobaan berikut yaitu decision tree, neural network, dan naïve bayes. 2.1. Decision Tree Decision Tree adalah suatu metode learning yang supervised yang digunakan untuk classification dan regression. Decision Tree membuat suatu model yang memprediksi nilai dari suatu target peubah dengan cara mempelajari aturan decision sederhana yang di-infer dari fitur-fitur data. Algoritma ini menggunakan decision tree sebagai representasinya dengan setiap internal node menguji suatu atribut, setiap branch berkorespondensi dengan nilai atribut, dan setiap leaf node sebagai label klasifikasinya.

Transcript of Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

Page 1: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

Perbandingan Teknik Classification Machine Learning dalam

Melakukan Identifikasi Bahasa

Mgs. Muhammad Thoyib Antarnusa1

1NPM: 1406577392. Fakultas Ilmu Komputer, Universitas Indonesia.

Abstract

Machine learning merupakan suatu tipe kecerdasan buatan yang memberikan komputer suatu kemampuan untuk belajar.

Machine learning fokus pada pengembangan program yang dapat mengajarkan dirinya sendiri untuk berkembang dan

berubah ketika menemui data baru. Dengan memanfaatkan machine learning, program dapat mengidentifikasi suatu kata

termasuk ke dalam bahasa apa. Terdapat beberapa algoritma yang dapat digunakan dalam machine learning.

Perbandingan ini akan melakukan percobaan terhadap algoritma decision tree, neural network, dan naïve bayes untuk

melihat algoritma mana yang dapat melakukan identifikasi bahasa yang paling akurat. Hasil akhirnya diketahui bahwa

naïve bayes melakukan identifikasi yang paling baik dibandingkan dengan kedua algoritma lain.

Kata kunci: classification, identifikasi, bahasa, machine learning, decision tree, neural network, naïve bayes

1. Pendahuluan

Bahasa menurut Harun Rasyid, Mansyur & Suratno (2009: 126) merupakan struktur dan makna yang bebas

dari penggunanya, sebagai tanda yang menyimpulkan suatu tujuan. Machine learning, dalam hal ini, akan

mencoba untuk mengidentifikasi berbagai artikel dan mengelompokkan tiap kata-kata yang ada dalam artikel

tersebut ke dalam bahasa apa. Terdapat beberapa algoritma machine learning yang dapat dilakukan untuk

melakukan klasifikasi tersebut. Dalam percobaan ini, akan diuji perbandingan keberhasilan antara algoritma

decision tree, neural network, serta naïve bayes dalam mengidentifikasi suatu artikel masuk ke dalam bahasa

apa.

2. Latar Belakang

Terdapat tiga algoritma yang akan diuji dalam percobaan berikut yaitu decision tree, neural network, dan

naïve bayes.

2.1. Decision Tree

Decision Tree adalah suatu metode learning yang supervised yang digunakan untuk classification dan

regression. Decision Tree membuat suatu model yang memprediksi nilai dari suatu target peubah dengan cara

mempelajari aturan decision sederhana yang di-infer dari fitur-fitur data.

Algoritma ini menggunakan decision tree sebagai representasinya dengan setiap internal node menguji

suatu atribut, setiap branch berkorespondensi dengan nilai atribut, dan setiap leaf node sebagai label

klasifikasinya.

Page 2: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

2 Mgs. M. Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016)

Fig. 1. Decision Tree

2.2. Neural Network

Neural Network terinspirasi pada jaringan otak manusia yang saling terhubung antara satu neuron dengan

yang lain. Pada neural network, neuron direpresentasikan menjadi suatu unit yang disebut dengan perceptron.

Perceptron akan mengambil beberapa input biner yang kemudian akan menghasilkan sebuah output biner.

Fig. 2. Perceptron

Dengan menggunakan perceptron untuk membuat sebuah output, maka dapat dibuat suatu representasi

jaringan otak manusia yang menghubungkan banyak perceptron untuk melakukan proses berbagai macam

input dan menghasilkan suatu output.

Page 3: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

Mgs M Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016) 3

Fig. 3. Neural Network

Pada jaringan yang ditunjukkan pada fig. 3, kolom perceptron pertama membuat tiga keputusan sederhana

dengan menghitung weight dari bukti input. Perceptron pada layer kedua membuat keputusan dengan

menghitung weight hail dari output pada layer pertama. Dengan begitu, perceptron pada layer kedua dapat

membuat keputusan yang lebih kompleks dan abstrak dibandingkan layer pertama. Demikian pula dengan

layer ketiga yang akan membuat keputusan lebih kompleks lagi sehingga perceptron dapat membuat suatu

keputusan yang dapat dikatakan tepat.

2.3. Naïve Bayes

Algoritma Naïve Bayes berdasarkan dari conditional probabilities. Naïve Bayes menggunakan teorema

Bayes, suatu rumus yang melakukan kalkulasi probabilitas dengan menghitung banyak kemunculan suatu

nilan dan kombinasi nilai dalam riwayat data yang sudah diketahui sebelumnya.

Pada algoritma ini, suatu fitur saling independen dengan fitur yang lain sehingga hasil perhitungan

probabilitasnya tidak akan terpengaruhi maupun mempengaruhi hasil probabiltas dari fitur yang lain.

2.4. Cross Validation

Cross Validation merupakan suatu metode evaluasi model dengan gagasan untuk tidak menggunakan

seluruh data ketika sedang melakukan training pada learner. Beberapa data dihilangkan sebelum training

dimulai. Kemudian setelah training selesai, data yang dihilangkan tersebut dapat digunakan untuk melakukan

pengujian (test) tingkat kebaikan dari learned model pada data yang “baru”.

3. Representasi Masalah

Diberikan sebuah file XML yang berisikan sejumlah artikel-artikel dengan empat macam bahasa yaitu

Inggris, Prancis, Indonesia, dan Spanyol. Dari file XML tersebut, ingin menguji algoritma machine learning

untuk mengidentifikasi suatu artikel menggunakan bahasa apa.

Langkah pertama yang dilakukan adalah melakukan ekstraksi kalimat dari tiap artikel yang ada pada file

XML tersebut. Untuk melakukannya, saya membuat suatu program ekstraktor kalimat dengan menggunakan

python. Algoritma dari program tersebut sangat sederhana. Pertama program mengambil nilai dari tiap node

dengan tag content. Kemudian lakukan stripping pada string content tersebut. Setelah itu pisahkan tiap

kalimat dan simpan ke dalam array. Tandai tiap kalimat dalam array tersebut dengan nama bahasa yang

digunakannya yaitu dengan cara mengambil nilai node dari tag bahasa dan meng-append-nya ke kalimat

tersebut. Setelah semuanya terkumpul, looping semua kalimat tersebut sambil meng-prepend-nya dengan

angka yang terus inkrementasi dan simpan ke dalam file Sentence.txt.

Setelah didapat, jalankan program FeatureGenerator.java yang sudah disedikan. Pilih fitur yang ingin di-

generate. Terdapat fitur n-gram dan boolean/frekuensi pada program tersebut. Setelah dijalankan, maka akan

membuat file Feature.txt yang berisi fitur dari artikel pada file XML tersebut.

Konversi file Feature.txt yang merupakan file csv ke dalam format arff dengan cara membukanya di

aplikasi Weka kemudian menyimpannya ke dalam bentuk arff. Terbentuklah file arff yang siap dijalankan

pada aplikasi Weka untuk melakukan classification.

Page 4: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

4 Mgs. M. Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016)

Fig. 3. Alur proses ekstraksi fitur dari file Combination.xml hingga siap dijalankan pada aplikasi Weka

4. Uji Coba dan Analisis

4.1. Eksperimen 1

Eksperimen 1 melakukan uji coba terhadap ketiga algoritma machine learning di atas, yaitu decision tree,

neural network, dan naïve bayes dengan ekstraksi fitur berupa boolean 1-gram.

Berikut adalah hasil eksperimennya:

Fig. 4. Hasil eksperimen menggunakan Decision Tree

Page 5: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

Mgs M Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016) 5

Fig. 5. Hasil eksperimen menggunakan Naïve Bayes

Page 6: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

6 Mgs. M. Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016)

Fig. 6. Hasil eksperimen menggunakan Neural Network

Dari hasil eksperimen tersebut, dapat dilihat decision tree dapat mengklasifikasi sekitar 74% dengan benar,

naïve bayes sekitar 84%, sedangkan neural network sekitar 72%. Dengan begitu, saya menyimpulkan bahwa

penggunaan naïve bayes lebih baik dibanding yang lain.

4.2. Eksperimen 2

Pada eksperimen 2 akan dibandingkan antara fitur boolean dengan fitur frekuensi menggunakan algoritma

terbaik pada eksperimen 1 yaitu naïve bayes.

Fig. 7. Hasil eksperimen menggunakan fitur frekuensi

Dibandingkan dengan fitur boolean pada fig. 5, penggunaan fitur frekuensi menghasilkan akurasi sekitar

84.4% sedangkan fitur boolean sekitar 83.7%. Dengan begitu, penggunaan fitur frekuensi di sini lebih baik

dibandingkan dengan fitur boolean.

4.3. Eksperimen 3

Pada eksperimen 3 akan dibandingkan antar tiap fitur n-gram menggunakan algoritma terbaik pada

eksperimen 1 yaitu naïve bayes serta fitur frekuensi pada eksperimen 2.

Page 7: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

Mgs M Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016) 7

Fig. 8. Perbandingan hasil eksperimen untuk tiap n-gram

Dari fig.8, dapat dilihat bahwa fitur 1-gram menghasilkan akurasi paling baik di antara yang lain. Nilai 1-

gram dapat memberikan yang terbaik karena dari satu kalimat hanya mengekstrak satu kata saja yang

kemudian akan dihitung tiap kemunculannya pada setiap artikel. Sedangkan jika n sudah melebihi satu, maka

akan menghitung frasa yang jika dicari kemunculannya pada tiap artikel akan sulit karena kemungkinan dua

atau lebih kata saling selalu berdampingan itu kecil.

4.4. Eksperimen 4

Pada eksperimen 4 akan dibandingkan antara penggunaa feature selection dengan menggunakan algoritma

terbaik pada eksperimen 1 yaitu naïve bayes serta fitur frekuensi 1-gram.

Fig. 9. Hasil eksperimen dengan menerapkan feature selection

Dalam eksperimen, saya menggunakan attribute selection dengan evaluator CsfSubsetEval dan search

menggunakan BestFirst. Hasilnya tidak lebih baik dengan yang tidak menggunakan feature selection.

4.5. Eksperimen 5

Pada eksperimen 5, melakukan uji coba dengan menggunakan data artikel yang dibuat sendiri. Data artikel

saya dapatkan dengan cara melakukan pencarian berita di Google dalam berbagai bahasa, kemudian menuju

berita lain yang direkomendasikan pada laman berita yang saya ambil hingga cukup mendapat 100 kalimat

untuk satu bahasa.

Page 8: Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa

8 Mgs. M. Thoyib Antarnusa / Perbandingan Teknik Classification Machine Learning dalam Melakukan Identifikasi Bahasa (2016)

Setelah melakukan eksperimen, didapatkan hasil yang tanpa feature selection sebesar 88.9%, sedangkan

yang dengan feature selection sebesar 87.7% sehingga lebih baik yang tidak menggunakan feature selection.

Kesimpulan

Dari hasil eksperimen yang saya lakukan dapat disimpulkan kalau penggunaan algoritma naïve bayes

dengan fitur frekuensi 1-gram akan menghasilkan identifikasi bahasa yang cukup akurat dibandingkan dengan

algoritma decision tree, neural network, dan dengan fitur yang lainnya. Selain itu tanpa penggunaan feature

selection

References

Chen, Berlin. “Decision Tree Learning.” Department of Computer Science & Information Engineering National Taiwan Normal

University, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.711.8860&rep=rep1&type=pdf Nielsen, Michael. “Using Neural Nets to Recognize Handwritten Digits.” Neural Networks and Deep Learning, Jan 2016,

http://neuralnetworksanddeeplearning.com/chap1.html.

Rouse, Margaret. “What is machine learning?” WhatIs.com, Feb. 2016, http://whatis.techtarget.com/definition/machine-learning. Rusyanti, Hetty. “Pengertian Bahasa Menurut Ahli?” KajianTeori.com, 22 Mar. 2013, http://www.kajianteori.com/2013/03/pengertian-

bahasa-menurut-ahli.html.

Schneider, Jeff. “Cross Validation.” No Title, 7 Feb. 1997, https://www.cs.cmu.edu/~schneide/tut5/node42.html. “Decision Trees.” scikit learn, 2016, http://scikit-learn.org/stable/modules/tree.html.

“Naïve Bayes.” Oracle Help Center, 2016, https://docs.oracle.com/cd/B28359_01/datamine.111/b28129/algo_nb.htm