Jumat, 11 Mei 2018

PENGOLAHAN DATA MENGGUNAKAN APLIKASI WEKA DENGAN METODE KLASIFIKASI k-Nearest Neighbor

Pada kesempatan kali ini saya mencoba untuk menjelaskan cara melakukan pengolahan Data menggunakan Aplikasi Weka. sebelumnya saya akan membahas terlebih dahulu apa itu software GNU Weka. Weka merupakan aplikasi yang dibuat dari bahasa pemrograman java yang dapat digunakan untuk membantu pekerjaan data mining (penggalian data). Weka berisi beragam jenis algoritma yang dapat digunakan untuk memproses dataset secara langsung atau bisa juga dipanggil melalui kode bahasa java. Weka berisi peralatan seperti pre-processing, classification, regression, clustering, association rules dan visualization. Weka dapat juga digunakan untuk memproses big data dan dikembangkan guna memenuhi skema machine learning (ML). Weka bersifat open source dibawah lisensi GNU General Public License.


Weka tersedia bagi pengguna Linux, OS X, dan Windows. Untuk mengunduh GNU Weka silahkan mengunjungi halaman Download Weka.

Metode Klasifikasi k-Nearest Neighbor
Metode yang saya gunakan adalah klasifikasi k-Nearest Neighbor atau biasa disingkat kNN.
Metode kNN memiliki perbedaan cara kerja dibandingkan dengan metode-metode klasifikasi lainnya. metode klasifikasi secara umum akan membentuk model, yang merupakan fungsi pemetaan input output dari data latih dan menggunakan model yang telah terbentuk untuk memperkirakan output dari suatu input yang baru. Pada metode decision tree, model berbentuk tree, sedangkan pada Naive Bayes, model yang digunakan berupa fungsi probabilitas. Metode kNN tidak memiliki prosedur pelatihan (training) sehingga tidak terdapat pembentukan model. Metode kNN bekerja bedasarkan asumsi bahwa suatu data akan memiliki kelas atau kategori yang sama dengan data yang berada disekitarnya. Konsep ini disebut konsep ketetanggaan.

Algoritma kNN
Algoritma kNN bekerja dengan cara menemukan k tetangga terdekat dari suatu data yang belum diketahui kelasnya (data uji). Penentuan k  tetangga terdekat dilakukan dengan menghitung jarak dari data uji ke setia data latih yang ada. Selanjutnya dipilih sejumlah k data yang memiliki jarak terdekat. Kelas dari data uji ditentukan dari mayoritas kelas dari k data latih terdekat.

Implementasi kNN pada Weka
Metode kNN diimplementasikan pada Weka dengan nama IBk (instance-based learning with parameter k). Contoh berikut akan menampilkan penggunaan IBk untuk mengelompokan data Iris berdasarkan panjang dan lebar dari kelopak dan mahkota bunga.

Langkah pertama yang dilakukan adalah Data Iris.arff yang sebelumnya dibuat mengguakan microsoft excel dengan format CSV (Comma delimited).
Gambar data iris.csv

Kemudian buka aplikasi Weka, versi Weka yang saya pakai versi 3.8.2
Gambar tampilan Weka 3.8.2

Setelah itu pilih menu Explorer, kemudian akan muncul tampilan seperti pada gambar berikut :
Gambar tampilan menu explorer

Kemudian pilih menu Open file
Gambar pengambilan data iris.arff

Berikut tampilan dari data yang sudah di open file
Gambar tampilan open file data iris.arff

Proses klasifikasi dapat dimulai dengan memilih tab Classify. Tekan tombol Choose untuk memilih metode klasifikasi yang akan digunakan. Algoritma IBk dapat diakses melalui folder Weka > Classifier > lazy > IBk.
Gambar tampilan pemilihan algoritma IBk

