PRAKTIKUM DATA MINING
KEMENTRIAN RISET, TEKNOLOGI DAN PENDIDIKAN TINGGI UNIVERSITAS ANDALAS
FAKULTAS TEKNOLOGI INFORMASI JURUSAN SISTEM INFORMASI
LABORATORIUM BUSINESS INTELLIGENCE Kampus Universitas Andalas, Limau Manis, Padang – 25163
MODUL PRAKTIKUM 4
NAIVE BAYES
A. Tujuan
1. Praktikan mampu memahami konsep dasar naive bayes.
2. Praktikan mampu memahami langkah-langkah naive bayes.
B. Landasan Teori
Metode klasifikasi ini diturunkan dari penerapan teorema bayes dengan asumsi independence
(saling bebas). Naive Bayes Classifier (NBC) adalah metode pengklasifikasian dengan model
peluang, dimana diasumsikan bahwa setiap atribut (contoh : data sampel) bersifat saling lepas
satu sama lain berdasarkan atribut kelas.
Keuntungan penggunan NBC adalah bahwa metoda ini hanya membutuhkan jumlah data
pelatihan (training data) yang kecil untuk menentukan estimasi parameter yang diperlukan
dalam proses pengklasifikasian. Karena yang diasumsikan sebagai variable independent, maka
hanya varians dari suatu variable dalam sebuah kelas yang dibutuhkan untuk menentukan
klasifikasi, bukan keseluruhan dari matriks kovarians.
Sebelum melakukan proses klasifikasi Naive Bayes, dilakukan tahapan ekstraksi ciri tekstur
citra yang dimiliki oleh data yang ada dinamai metode Gray Level Co-Occurence Matrix
(GLCM). Proses ini merupakan melakukan perhitungan probabilitas hubungan ketetanggaan
antara dua piksel pada jarak dan orientasi sudut tertentu. Pendekatan ini bekerja dengan
membentuk sebuah matriks kookurensi dari data citra, dilanjutkan dengan menentukan ciri
sebagai fungsi dari matrik.
PRAKTIKUM DATA MINING
Kookurensi berarti kejadian bersama, yaitu jumlah kejadian satu level nilai piksel bertetangga
dengan satu level nilai piksel lain dalam jarak (d) dan orientasi sudut (θ) tertentu. Jarak
dinyatakan dalam piksel dan orientasi dinyatakan dalam derajat. Orientasi dibentuk dalam empat
arah sudut dengan interval sudut 45º , yaitu 0º, 45º, 90º, dan 135º. Sedangkan jarak antar piksel
dapat ditetapkan sebesar 1 piksel, 2 piksel, atau lebih.
Matriks kookurensi merupakan matriks bujursangkar dengan jumlah elemen sebanyak kuadrat
jumlah level intensitas piksel pada citra. Setiap titik (p,q) pada matriks kookurensi
berorientasi berisi peluang kejadian piksel bernilai p bertetangga dengan piksel bernilai q pada
jarak d serta orientasi θ dan (180º-θ). Parameter tekstur yang dapat diekstrak dengan metode
GLCM menggunakan dua parameter yaitu contrast dan correlation. Kedua parameter tersebut
dijadikan sebagai nilai masukan dalam naive bayes.
Metode GLCM termasuk dalam metode statistik dimana dalam perhitungan statistiknya
menggunakan distribusi derajat keabuan (histogram) dengan mengukur tingkat kekontrasan,
granularitas, dan kekasaran suatu daerah dari hubungan ketetanggaan antar piksel di dalam citra.
Metode ini paling banyak digunakan untuk analisis tekstur dan diperkenalkan oleh Haralick di
tahun 1973 yang merupakan bagian dari project yang didukung olah NASA yaitu tepatnya
NASA Goddard Space Flight Center. Haralick menggunakan citra dari NASA ERTS untuk
melakukan klasifikasi dengan tingkat akurasi diatas 80%.
Tahapan dalam melakukan proses klasifikasi naive bayes:
1. Menghitung jumlah kelas/label
2. Menghitung jumlah kasus per kelas
3. Mengalikan semua variabel kelas
4. Membandingkan hasil per kelas
Model klasifikasi naive bayes
PRAKTIKUM DATA MINING
Dimana variabel C merepresentasikan kelas, sementara variabel F1 … Fn merepresentasikan
karakteristik-karakteristik petunjuk yang dibutuhkan untuk melakukan klasifikasi. Maka rumus
tersebut menjelaskan bahwa peluang masuknya sampel dengan karakteristik tertentu dalam kelas
C (posterior) adalah peluang munculnya kelas C (sebelum masuknya sampel tersebut, seringkali
disebut prior), dikali dengan peluang kemunculan karakteristik-karakteristik sampel pada kelas
C (disebut juga likelihood), dibagi dengan peluang kemunculan karakteristik-karakteristik
sampel secara global (disebut juga evidence).
Bisa diartikan dengan
CONTOH PROGRAM DAN MATLAB
Berikut ini merupakan pola tekstur citra menggunakan algoritma naive bayes classifier. Citra
yang digunakan adalah citra tekstur Brodatz sejumlah 112 buah seperti tampak pada gambar di
bawah ini:
PRAKTIKUM DATA MINING
1. Lakukan ekstraksi Gray Lecel Co-Occurence Matrix setelah memindahkan folder Original Brodatz
ke dalam tempat penyimpanan yang sama
clc;clear;close all;
image_folder = 'Original Brodatz';
filenames = dir(fullfile(image_folder, '*.gif'));
total_images = numel(filenames);
for n = 1:total_images
full_name = fullfile(image_folder, filenames(n).name);
Img = imread(full_name);
GLCM = graycomatrix(Img,'Offset',[0 1; -1 1; -1 0; -1 -1]);
stats = graycoprops(GLCM,{'contrast','correlation','energy','homogeneity'});
CON(n) = mean(stats.Contrast);
CORR(n) = mean(stats.Correlation);
X = [CON;CORR]';
end
opts = statset('Display','final');
[idx,C] = kmeans(X,3,'Distance','sqeuclidean',...
'Replicates',5,'Options',opts);
figure;
plot(X(idx==2,1),X(idx==2,2),'r.','MarkerSize',24)
hold on
plot(X(idx==1,1),X(idx==1,2),'g.','MarkerSize',24)
plot(X(idx==3,1),X(idx==3,2),'b.','MarkerSize',24)
plot(C(:,1),C(:,2),'kx',...
'MarkerSize',15,'LineWidth',3)
legend('Cluster 1','Cluster 2','Cluster 3','Centroids',...
'Location','best')
title('Cluster Assignments and Centroids')
xlabel('Contrast')
ylabel('Correlation')
h = gca;
PRAKTIKUM DATA MINING
xlim(h.XLim+.5*[-1,1])
ylim(h.YLim+.5*[-1,1])
hold off
2. Buat kodingan untuk klasifikasi Naive Bayes
Y = cell(numel(idx),1);
for n = 1:numel(Y)
if idx(n,:) == 1
Y{n,:} = 'Cluster 1';
elseif idx(n,:) == 2
Y{n,:} = 'Cluster 2';
else
Y{n,:} = 'Cluster 3';
end
end
Mdl = fitcnb(X,Y);
figure
gscatter(X(:,1),X(:,2),Y);
h = gca;
xylim = [h.XLim h.YLim]; % Get current axis limits
hold on
Params = cell2mat(Mdl.DistributionParameters);
Mu = Params(2*(1:3)-1,1:2); % Extract the means
Sigma = zeros(2,2,3);
for j = 1:3
PRAKTIKUM DATA MINING
Sigma(:,:,j) = diag(Params(2*j,:)); % Extract the standard deviations
ezcontour(@(x1,x2)mvnpdf([x1,x2],Mu(j,:),Sigma(:,:,j)),...
xylim+0.5*[-1,1,-1,1]) ...
% Draw contours for the multivariate normal distributions
end
title('Naive Bayes Classifier')
xlabel('Contrast')
ylabel('Correlation')
legend('Cluster 1','Cluster 2','Cluster 3',...
'Location','best')
hold off
isLabels = resubPredict(Mdl);
accuracy = sum(strcmp(isLabels,Y))/numel(Y)*100
3. Sehingga tampilannya akan seperti ini
PRAKTIKUM DATA MINING
C. Instruksi Praktikum
-