Friday, January 29, 2016

Sains dibelakang Big Data Analitik

Sains dibelakang Big Data Analitik berbicara mengenai algoritma apa yang digunakan untuk kasus apa. Tidak semua sainsnya dapat diterapkan untuk semua kasus, misalnya pada Twitter apabila kita berbicara mengenai trending, analysisnya lebih pada analisis time series (contoh temporal analysis) sementara bila kita bicara mengenai sentimen posting, analysisnya lebih pada analysis classification (contoh naive bayes). Umumnya mata kuliah sains ini dipelajari pada jurusan statistik dan ilmu komputer. Mata kuliah tersebut diantaranya artificial intelligence, data mining, information retrieval, dan statistics inference.

Untuk memudahkan pemahaman sains ini, saya akan mengambil contoh penggunakan naive bayes dalam klasifikasi kalimat. Contoh ini dapat dikembangkan untuk tujuan lainnya seperti mengukur sentimen tweet di Twitter. Contoh ini saya ambil dari link Stanford NLP (Natural Language Processing) website.



Dari gambar diatas terlihat dari semua training data terdapat 3 record dengan klasifikasi c dan 1 record dengan klasifikasi j (atau bukan c). Berdasarkan data training tersebut (yang secara teoritiknya diambil secara random) kita dapatkan:

Prior Probability:
Probabilitas dokumen dengan klasifikasi c atau P(c) = 3/4
Probabilitas dokumen dengan klasifikasi bukan c atau P(j) = 1/4

Jumlah kata unique dalam semua kalimat training diatas adalah 6

Sekarang kita lihat Testing data yang terdiri dari kata Chinese Chinese Chinese Tokyo Japan. Kita hitung probabilitas tiap kata tersebut satu persatu.

Probability kata Chinese pada saat kategorynya c
P(Chinese|c) = (5 + 1)/(8+ 6) = 6/14 atau 3/7

5 berasal dari lima kali kata chinese muncul pada saat klasifikasi c
1 adalah digunakan untuk normalisasi pembilang
8 berasal dari jumlah semua kata pada saat klasifikasi c
6 berasal dari jumlah semua kata unik pada training data

Seterusnya untuk semua istilah kita dapatkan
P(Tokyo|c)      = P(Japan|c) = (0 + 1)/(8+ 6) = 1/14 
P(Chinese|j)    = (1 + 1)/(3+ 6) = 2/9
P(Tokyo|j)       = P(Japan|j) = (1 + 1)/(3+ 6) = 2/9

Jadi berapa probability Chinese Chinese Chinese Tokyo Japan untuk c dan j?
P(c|test data) = 3/4 * (3/7)*(3/7)*(3/7) * (1/14)*(1/14) = 0.0003
P(j|test data) = 1/4 * (2/9)*(2/9)*(2/9) * (2/9)*(2/9)= 0.0001

Terlihat disana kalau kalimat baru basuk ke dalam klasifikasi c.

Untuk mudahnya silahkan lihat video berikut:



Naive Bayes hanyalah salah satu contoh dari sekian banyak sains pada Big Data Analytics. Beberapa lainnya seperti Neural Network dan Logistic Regression. 


Reference: Stanford NLP


No comments:

Post a Comment