Metode IBk memiliki beberapa parameter yang dapat diatur sesuai dengan kebutuhan. Pengaturan parameter dapat dilakukan dengan klik kanan pada field IBk disamping tombol Choose dan pilih opsi Show properties... Beberapa Opsi yang dapat diatur :
  • kNN : Jumlah tetangga terdekat ( nilai k). Pada percobaan ini pilihlah nilai kNN sebesar 3.
  • distanceWeighting : Metode pembobotan untuk mengurangi efek dominasi kelas yang memiliki banyak data.
  • CrossValidate : Jika bernilai True, Weka akan mencari nilai k terbaik, yang nilai nya berada diantara 1 dan k pada parameter kNN.
Gambar parameter pada algoritma IBk

Pengujian dilakukan dengan memecah data Iris menjadi data latih dan data uji dengan proporsi 70% : 30%. Pilihlah opsi Percentage split pada Test options dan isilah dengan angka 70. Pilih fitur (Nom) class sebagai kategori pada data. Klik tombol Start untuk memulai proses klasifikasi. Berikut adalah cuplikan hasil klasifikasi :
Gambar Hasil validasi klasifikasi menggunakan IBk

Proses klasifikasi dilakukan dilakukan dengan menggunakan lima fitur dimana satu diantaranya merupakan penanda kelas/kategori. Pengujian dilakukan dengan membagi 150 data menjadi 105 data latih (70%) dan 45 data uji (30%). Dari 45 data uji, terdapat 2 data uji yang diklasifikasikan secara salah dan 43 data uji lainnya diklasifikasikan secara benar. Oleh karena itu, tingkat akurasi yang diperoleh adalah 95,56%.
Berdasarkan informasi yang ditampilkan pada Confusion matrix, kesalahan disebabkan oleh 2 data dengan kelas Iris-virginica yang diklasifikasikan sebagai Iris-versicolor oleh IBk. Selain akurasi, terdapat pula beberapa ukuran validasi lainnya seperti Kappa statistics, RMSE, RAE, dan RRSE.



Referensi :
      A. Sigit, A.S. Yuita. 2018. Implementasi Data Mining Menggunakan Weka. UB Press
      https://abdiansah.wordpress.com/2014/11/30/mengenal-weka/

Selasa, 09 Januari 2018

Pengolahan Citra Digital menggunakan OCTAVE

Pada kesempatan ini saya mencoba untuk menjelaskan cara melakukan pengolahan citra digital mengguanakan GNU Octave. sebelumnya saya akan membahas terlebih dahulu apa itu software GNU Octave.

GNU OCtave atau yang biasa orang menyebutnya Octave adalah aplikasi free and open source yang ditujukan untuk komputasi numerik linear maupun non linear. Octave sangat populer sebagai aplikasi alternatif dari MATLAB. Octave memiliki pustaka untuk melakukan manipulasi dan visualisasi data yang cukup lengkap. GNU Octave dikembangkan oleh GNU di bawah lisensi GNU General Public License.

Octave tersedia bagi pengguna Linux, BSD, OS X, dan Windows. Untuk mengunduh GNU Octave silahkan mengunjungi halaman Download GNU Octave.

Pengolahan Citra Digital


Pengolahan citra digital adalah manipulasi dan interprestasi digital dari citra dengan bantuan komputer. 
Pengolahan citra bertujuan untuk:


  • memperbaiki kualitas gambar, dilihat dari aspek radiometric dan aspek geometric. Aspek radiometric terdiri dari peningkatan kontras, restorasi citra, transformasi warna sedangkan aspek geometric terdiri dari rotasi, skala, translasi, trnsformasi geometric).
  • melakukan proses penarikan informasi atau deskripsi obyek atau pengenalan obyek yang terkandung pada citra.
  • melakukan pemilihan citra ciri (feature images) yang optimal untuk tujuan analisis.
  • melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data.

1. Menampilkan Histogram Image Citra RGB

