Lompat ke isi

Algoritma: Naive Bayes

Dari Wiki Berbudi

Naive Bayes adalah salah satu algoritma pembelajaran mesin yang didasarkan pada penerapan Teorema Bayes dengan asumsi kuat bahwa setiap fitur atau atribut dalam data saling bebas secara bersyarat (conditional independence). Algoritma ini banyak digunakan untuk klasifikasi karena kesederhanaannya, efisiensinya, dan kemampuannya menghasilkan akurasi yang cukup tinggi dalam berbagai aplikasi, terutama ketika jumlah fitur besar dan data relatif sedikit. Meskipun asumsi independensi sering kali tidak sepenuhnya terpenuhi dalam data nyata, Naive Bayes tetap memberikan hasil yang kompetitif di banyak kasus praktis.

Dasar Teori

Naive Bayes berlandaskan pada Teorema Bayes yang menyatakan hubungan antara probabilitas bersyarat dan probabilitas marginal. Rumus umum teorema Bayes adalah: P(C|X)=P(X|C)P(C)P(X) di mana C adalah kelas dan X adalah vektor fitur. Dalam konteks Naive Bayes, diasumsikan bahwa setiap fitur Xi independen secara bersyarat terhadap fitur lainnya, sehingga: P(X|C)=i=1nP(Xi|C).

Asumsi Independen

Asumsi independensi kondisional berarti bahwa keberadaan atau nilai suatu atribut tidak mempengaruhi atribut lainnya apabila kelas telah diketahui. Misalnya, dalam klasifikasi dokumen teks, Naive Bayes menganggap bahwa kemunculan suatu kata tidak bergantung pada kemunculan kata lainnya dalam dokumen yang sama, setelah mengetahui kategori dokumen tersebut. Walaupun asumsi ini sederhana, pada kenyataannya keterkaitan antar fitur sering terjadi, namun hal tersebut tidak selalu mengurangi performa algoritma secara signifikan.

Varian Naive Bayes

Terdapat beberapa varian utama dari algoritma Naive Bayes yang disesuaikan dengan tipe data:

  1. Gaussian Naive Bayes: digunakan untuk fitur kontinu yang diasumsikan mengikuti distribusi normal.
  2. Multinomial Naive Bayes: digunakan untuk fitur diskrit seperti jumlah frekuensi kata dalam teks.
  3. Bernoulli Naive Bayes: digunakan untuk fitur biner, misalnya apakah suatu kata muncul atau tidak.

Penerapan dalam Klasifikasi Teks

Dalam pemrosesan bahasa alami (Natural Language Processing), Naive Bayes sering digunakan untuk tugas seperti analisis sentimen, klasifikasi spam, dan pengkategorian dokumen. Prosesnya melibatkan ekstraksi fitur dari teks, seperti frekuensi kata atau token tertentu, lalu menghitung probabilitas kemunculan kata tersebut dalam masing-masing kelas. Keunggulannya adalah kebutuhan komputasi yang rendah dibandingkan metode lain seperti Support Vector Machine.

Langkah-langkah Algoritma

Proses Naive Bayes dalam klasifikasi umumnya meliputi:

  1. Menghitung probabilitas prior untuk setiap kelas: P(Ck).
  2. Menghitung probabilitas likelihood setiap fitur terhadap kelas: P(Xi|Ck).
  3. Mengalikan semua likelihood fitur untuk masing-masing kelas dan dikalikan dengan prior.
  4. Memilih kelas dengan nilai posterior tertinggi sebagai hasil prediksi.

Keunggulan

Naive Bayes memiliki beberapa keunggulan yang membuatnya populer:

  1. Mudah diimplementasikan dan cepat dijalankan.
  2. Dapat bekerja dengan baik pada dataset berukuran kecil.
  3. Tidak memerlukan banyak data pelatihan untuk menghasilkan model yang akurat.
  4. Efektif untuk data dengan jumlah fitur besar.

Keterbatasan

Walaupun sederhana dan efektif, Naive Bayes memiliki keterbatasan:

  1. Asumsi independensi sering tidak sesuai dengan data nyata.
  2. Performa dapat menurun jika fitur saling berkorelasi tinggi.
  3. Probabilitas nol dapat terjadi jika suatu nilai fitur tidak muncul pada data pelatihan, sehingga diperlukan teknik smoothing seperti Laplace smoothing.

Contoh Perhitungan

Sebagai ilustrasi, misalkan kita memiliki dua kelas: positif dan negatif, serta dua fitur X1 dan X2. Probabilitas prior untuk positif adalah 0,6 dan untuk negatif adalah 0,4. Probabilitas likelihood dihitung dari data pelatihan. Posterior untuk sebuah contoh dihitung menggunakan: P(positif|X)=P(X1|positif)P(X2|positif)P(positif)P(X). Kelas dengan nilai posterior terbesar akan dipilih.

Hubungan dengan Statistik

Naive Bayes merupakan salah satu bentuk model probabilistik dalam statistik, yang memanfaatkan distribusi peluang untuk membuat prediksi. Pendekatan ini dapat dianggap sebagai kasus khusus dari pengklasifikasi generatif, di mana model mencoba memperkirakan distribusi data untuk setiap kelas, lalu menggunakan aturan Bayes untuk mengklasifikasikan contoh baru.

Implementasi dalam Perangkat Lunak

Algoritma Naive Bayes tersedia di berbagai perpustakaan perangkat lunak pembelajaran mesin, seperti scikit-learn dalam Python, Weka dalam Java, serta R. Implementasi tersebut biasanya menyediakan fungsi untuk melatih model dari data dan melakukan prediksi terhadap data baru, serta opsi untuk memilih varian Naive Bayes yang sesuai.

Studi Kasus

Studi kasus umum Naive Bayes adalah deteksi spam pada email. Dalam kasus ini, fitur dapat berupa kata-kata yang muncul dalam email, dan kelas adalah "spam" atau "bukan spam". Naive Bayes menghitung probabilitas setiap kata muncul dalam email spam dan bukan spam, lalu mengkombinasikan informasi tersebut untuk menentukan kategori email baru yang masuk.

Perkembangan dan Riset

Meskipun algoritma Naive Bayes sederhana, penelitian terus dilakukan untuk meningkatkan kinerjanya. Beberapa pendekatan menggabungkan Naive Bayes dengan metode lain seperti pengklasifikasi ensemble atau menyesuaikan asumsi independensi agar lebih sesuai dengan data. Adaptasi ini bertujuan untuk mempertahankan kecepatan dan kesederhanaan Naive Bayes sambil meningkatkan akurasi prediksi.