Anda di halaman 1dari 9

Tugas Paper Final Project MK Analisis Big Data

Kelas. [C], Kelompok. [5], Desember 2016, hlm. x-x

BIG DATA KLASIFIKASI MENGGUNAKAN NAVE BAYES MAPREDUCE PADA


HADOOP MULTI NODE CLUSTER
Ivan Agustinus1, Rakhmadina Noviyanti2, Bayu L Yudha3, Zulianur Khaqiqiyah4, Imam Cholissodin5

1,2,3,4,5
Program Studi Informatika/Ilmu Komputer Universitas Brawijaya
Email: mail.ivanagustinus@gmail.com1, rakhmadina11@gmail.com2, bayudhabay@gmail.com3,
zulianurhaqq@gmail.com4, imam.cholissodin@gmail.com5

(Naskah masuk: ddmmmyyyy, diterima untuk diterbitkan: ddmmmyyy)

Abstrak
Big data merupakan teknologi baru di dunia teknologi informasi dimana memungkinkan proses pengolahan,
penyimpanan dan analisis data dalam beragam bentuk/format yang berjumlah besar dan pertambahan data yang
sangat cepat. Namun komputasi big data dibutuhkan suatu program dan algoritma yang cepat dan juga efektif.
Pada penelitian ini digunakan algoritma Naive Bayes menggunakan MapReduce. Penelitian ini dilakukan untuk
proses perhitungan klasifikasi dengan cara yang sangat cepat. Dataset yang digunakan adalah data Nursery dari
UCI yang berjumlah 14000 data, dengan jumlah atribut sebesar 8, dan jumlah kelas sebesar 5. Data tersebut di
hitung menggunakan Naive Bayes kemudian di uji dengan mengambil beberapa data sebagai sampel. Data
tersebut di uji sebanyak 10 kali. Sehingga dapat diambil kesimpulan dari pengujian tersebut adalah bahwa
semakin besar jumlah data maka waktu konvergensi semakin cepat.
Kata kunci: Naive Bayes Classifier, Hadoop Multi Node, Mapreduce. Nursery

Abstract
Big data is a new technology in world of information technology which allows processing, storage and analysis
of data in many formats that can increase value of large data very quickly. But computing in big data requires a
program , a fast algorithm and it also effective. The Research of this paper is using Naive Bayes algorithm and
also use MapReduce. This research was conducted for the process calculating of classification in a very quick
way. The dataset that used is a data from the UCI Nursery that amounted to 14000 data, with a total of
8 attributes, and number of total 5 class . The data will be calculated using a Naive Bayes and then be tested by
taking some data as sample data. The data will be tested as many as 10 times.so at the end of calculated we have
a conclusion about the process calculating
Keywords: Naive Bayes Classifier, Hadoop Multi Node, Mapreduce, Nursery

1. PENDAHULUAN MapReduce dikarenakan terdiri atas dua proses