Citra tersebut tersusun oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan kanal biru.
Masing-masing kanal warna memiliki nilai intensitas piksel dengan kedalaman bit sebesar 8-bit yang artinya memiliki variasi warna sebanyak 2^8 derajat warna (0 s.d 255).

Pada kanal merah, warna merah sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Pada kanal hijau, warna hijau sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Begitu juga pada kanal biru, warna biru sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.

Perintah yang digunakan merepresentasikan citra RGB beserta masing-masing kanal warna nya yaitu:

%Membaca Image Citra
L = imread('C:\Octave\File Image\strawbery.jpg');
imshow(L);
%Membuat Image Citra RGB
R = L(:,:,1);
G = L(:,:,2);
B = L(:,:,3);
% RGB Channel
Red = cat(3,R,G*0,B*0);
Green = cat(3,R*0,G,B*0);
Blue = cat(3,R*0,G*0,B);
[rows,cols] = size(R);
%Menampilkan Histogram Image Citra RGB
figure(1); 
subplot(2,2,1);imshow(L);title('Citra Asli');
subplot(2,2,2);imhist(L);title('Histogram Citra Asli');
subplot(2,2,3);imshow(Red);title('Citra Red');
subplot(2,2,4);imhist(Red);title('Histogram Red (R)');
figure(2); 
subplot(2,2,1);imshow(Green);title('Citra Green');
subplot(2,2,2);imhist(Green);title('Histogram Green (G)');
subplot(2,2,3);imshow(Blue);title('Citra Blue');
subplot(2,2,4);imhist(Blue);title('Histogram Blue (B)');


[Gambar 1] Histogram Citra asli & Histogram Citra Kanal Merah


[Gambar 2] Histogram Citra Kanal Hijau dan Citra Kanal Biru


2. Menampilkan Histogram Image Citra Kontras dan Image Citra Hitam Putih

Kontras menyatakan sebaran terang (lightness) dan gelap (darkness) di dalam sebuah gambar. Citra dapat dikelompokkan ke dalam tiga kategori kontras: citra kontras-rendah  (low contrast), citra kontras bagus (good contrast atau  normal contrast), dan citra kontras-tinggi (high contrast). Ketiga kategori ini umumnya dibedakan secara intuitif.
Perintah yang digunakan merepresentasikan citra kontras dan citra hitam putih adalah sebagai berikut :

%Membaca Image Citra
L = imread('C:\Octave\File Image\strawbery.jpg');
imshow(L);
% Membuat Image Citra Menjadi Hitam Putih
Grayscale = rgb2gray(L);
K = im2bw(Grayscale,0.5);
% Membuat Image Citra Menjadi Kontras
Kontras = 3.3 * L;
% Menampilkan Histogram Image Citra Hitam Putih
figure(1);
subplot(2,2,1); imshow(L); title('Citra Asli');
subplot(2,2,2); imhist(L); title('Histogram Citra Asli');
subplot(2,2,3); imshow(K); title('Citra Hitam Putih');
subplot(2,2,4); imhist(K); title('Histogram Hitam Putih');
figure(2);
subplot(2,2,1); imshow(Kontras); title('Citra Kontras');
subplot(2,2,2); imhist(Kontras); title('Histogram Citra Kontras');



[Gambar 3] Histogram Image Citra Hitam Putih


[Gambar 4] Histogram Image Kontras


3. Menampilkan Histogram Image Citra Menjadi Grayscale

Citra grayscale merupakan citra yang nilai intensitas pikselnya didasarkan pada derajat keabuan.
Pada citra grayscale 8-bit, derajat warna hitam sampai dengan putih dibagi ke dalam 256 derajat keabuan di mana warna putih sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.
Citra RGB dapat dikonversi menjadi citra grayscale.
Persamaan yang umumnya digunakan untuk mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah
0.2989*R+0.5870*G+0.1140*B dan dibulatkan menjadi : gray = 0.3*R+0.5*G+0.2*B;
sehingga proses konversi menghasilkan citra grayscale yang hanya memiliki satu kanal warna.
Perintah yang digunakan dalam proses konversi citra RGB menjadi citra grayscale yaitu:

