Tugas 3 Machine Learning : Algoritma Dasar

1. Naive Bayes

Naive Bayes adalah algoritma supervised learning yang sangat sederhana [23]. Idenya mirip dengan probabilitas bayesian.
Secara formal, persamaan Naive Bayes untuk klasi?kasi diberikan pada persamaan 4.1 dimana ci adalah suatu nilai kelas, C adalah kelas (himpunan), t adalah ?tur (satu ?tur, bukan feature vector) dan F adalah banyaknya ?tur. Kita memprediksi kelas berdasarkan probabilitas kemunculan nilai ?tur pada kelas tersebut. Pertama, kita hitung likelihood suatu feature vector diklasi?kasikan ke kelas tertentu berdasarkan bagaiman probabilitas korespondensi ?tur-?turnya terhadap kelas tersebut (persamaan 4.1). Kemudian, kita normalisasi likelihood semua kelas untuk mendapatkan probabilitas class-assignment (softmax – persamaan 4.2). Akhirnya, kita pilih kelas dengan probabilitas tertinggi (persamaan 4.3).

Agar mendapatkan gambaran praktis, mari kita bangun model Naive Bayes untuk Tabel 4.1. Tabel ini disebut sebagai dataset, yaitu memuat entry data (tiap baris disebut sebagai instans/instance). Kita anggap Tabel 4.1 sebagai training data. Untuk menghitung probabilitas, pertama-tama kita hitung terlebih dahulu frekuensi nilai atribut seperti pada Tabel 4.2, setelah itu kita bangun model probabilitasnya seperti pada Tabel 4.3.
Untuk menguji kebenaran model yang telah kita bangun, kita menggunakan testing data, diberikan pada Tabel 4.4. testing data berisi unseen example yaitu contoh yang tidak ada pada training data.

Karena Passignment(play = no) > Passignment(play = yes) maka diputuskan bahwa kelas untuk unseen example adalah play = no. Proses klasi?kasi untuk data baru sama seperti proses klasi?kasi untuk testing data, yaitu kita ingin menebak kelas data. Karena model berhasil menebak kelas pada training data dengan tepat, akurasi model adalah 100% (kebetulan contohnya hanya ada satu).
Perhatikan! Kamu mungkin berpikir kita dapat langsung menggunakan likelihood untuk mengklasi?kasi, karena probabilitas dengan likelihood terbesar akan dipilih. Hal ini cukup berbahaya apabila likelihood untuk masingmasing kelas memiliki jarak yang cukup dekat. Sebagai contoh, menghitung probabilitas apabila (kasus abstrak) likelihood={0.7,0.6}, sehingga probabilitas kelas menjadi={0.538,0.461}. Karena perbedaan probabilitas kelas relatif tidak terlalu besar (contoh ini adalah penyederhanaan), kita mungkin harus berpikir kembali untuk mengklasi?kasikan instans ke kelas pertama. Hal ini berkaitan dengan seberapa yakin kamu mengklasi?kasikan suatu instans ke kelas tertentu. Perbedaan likelihood yang besar menandakan keyakinan, sementara perbedaan yang tipis menandakan ketidakyakinan. Perhatikan, jumlah likelihood mungkin lebih dari 1. Sementara, probabilitas atau jumlahnya berada pada range [0,1] (0 = P = 1). Pada contoh sebelumnya, nilai likelihood diubah menjadi bentuk probabilitas dengan menggunakan teknik softmax. Fungsi softmax berbentuk seperti pada persamaan 4.2.


2. K-Means
Pada supervised learning kita mengetahui kelas data untuk setiap feature vector, sedangkan untuk unsupervised learning kita tidak tahu. Tujuan unsupervised learning salah satunya adalah melakukan clustering. Yaitu mengelompokkan data-data dengan karakter mirip. Untuk melakukan pembelajaran menggunakan K-means [24], kita harus mengikuti langkah-langkah sebagai berikut:
1. Tentukan jumlah kelompok yang kita inginkan.
2. Inisiasi centroid untuk setiap kelompok (pada bab ini, secara acak). Centroid adalah data yang merepresentasikan suatu kelompok (ibaratnya ketua kelompok).
3. Hitung kedekatan suatu data terhadap centroid, kemudian masukkan data tersebut ke kelompok yang centroid-nya memiliki sifat terdekat dengan dirinya.
4. Pilih kembali centroid untuk masing-masing kelompok, yaitu dari anggota kelompok tersebut (semacam memilih ketua yang baru).
5. Ulangi langkah-langkah sebelumnya sampai tidak ada perubahan anggota untuk semua kelompok.

3. K-nearest-neighbor
Ide K-nearest-neighbor (KNN) adalah mengelompokkan data ke kelompok yang memiliki sifat termirip dengannya [25]. Hal ini sangat mirip dengan Kmeans. Bila K-means digunakan untuk clustering, KNN digunakan untuk klasi?kasi. Algoritma klasi?kasi ini disebut juga algoritma malas karena tidak mempelajari cara mengkategorikan data, melainkan hanya mengingat data yang sudah ada2. Pada subbab 4.2, kita telah mengelompokkan data orang kaya menjadi dua kelompok. KNN mencari K feature vector dengan sifat termirip, kemudian mengelompokkan data baru ke kelompok feature vector tersebut. Sebagai ilustrasi mudah, kita lakukan klasi?kasi algoritma KNN dengan K = 3 untuk data baru {rich = no,intelligent = yes,good looking = yes}. Kita tahu pada subbab sebelumnya bahwa kelompok satu k1 = {id1,id2,id3,id5}dan k2 = {id4,id6}, pada Tabel 4.8. feature vector termirip dimiliki oleh data dengan id1,id5,id6 seperti diilustrasikan pada Tabel 4.8. Kita dapat menggunakan strategi untuk mengurusi permasalahan ini, misalnya memberikan prioritas memasukkan ke kelompok yang anggotanya lebih banyak menjadi nearest neighbor3. Dengan strategi tersebut, kita mengklasi?kasikan data baru ke kelompok pertama.

Komentar