utama yaitu map dan reduce. Map berfungsi
Jumlah data semakin besar di setiap saat dan
mengambil satu set data dan mengubahnya menjadi
data ini berasal dari mana saja, seperti media sosial,
bebrapa set data, di mana data individu dipecah
mesin pencari, catatan transaksi, satelit, pasar
menjadi tupel. Kemudian, Reduce mengambil output
keuangan, situs e-commerce dll. Data yang ada
dari hasil proses map sebagai masukan dan
berbentuk semi-terstruktur, tidak terstruktur atau
menggabungkan/mengelompokkan tupel data ke
bahkan terstruktur. Klasifikasi adalah proses untuk
satu set data yang lebih kecil dari tupel. Sebagai
mengkategorikan data dan dikelompokkan dalam
urutan pada penamaan MapReduce menyiratkan,
kelompok yang sama menurut metrik tertentu ketika
proses reduce selalu dilakukan setelah proses map.
ada data yang serupa.
Tupel di sini berarti pasangan antara key dan value-
Hadoop MapReduce adalah model komputasi
nya, dapat digambarkan dengan simbol "(k1, v1)" .
berbasis Java pada sistem terdistribusi untuk
Pada penelitian yang dilakukan oleh SK
mendukung aplikasi Big Data. Diberi nama
Ahammad Fahad dan Md. Mahbub Alam yang
1
Ivan A, Rakhmadina N, Bayu L Y, Zulianur K, Imam C., Big Data Klasifikasi Menggunakan Nave Bayes Mapreduce pada
Hadoop Multi Node Cluster 2
berjudul A Modified K-Means Algorithm for Big perhitungan data mining seperti dalam DBMS. Kami
Data Clustering, menjelaskan tentang teknik fokus pada algoritma klasifikasi Naive Bayes
pengelompokan k-means untuk clustering data besar. populer. Berbeda dengan kebanyakan pendekatan,
Dari hasil observasi, kualitas cluster yang dihasilkan teknik kami bekerja sepenuhnya dalam DBMS,
sangat bergantung pada pemilihan centroid awal dan memanfaatkan mekanisme DBMS programmability
perubahan cluster data di dalam iterasi subsequence. dimana pengguna memiliki akses penuh ke data.
Seperti kita ketahui, setelah jumlah iterasi tertentu, Secara khusus, SQL query dan Fungsi User-Defined
ada sebagian kecil perubahan titik dari data cluster. (UDFS) digunakan untuk program algoritma Naive
Penelitian selanjutnya dilakukan oleh Malak El Bayes. Kami membandingkan mekanisme ini
Bakry, Soha Safwat, dan Osman Hegazy dengan dengan MapReduce, yang populer digunakan untuk
judul Big Data Classification using Fuzzy K-Nearest data mining. Kami belajar dua tahap untuk classifier:
Neighbor. Didalam paper ini menjelaskan tentang membangun model dan mencetak kumpulan data
implementasi metode FKNN dengan menggunakan lain dengan menggunakan model sebagai masukan.
Map Reduce untuk memproses data guna Kedua dibuat dengan query SQL yang melibatkan
meningkatkan performa dari beberapa metode yang satu tabel scan, sedangkan mencetak data dengan
telah dicoba. Lingkup kerja map yaitu memecah data UDFS melibatkan dua scan tambahan pada tabel
dan mengurangi performa untuk menggabubgkan besar. Percobaan dengan data yang besar
data menjadi satu dan memberikan hasil akhir yang menunjukkan query SQL sangat baik untuk
akurat. Percobaan dilakukan dengan menggunakan membangun model, sementara UDFS lebih baik
dataset yang berbeda. untuk mencetak data. Dalam kedua kasus DBMS
Pada penelitian yang dilakukan oleh Ruchi melakukan lebih baik dari MapReduce. Selain itu,
Agarwal dan Anurag Vyas dengan judul DBMS secara signifikan lebih efisien untuk memuat
Implementation Of Nave Bayes And Map Reduce data dari sistem file pendukung MapReduce.
C4.5 Technique, dalam makalah penelitian ini, Berdasarkan penelitian-penelitian yang telah
semua parameter yang menganalisis kegiatan dalam dilakukan sebelumnya, penulis mengusulkan sebuah
grafik yang diplot dengan Nave bayes dan teknik metode yang lebih efektif dan efisien, sehingga pada
algoritma C4.5 Mapreduce. Menurut aturan Bayes penelitian ini menggunakan metode Naive Bayes
untuk menganalisis data besar dan membuat matriks yang di program menggunakan MapReduce.
kecil sampai akhir eksperimen memberikan semua Keuntungan dari penelitian ini adalah untuk proses
parameter muncul pada grafik, seperti waktu perhitungan klasifikasi dengan cara yang cepat.
eksekusi, tingkat eksekusi, masalah duplikasi dll dan
akurasi semua percobaan sampai akhir. Dalam
pekerjaan ini akurasi final didapatkan sebesar 2. DASAR TEORI
68.8515%.
Penelitian selanjutnya dilakukan oleh Songtao 2.1 Konsep Big Data
Zheng dengan judul Naive Bayes Classifier : A
Big Data adalah kumpulan data dalam jumlah
Map-Reduce Approach. Dalam penelitian ini tak terhingga, cukup rumit dan tidak terstruktur,
digunakan classifier Nave Bayes dengan menyebabkan data tersebut sulit ditangani jika hanya
memanfaatkan fungsi MapReduce dan juga dengan basis data biasa. (Padhy, 2013)
melakukan analisis skalabilitas untuk melihat Tantangan dalam pemrosesan basis data
hubungan antara waktu berjalan dan ukuran cluster. diantaranya perhitungan akurasi, penyimpanan data,
Diketahui tanpa mengurangi akurasi, pendistribusian pencarian dan penelusuran, pembagian, pemindahan,
Nave Bayes memiliki kinerja yang jauh lebih tinggi analisis dan visualisasi data. Semakin lama
dibandingkan dengan menjalankan algoritma pada himpunan himpunan data besar kian bertambah
mesin tunggal. Sebuah versi MapReduce dari Nave informasinya dibandingkan dengan himpunan
Bayes ternyata menjadi sangat efisien ketika himpunan data kecil. Tiap hubungan data dapat
berhadapan dengan sejumlah besar data. Kita dapat ditemukan untuk beberapa tujuan salah satunya
menggunakan pengklasifikasi lain seperti support mencermati tren bisnis, menentukan kualitas
vector machine (SVM), jaringan saraf tiruan (JST), penelitian, mencegah penyakit, melawan tindak
model pohon keputusan dll untuk prediksi dari pidana dan mengetahui kondisi lalu lintas secara
seluruh dataset. realtime. (Padhy, 2013)