%Membaca Image Citra
L = imread('C:\Octave\File Image\strawbery.jpg');
% Membuat Image Citra Menjadi Grayscale
R = L(:,:,1);
G = L(:,:,2);
B = L(:,:,3);
gray = 0.3*R+0.5*G+0.2*B;
% Membuat Image Citra Menjadi Cerah
Cerah = L + 80;
% Membuat Image Citra Menjadi Negative
Negative = 255 - L;
% Menampilkan Histogram Image Citra Grayscale, Kecerahan dan Negative
figure(1);
subplot(2,2,1); imshow(L); title('Citra Asli');
subplot(2,2,2); imhist(L); title('Histogram Citra Asli');
subplot(2,2,3); imshow(gray); title('Grayscale');
subplot(2,2,4); imhist(gray); title('Histogram Grayscale');
figure(2);
subplot(2,2,1); imshow(Cerah);title('Citra Image Kecerahan +80');
subplot(2,2,2); imhist(Cerah);title('Histogram Kecerahan +80');
subplot(2,2,3); imshow(Negative); title('Negative');
subplot(2,2,4); imhist(Negative); title('Histogram Negative');

[Gambar 5] Histogram Grayscale


[Gambar 6] Histogram Kecerahan +80 & Image Negative


4. Menampilkan Histogram Dari Image Citra Noise


Untuk bisa menambahkan gangguan (noise) pada citra digital kita bisa menggunakan 

fungsi :

a = imnoise(L,type)

a = imnoise(L,type,parameters)

"L" merupakan matriks penyusun citra, "type" merupakan jenis metode penambahan gangguan yang kita gunakan, sedangkan "parameters" merupakan parameter – parameter yang dipakai. 

Untuk "type" yang bisa dipakai adalah :

  • ’gaussian’ : Gangguan Gaussian putih dengan mean dan variance yang tetap.
  • ’localvar’ : Gangguan Zero-mean Gaussian putih dengan variance intensitydependent.
  • ’poisson’ : Gangguan poison
  • ’salt & pepper’ : Gangguan pixel on dan off.
  • ’speckle’ : Gangguan Multiplicative.
Perintah yang digunakan dalam proses menampilkan histogram image citra noise yaitu:


%Membaca Image Citra
L = imread('C:\Octave\File Image\strawbery.jpg');
% Menampilkan Citra Noise Gausian, Poisson dan salt & pepper
a = imnoise(L, 'gaussian', 0.03);
b = imnoise(L, 'poisson', 0.03);
c = imnoise(L, 'salt & pepper', 0.03);
% Menampilkan Histogram Citra Noise Gaussian, Poison dan salt & Pepper
figure(1);
subplot(2,2,1); imshow(L); title('Citra Asli');
subplot(2,2,2); imhist(L); title('Histogram Citra Asli');
subplot(2,2,3); imshow(a); title('Image Noise Gaussian');
subplot(2,2,4); imhist(a); title('Histogram Image Noise Gaussian');
figure(2);
subplot(2,2,1); imshow(b); title('Image Noise Poison');
subplot(2,2,2); imhist(b); title('Histogram Noise Poison');
subplot(2,2,3); imshow(c); title('Image Noise salt & pepper');
subplot(2,2,4); imhist(c); title('Histogram Noise salt & pepper')

[Gambar 7] Histogram Image Noise Gaussian


[Gambar 8] Histogram Image Noise Poison dan Salt & pepper



Jadi kesimpulannya Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik. Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain.
Dilihat dari Identifikasi objek maka engolahan citra digital mampu mengidentifikasi jenis atau banyak nya objek - objek pada suatu citra sedangkan dilihat dari Teknlogi pengamanan,Suatu sistem mengalami kemajuan pesat akibat dari pesatnya perkembangan pengolahan citra pada bidang biometrika.