Pada contoh kali ini, saya akan membahas penggunaan metode NBC secara singkat, agar mudah untuk dipahami. Konsep penggunaan metode ini adalah dengan mencari nilai probabilitas label / kelas dan nilai probabilitas setiap atribut / fitur sebagai data training, yang kemudian nilai probabilitas tersebut digunakan untuk memprediksi data baru yang belum memiliki label dengan cara mengalikan masing-masing nilai probabilitas atribut pada data training sesuai atribut pada data yang di uji terhadap masing-masing nilai probabilitas label / kelas, hasil perkalian pada masing-masing label kemudian dibandingkan dan diambil nilai probabilitas terbesar sebagai hasil prediksi.
Jika anda pusing memahami maksud dari konsep diatas, berikut tahapan / algoritma NBC secara lebih detail :
Pada contoh kasus kali ini, saya akan menggunakan data yang sama dengan data sebelumnya pada contoh klasifikasi decision tree, yakni data untuk menentukan keputusan seseorang bermain tennis atau tidak, dimana variabel penentunya diantaranya adalah outlook (cuaca), temperature (suhu), humidity (kelembapan), dan windy (angin).
Keempat hasil perhitungan nilai probabilitas pada tabel diatas digunakan sebagai data training, yang kemudian dapat digunakan untuk memprediksi data baru yang belum mempunyai label.
Jika anda pusing memahami maksud dari konsep diatas, berikut tahapan / algoritma NBC secara lebih detail :
- Menghitung Jumlah kelas/label
- Menghitung nilai probabilitas setiap kelas/label
- Menghitung nilai probabilitas pada setiap atribut berdasarkan masing-masing label
- Mengalikan nilai probabilitas setiap atribut terhadap masing-masing label. Nilai probabilitas atribut yang digunakan menyesuaikan case pada data baru
- Diperoleh hasil prediksi untuk data baru
Pada contoh kasus kali ini, saya akan menggunakan data yang sama dengan data sebelumnya pada contoh klasifikasi decision tree, yakni data untuk menentukan keputusan seseorang bermain tennis atau tidak, dimana variabel penentunya diantaranya adalah outlook (cuaca), temperature (suhu), humidity (kelembapan), dan windy (angin).
No
|
Outlook
|
Temperature
|
Humidity
|
Windy
|
Play
|
1
|
Sunny
|
Hot
|
High
|
FALSE
|
No
|
2
|
Sunny
|
Hot
|
High
|
TRUE
|
No
|
3
|
Cloudy
|
Hot
|
High
|
FALSE
|
Yes
|
4
|
Rainy
|
Mild
|
High
|
FALSE
|
Yes
|
5
|
Rainy
|
Cool
|
Normal
|
FALSE
|
Yes
|
6
|
Rainy
|
Cool
|
Normal
|
TRUE
|
Yes
|
7
|
Cloudy
|
Cool
|
Normal
|
TRUE
|
Yes
|
8
|
Sunny
|
Mild
|
High
|
FALSE
|
No
|
9
|
Sunny
|
Cool
|
Normal
|
FALSE
|
Yes
|
10
|
Rainy
|
Mild
|
Normal
|
FALSE
|
Yes
|
11
|
Sunny
|
Mild
|
Normal
|
TRUE
|
Yes
|
12
|
Cloudy
|
Mild
|
High
|
TRUE
|
Yes
|
13
|
Cloudy
|
Hot
|
Normal
|
FALSE
|
Yes
|
14
|
Rainy
|
Mild
|
High
|
TRUE
|
No
|
Langkah pertama adalah menghitung jumlah kelas
Play=No = 4
Play=Yes = 10
Total data = 14
Menghitung nilai probabilitas pada setiap label / kelas :
P(Play=No) = 4/14
P(Play=Yes) = 10/14
Menghitung nilai probabilitas pada setiap atribut berdasarkan masing-masing label
Outlook
|
Play=Yes
|
Play=No
|
Sunny
|
2/10
|
3/4
|
Cloudy
|
4/10
|
0
|
Rainy
|
4/10
|
1/4
|
Pada contoh diatas, untuk memperoleh nilai 2/10 pada outlook sunny adalah dengan cara menghitung jumlah kategori sunny berlabel yes, dibandingkan dengan total play berlabel yes. Diketahui jumlah data kategori sunny dengan label yes = 2 dan total data yes = 10, sehingga dapat ditulis P(Sunny|Yes)= 2/10, demikian halnya untuk mendapatkan nilai pada kategori berikutnya.
Temperature
|
Play=Yes
|
Play=No
|
Hot
|
2/10
|
2/4
|
Mild
|
4/10
|
2/4
|
Cool
|
4/10
|
0
|
Humidity
|
Play=Yes
|
Play=No
|
High
|
3/10
|
4/4
|
Normal
|
7/10
|
0
|
Windy
|
Play=Yes
|
Play=No
|
FALSE
|
6/10
|
2/4
|
TRUE
|
4/10
|
2/4
|
Misal saya mempunyai data baru sebagai berikut :
No
|
Outlook
|
Temperature
|
Humidity
|
Windy
|
Play
|
1
|
Rainy
|
Hot
|
High
|
TRUE
|
?
|
Berdasarkan data tersebut, saya ingin mengetahui keputusan apakah harus bermain tennis atau tidak?
Untuk memperoleh hasil klasifikasi, maka dapat dilakukan dengan cara mengalikan nilai probabilitas setiap label / kelas pada data training sesuai dengan kasus pada data baru sebagai berikut :
Misal Play’ = (Outlook = Rainy, Temperature = Hot, Humidity = High, Windy = TRUE), maka:
P(Yes|Play’) = P(Rainy|Yes) * P(Hot|Yes) * P(High|Yes) * P(TRUE|Yes) * P(Play|Yes)
P(Yes|Play’) = 4/10 * 2/10 * 3/10 * 4/10 * 10/14
P(Yes|Play’) = 0,006857
P(No|Play’) = P(Rainy|No) * P(Hot|No) * P(High|No) * P(TRUE|No) * P(Play|No)
P(No|Play’) = 1/4 * 2/4 * 4/4 * 2/4 * 4/14
P(No|Play’) = 0,017857
Kemudian bandingkan nilai kedua probabilitas antara P(Yes|Play’) dan P(No|Play’).
Karena nilai P(No|Play’) = 0,017857 lebih besar dibandingkan dengan P(Yes|Play’) = 0,006857, maka hasil keputusan untuk Play’ adalah No, yakni tidak bermain tennis.
Prediksi menggunakan metode NBC menghasilkan keputusan yang sama dengan menggunakan metode decision tree pada postingan sebelumnya, yakni untuk kasus Outlook = Rainy, Temperature = Hot, Humidity = High, Windy = TRUE akan menghasilkan keputusan bermain tennis = No
Sekian postingan singkat ini saya buat, semoga bermanfaat :)
Hidup itu seperti bersepeda. Kalau kamu ingin menjaga keseimbanganmu, kamu harus terus bergerak maju. -Albert Einstein-
:) :( hihi :-) :D =D :-d ;( ;-( @-) :P :o -_- (o) :p :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ $-) (y) (f) x-) (k) (h) cheer lol rock angry @@ :ng pin poop :* :v 100