Selanjutnya adalah penelitian yang dilakukan 2.2 Naive Bayes


oleh Sasi K. Pitchaimalai, dan kawan-kawan.
Penelitian yang dilakukan berjudul Comparing SQL Nave Bayes Classifier adalah metode
and MapReduce to Computer Naive Bayes in a pengklasifikasian paling sederhana dari model
Single Table Scan. Didalam penelitian ini pengklasifikasian yang ada dengan menggunakan
Kebanyakan pengolahan data mining saat ini konsep peluang, dimana diasumsikan bahwa setiap
dilakukan pada file flat luar DBMS. kita atribut contoh (data sampel) bersifat saling lepas
mengusulkan teknik baru untuk memproses
Ivan A, Rakhmadina N, Bayu L Y, Zulianur K, Imam C., Big Data Klasifikasi Menggunakan Nave Bayes Mapreduce pada
Hadoop Multi Node Cluster 3
satu sama lain berdasarkan atribut kelas. 2.3 Hadoop
(Rosadi,2013)
Hadoop merupakan sebuah framework
Pada sebuah dataset, setiap baris/dokumen
menggunakan open source berbasis Java berlisensi
diasumsikan sebagai vector dari nilai-nilai atribut
Apache untuk mendukung aplikasi dalam
<x1,x2,...,x3> dimana tiap nilai-nilai menjadi
pemrosesan Big Data. Untuk menjalankan hadoop
peninjauan atribut Xi (i[1,n])). Setiap baris
harus menyediakan tempat penyimpanan dan
mempunyai label kelas ci {c1,c2,,ck} sebagai
komputasi terdistribusi ke setiap cluster dari
nilai variabel kelas C, sehingga untuk melakukan
komputer / node. Sehingga dalam hal ini, suatu
klasifikasi dapat dihitung nilai probabilitas p(C=ci|
perusahaan akan menggunakan komputer berskala
X=xj) dikarenakan pada Nave Bayes diasumsikan
enterprise (High End Hardware) untuk menyimpan
setiap atribut saling bebas, maka persamaan yang
dan mengolah data besar. (Padhy, 2013)
didapat adalah sebagai berikut :
Adanya hadoop dapat memaksimalkan
Peluang p(C=ci|X=xj) menunjukkan
kemampuan hardware yang misal terbatas untuk
peluang bersyarat atribut Xi dengan nilai xi mengolah data berukuran sangat besar satu file
diberikan kelas c dengan ukuran 500GB, 1TB, dst.
Dikarenakan pada Nave Bayes diasumsikan setiap Dua komponen terpenting dalam hadoop adalah
atribut saling bebas, maka persamaan yang didapat HDFS dan mapreduce. HDFS adalah sistem
adalah sebagai berikut : penyimpanan file terdistribusi untuk memecah file
Peluang p(C=ci|X=xj) menunjukkan ke bagian kecil untuk melakukan komputasi
peluang bersyarat atribut Xi dengan nilai xi distribusi ke cluster cluster. Sedangkan Mapreduce
diberikan kelas c. adalah algoritma komputasi untuk mendistribusikan.
Kelas C bertipe kualitatif sedangkan atribut (Maillo, 2015)
Xi dapat bertipe kualitatif ataupun
kuantitatif. 2.4 Mapreduce
Fitur-fitur hasil ekstraksi sudah didapat, maka
fitur-fitur dari data training yang didapat dilanjutkan Untuk memproses data secara distribusi
kedalam proses klasifikasi menggunakan metode dibutuhkan sebuah algoritma komputasi yaitu
Naive Bayes. Mapreduce. Mapreduce menggunakan bahasa
Karena data yang didapat merupakan data pemograman Java. Dalam pemrosesan algoritmanya,
kategorikal, maka kita menggunakan metode Naive mapreduce dibagi menjadi dua proses utama yaitu
Bayes dengan rumus seperti pada persamaan 1. map dan reduce. Sehingga mudah dalam memproses
(Rosadi, 2013) data besar secara paralel karena komputasi bisa
berjalan pada puluhan, ratusan, atau bahkan ribuan
h Naive Bayes=argmax P ( h ) P ( x|h )=arg max P (node. (Bakry, 2015)
h ) P(ath)
Map mengambil satu set data lalu diubah ke set
(1) data dimana unsur unsur individu dipecah menjadi
tupel. Kemudian reduce mengambil output dari
Keterangan : proses map semagai masukan dan menggabungkan /
P = Probabilitas mengelompokkan tupel ke datu set data yang lebih
h = Hipotesis suatu class spesifik kecil dari tupel. Sesuai namanya MapReduce maka
P(h) = Probabilitas hipotesis h pertama melakukan proses map lebih dulu, baru
x = Klasifikasi datum baru berupa x = ( a1, kemudian proses reduce.
aT) Tupel di sini berarti pasangan
P(x| h) = Probabilitas x berdasarkan kondisi pada antara key dan value-nya, dapat digambarkan
hipotesis h dengan simbol "(k1, v1). (Padhy, 2013)
ai = Nilai fitur at dari setiap contoh MapReduce terdiri atas tiga tahap, yaitu tahap
P(ai | h) = Probabilitas ai berdasarkan kondisi map, tahap shuffle, dan terakhir tahap reduce. untuk
pada hipotesis h tahapan shuffle dan reduce digabungkan kedalam
Untuk menghitung nilai varian (2) maka rumus satu tahap besaran-nya yaitu tahap reduce. (Zhao,
yang digunakan seperti persamaan 2. 2010)
1 Tahap map, memproses data inputan yang
1
n
=
N 1 n=1
( x ix )
2
(2) umumnya berupa file yang tersimpan dalan
HDFS (dapat di baca di Sistem file
terdistribusi), inputan tersebut kemudian
Keterangan : diubah menjadi tuple yaitu pasangan
N = banyak datum yang dihitung antara key dan value-nya.
xi = datum ke i 2 Tahap reduce, memproses data inputan dari
x = mean dari seluruh data hasil proses map, yang kemudian dilakukan
tahap shuffle dan reduce yang hasil data set
baru-nya disimpan di HDFS kembali.
4 Paper Final Project MK Analisis Big Data, Kelas. [C], Kelompok. [5], Desember 2016, hlm. x-
x
Berikut adalah jumlah data
Berikut ini ilustrasi untuk mendapatkan berdasarkan kategori kelasnya pada Tabel
gambaran tentang proses map dan reduce. 2.
Tabel 2. Kategori Kelas
Class N N (%)
not_recommend 4610 32,928%
recommend 6 0,042%
very_recom 350 2,5%
priority 4624 22,028%
spec_prior 4410 31,5%

3.2 Klasifikasi dengan Naive Bayes Classfier


Klasifikasi adalah proses menemukan model
atau fungsi dengan suatu konsep atau kelas data,
bertujuan untuk dapat memperkirakan kelas suatu
objek. Prosesnya ada 2 tahap yaitu
a. Tahap pelatihan data (training data)
Gambar 1. Tahapan Mapreduce disebut sebagai tahap pembelajaran. Pada
tahap itu diperoleh nilai probabilitas prior.
b. Tahap klasifiksi, pada tahap ini diawali
3. PERANCANGAN DAN IMPLEMENTASI dengan pengambilan data testing yang
belum ditahui kelasnya, kemudian lanjut
3.1 Pengumpulan Data pada proses klasifikasi dengan metode
Pengklasifikasian data menggunakan naive bayes berdasarkan data training.
naive bayes dan mapreduce pada paper ini Perhatikan alur proses klasifikasi data
menggunakan data set dari Uci Machine menggunakan naive bayes pada Gambar 3.2
Learning yaitu Nursery Data Set.
Nursery database bersumber dari
Vladislav Rajkovic sebagai creator dan
Marko Bohanec dan Blaz Zupan sebagai
Donors. Data ini dihimpun dari tahun 1997
bulan juni. Database ini berjumlah 14000
ribu data, terdiri dari 8 atribut dan 5
klasifikasi class. Delapan atribut itu antara
lain : parents, has_nurs, form, children,
housing, finance, social, health. Sedangan
untuk klasifikasi kelasnya yaitu not_recom,
recommend, very_recom, priority,
special_priority. (Uci, 1997)
Sehingga dari 8 atribut dan 5 kelas
tersebut, dapat digunakan sebagai data
training dalam menentukan apakah anak
tersebut cocok bersekolah.
Berikut adalah tabel setiap atribut
pada Tabel 1 :
Tabel 1. Nilai Atrbut
Parent Usual, pretntious, great_pret
Has_nur Proper, less_proper,
s improper, critical, very_crit (a) (b)
Form Complete, completed, Gambar 2. Proses Klasifikasi Naive Bayes
incomplete. Foster
Children 1, 2, 3, more Berikut proses pengklasifikasian data
Housing Convenient, less_conv, dengan naive bayes dan mapreduce.
critical
Finance Convenient, inconv
Social Non_prob, slightly_prob,
problematic_recommended,
priority, not_recom
Health Recommended, priority,
not_recom
Ivan A, Rakhmadina N, Bayu L Y, Zulianur K, Imam C., Big Data Klasifikasi Menggunakan Nave Bayes Mapreduce pada
Hadoop Multi Node Cluster 5
2 Path(args[1]));
2
3
FileOutputFormat.setOutputPath(job,
2
new Path(args[2]));
4
2
5 job.setMapperClass(NBCMap.class);
2
6
2
7 job.setReducerClass(NBCReduce.class);
2
8
2
9 job.setMapOutputKeyClass(IntWritable.class);
3
0
3
1 job.setMapOutputValueClass(Text.class);
3
2
3
3 job.setOutputKeyClass(IntWritable.class);
3
4 job.setOutputValueClass(Text.class);
3 boolean success =
5 job.waitForCompletion(true);
3 System.exit(success ? 0 : 1);
6 }
3 }
7
3
8
3
Gambar 3. Proses Klasifikasi Naive Bayes 9
dan Mapreduce 4
3.3 Implementasi Kode Program 0
4
1
Berikut adalah kode program
4
NBCDriver.java 2
1 Import java.io.IOException; 4
2 import org.apache.hadoop.conf.Configuration; 3
3 import org.apache.hadoop.fs.Path; 4
4 import org.apache.hadoop.io.IntWritable; 4
5 import org.apache.hadoop.io.Text; 4
6 import org.apache.hadoop.mapreduce.Job; 5
7 import 4
8 org.apache.hadoop.mapreduce.lib.input.FileInpu 6
9 tFormat; 4
1 import 7
0 org.apache.hadoop.mapreduce.lib.output.FileOu 4
1 tputFormat; 8
1 4
1 public class NBCDriver { 5
2 public static void main(String[] args) 3
1 throws IOException, InterruptedException, 5
3 ClassNotFoundException { 4
1 Configuration conf=new 5
4 Configuration(); 5
1 // The test input for which you 5
5 want to find the acitivity that the Person should 6
1 be doing 5
6 conf.set("test_input", args[0]); 7
1 Job job = new Job(conf); 5
7 8
1 5
job.setJarByClass(NBCDriver.class);
8 9
1
9
Kode Program 1. NBCDriver.java
2 job.setJobName("Naive_Bayes_calssifier using
0 Hadoop");
Penjelasan dari Kode Program1:
2 1. Baris 1-12 adalah proses import library class
1 pada java
2 FileInputFormat.setInputPaths(job, new
6 Paper Final Project MK Analisis Big Data, Kelas. [C], Kelompok. [5], Desember 2016, hlm. x-
x
2. Baris 14-18 merupakan main class dari 61 inputs.containsKey(j+","+input[j]))
NBCDriver 62
63
3. Baris 19-20 adalah membuat variabel 64
inputs.put(j+","+input[j], 0);
konfigurasi baru 65
4. Baris 24-34 adalah proses untuk penginputan 66
data 67 if(features_count.containsKey(j+","+input[j]
68
5. Baris 36-55 adalah proses untuk output 69
+"|"+input[input.length-1]))
6. Baris 56-57 adalah proses mengakhiri program, features_count.put(j+","+input[j]
70 +"|"+input[input.length-1],
atau program akan otomatis exit, 71 features_count.get(j+","+input[j]
72 +"|"+input[input.length-1])+1);
73
Berikut adalah kode program else
74
NBCMap.java 75
1 import java.io.IOException; 76 features_count.put(j+","+input[j]
2 import java.util.HashMap; 77 +"|"+input[input.length-1], (double) 1);
3 import java.util.Map.Entry; 78 }}}
4 79 ++count;}
5 import org.apache.hadoop.io.IntWritable; 80 public void cleanup(Context
6 import org.apache.hadoop.io.LongWritable; 81 context) throws IOException,
7 import org.apache.hadoop.io.Text; 82 InterruptedException{
8 import 83
9 org.apache.hadoop.mapreduce.Mapper; 84
10 for(Entry<String,Double>
85 o_c:outcome_count.entrySet()){
11 public class NBCMap extends 86
12 Mapper<LongWritable, Text, IntWritable, String
87 output_class=o_c.getKey();
13 Text>{ 88
14 public static String output_key; 89
15 public static String[] 90 for(Entry<String,Integer>
16 test_input=null; 91 i:inputs.entrySet()){
17 public static int count=0; 92 if(!
18 public static 93 features_count.containsKey(i.getKey()
19 HashMap<String,Integer> inputs=new 94 +"|"+output_class))
20 HashMap<String,Integer>(); 95
21 public static double 96 features_count.put(i.getKey()
22 output_value=Double.NEGATIVE_INFINITY; 97 +"|"+output_class, (double) 0);
23 public static 98 }
24 HashMap<String,Double> output= new 99 double
25 HashMap<String,Double>(); 100 output_class_count=o_c.getValue();
26 public static 101 double
27 HashMap<String,Double> outcome_count= 102 probability=output_class_count/count;
28 new HashMap<String,Double>(); 103
29 public static 104
30 HashMap<String,Double> features_count= 105 for(Entry<String,Double>
31 new HashMap<String,Double>(); 106 f_c:features_count.entrySet()){
32 public void map(LongWritable key, 107
33 Text value, Context context) throws 108 if(f_c.getKey().split("\\|")
34 IOException, InterruptedException { 109 [1].contentEquals(output_class))
35 if(test_input==null) 110
36 111
37 112
test_input=context.getConfiguration().get("
38 113
test_input").split("\\,"); probability=probability*(f_c.getValue()/outp
39 114
String[] ut_class_count);
40 115
input=value.toString().split("\\,"); }
41 116
for(int output.put(output_class,
42 117
j=0;j<input.length;j++){ probability);
43 118
if(j==input.length-1){ }
44 119 for(Entry<String,Double>
45 120 o:output.entrySet()){
46 if(outcome_count.containsKey(input[j])) 121
47
48 if(o.getValue()>output_value){
outcome_count.put(input[j],
49 outcome_count.get(input[j])+1);
50 else output_value=o.getValue();
51 outcome_count.put(input[j],
52 (double) 1);
53 output_key=o.getKey();
}
54 }
else{
55 }
56 context.write(new
57 if(input[j].contentEquals(test_input[j])){ IntWritable(1),new Text(output_key));
58 }}
59 if(! Kode Program 2. NBCMap.java
60
Ivan A, Rakhmadina N, Bayu L Y, Zulianur K, Imam C., Big Data Klasifikasi Menggunakan Nave Bayes Mapreduce pada
Hadoop Multi Node Cluster 7
}
Penjelasan dari Kode Program2: context.write(null, new
Text(out_key));
1. Baris 1-10 adalah proses import library class }
pada java }
2. Baris 13-14 merupakan main class dari
NBCMap
3. Baris 15-32 adalah proses inisialisasi variabel
4. Baris 33-73 merupakan pembuatan class map
dengan parameter LongWritable key, Text value
dan Context context
5. Baris 74-121 merupakan pembuatan class
cleanup dengan parameter Context context Kode Program 3. NBCReduce.java

Berikut adalah kode progam untuk Penjelasan dari Kode Program3:


NBCReduce.java. 1. Baris 1-7 adalah proses import library class
1 import java.io.IOException; pada java
2 import java.util.HashMap; 2. Baris 9-11 merupakan main class dari
3 import java.util.Map.Entry; NBCReduce
4 import 3. Baris 12-50 adalah proses pembuatan class
5 org.apache.hadoop.io.IntWritable;
6 import org.apache.hadoop.io.Text; reduce dengan parameter IntWritable key,
7 import Iterable<Text> values dan Context context.
8 org.apache.hadoop.mapreduce.Reduce
9 r;
10
Berikut tampilan compile program Naive Bayes dan
11 public class NBCReduce extends proses pengujian naive bayes:
12 Reducer<IntWritable, Text,
13 IntWritable, Text>{ 1. Memastikan data training telah dan sudah
14 public void reduce(IntWritable
15 key, Iterable<Text> values, Context dipisah ke jumlah data yang berbeda.
16 context) throws IOException,
17 InterruptedException{
18 Double
19 out_value=Double.NEGATIVE_INFINITY;
20 String out_key=null;
21
22
HashMap<String,Integer>
23
final_output=new
24
HashMap<String,Integer>();
25
for(Text value:values){
26
27
28
29 if(final_output.containsKey(value.toStr
30 ing()))
31
32
33 2. Memastikan coding program NBCDriver,
34 final_output.put(value.toString(), NBCMap, dan NBCReducer ada di
35 final_output.get(value.toString())+1);
36 folder /usr/local/hadoop
else
37
38
39
40 final_output.put(value.toString(), 1);
41 }
42
43
44 for(Entry<String,Integer>
45 output:final_output.entrySet()){
46 3. Compile dari *.java ke *.class
47
48
49 if(output.getValue()>out_value){ 4. Compile dari *class ke *.jar
50
out_value=(double)
output.getValue();

out_key=output.getKey();
}
8 Paper Final Project MK Analisis Big Data, Kelas. [C], Kelompok. [5], Desember 2016, hlm. x-
x
5. Copy data inputan dari komputer ke
direktori hadoop, sebelumnya buatlah
direktori di hadoop. Pengujian Konvergensi
500 Data 1000 Data
6. Run program naive bayes menggunakan
1500 Data 2000 Data
satu data testing. Run data tsb sebanyak 10
2500 Data 3000 Data
kali pada data training 500, catat waktu
dalam pengeksekusian program tsb. Lalu 3500 Data
membandingan dengan jumlah data training 16
lainnya. 14
12
10
8
Waktu Komputasi (per detik)
7. Jika compile program berhasil maka akan 6
tampil di output seperti berikut. 4
2
0

Percobaan Jumlah Data

Gambar 4. Pengujian Konvergensi


Dari gambar tersebut diketahui bahwa semakin
besar jumlah data maka waktu konvergensi semakin
cepat. Terlihat pada jumlah data 500 dan 1000
konvergensi pada percobaan ke-4, sedangkan pada
data ke 2000 keatas konvergensi pada percobaan ke-
Pada paper ini kami hanya menggunakan 1 1 dan ke-2. Semakin banyak data pula maka proses
slaves dengan nama node1. komputasi awal juga semakin cepat, terlihat pada
percobaan pertama 500 data pada detik ke 13, 1000
data pada detik 14, sedangkan pada 2500 data dan
4. PENGUJIAN DAN ANALISIS 3500 pada detik ke 9.

Pengujian Kinerja Algoritma 5. KESIMPULAN DAN SARAN

Pengujian ini dapat dilakukan dengan membuat Aplikasi ini merupakan aplikasi yang bertujuan
variasi dataset yang berbeda ukuran atau banyaknya menentukan apakah anak tersebut cocok bersekolah.
data yang digunakan dari keseluruhan data dipecah- Data yang digunakan berjumlah 14000 data dengan
pecah menjadi beberapa bagian. Pada paper ini kami 8 atribut dan 5 kelas.
menggunakan 7 variasi data set untuk pengujian Aplikasi ini menerima inputan berupa frekuensi
konvergensi. Dilakukan dengan memecah data set dari data yang akan di klasifikasikan. Aplikasi akan
menjadi 7 bagian dari 14000 ribu data. Data ke-1 menghitung peluang klasifikasi setiap kelas yang
500, data ke-2 1000, data ke-3 1500, data ke-4 2000, diinputkan dengan menggunakan algoritma nave
data ke-5 2500, data ke-6 3000 dan data ke-7 3500. bayes, dan kemudian di cari nilai yang paling
Dari 7 variasi tersebut dilakukan proses compile masksimal pada setiap probablitas kelas yang telah
program sebanyak 10 kali, lalu dicatat waktu ditentukan yakni not_recom, recommend,
komputasinya. Berikut grafik pengujian konvergensi very_recom, priority, special_priority dan pada nilai
7 variasi data set pada Gambar 4. maksimal itulah data yang diuji akan diberikan
pelabelan kelas sesuai probabilitas yang bernilai
maksimal tersebut.
Pengujian yang akan dilakukan terhadap
aplikasi adalah dengan menginputkan beberapa data
latih yang dipilih secara acak dan kemudian
dilakukan test berjumlah 10 kali pada setiap data.
Data uji yang digunakan adalah data yang
berkelipatan 500 yaitu, 500, 1000, 1500, 2000, 2500,
3000 dan 3500. Masing-masing di uji sebanyak 10
Ivan A, Rakhmadina N, Bayu L Y, Zulianur K, Imam C., Big Data Klasifikasi Menggunakan Nave Bayes Mapreduce pada
Hadoop Multi Node Cluster 9
kali dan dilihat waktu yang ditempuh selama Approach for Big Data Classification. IEEE
memproses data tersebut. Trustcom / BigDataSE / ISPA . University
of Granada, Spain.
Padhy, Rabi Prasad. (Februari 2013). Big Data
6. DAFTAR PUSTAKA Processing with Hadoop-MapReduce in
Cloud Systems. International Journal of
Agarwal, R., & Vyas, A. (April 2016). Cloud Computing and Services Science (IJ-
Implementation Of Nave Bayes And Map CLOSER). Vol.2, No.1, pp. 16~27.
Reduce C4.5 Technique. International Bangalore, Karnataka, India
Journal of Scientific Research and Rosadi, Rudi.,Suryana, Ino., (Juli 2013).
Engineering Studies (IJSRES), Volume 3 Pengembangan Aplikasi Klasifikasi Naive
Issue 4. ISSN: 2349-8862, 53-57. Bayesian Pendaftar ke Program D-Iii
Bakry, M. E., Safwat, S., & Hegazy, O. (December Teknik Informatika Fmipa UNPAD
2015). Big Data Classification using Fuzzy Berdasarkan Asal Daerah dan Sosial
K-Nearest Neighbor. International Journal Ekonomi Pendaftar. Universitas
of Computer Applications (0975 8887), Padjadjaran, Bandung
Volume 132 No.10, 8-13. Zhao, W.,Ma, Huifang., He, Qing. 2010. Parallel K-
Cohen, W. (2015). Naive Bayes and Map-Reduce. 1- Means Clustering Based on MapReduce.
17. The Key Laboratory of Intelligent
Fahad, S. A., & Alam, M. M. (April 2016). A Information Processing, Institute of
Modified K-Means Algorithm for Big Data. Computing Technology, Chinese Academy
IJCSET(www.ijcset.net), Vol 6, Issue 4, of Sciences. Graduate University of Chinese
129-132. Academy of Sciences
Pitchaimalai, S. K., Ordonez, C., & Alvarado, C. G.
(2012). Comparing SQL and MapReduce to
compute Naive Bayes in a Single Table Scan.
University of Houston, 9-16.
Maillo, Jesus., Triguero, I., Herrera, F., (2015). A
MapReduce-based k-Nearest Neighbor

Anda mungkin juga menyukai