SUPPORT VECTOR MACHINE (SVM) BERBASIS ALGORITMA GENETIK UNTUK LINEAR KERNEL
TIM PENGUSUL :
1. Nendra Mursetya Somasih Dwipa 2. Bintang Wicaksono
YOGYAKARTA
DESEMBER 2019
Program Matlab SVM GA Linear
function SVM_GA_Linier=SVM_lin(data,l)
% data = data perilaku belanja online
% l = banyak iterasi yang dilakukan untuk menghasilkan generasi baru
% q = banyak individu untuk inisialisasi
% t = banyak gen dalam 1 kromosom (bilangan asli genap)
%=================================================
l=2;
data=xlsread('data_perilaku_belanja_online','Sheet1','B2:X303');
TABEL_JAWAB=zeros(l,4);
[banyak_data,banyak_atribut]=size(data);
t=10;
% INISIALISASI KROMOSOM POPULASI sejumlah n=10) fprintf('INISIALISASI:\n')
M=rand(2,t);
for p=1:2 for h=1:t if M(p,h)<0.5 M(p,h)=0;
else M(p,h)=1;
end end end
KROMOSOM_POPULASI=M;
% MENGHITUNG NILAI C DARI KODE KROMOSOM rb=2^(-t); %batas bawah
ra=1; %batas atas T=zeros(2,1);
for p=1:2 for h=1:t
Ta(p)=rb+((ra-rb)*(M(p,h)*(2^(-h))));
T(p)=T(p)+Ta(p);
end end
%=================================================
Nilai_Parameter_C=T;
% MENGHITUNG NILAI C DARI KODE KROMOSOM rb=2^(-t); %batas bawah
ra=1; %batas atas T=zeros(2,1);
for p=1:2 for h=1:t
Ta(p)=rb+((ra-rb)*(M(p,h)*(2^(-h))));
T(p)=T(p)+Ta(p);
end end
Nilai_Parameter_C=T;
%=================================================
% MENGHITUNG AKURASI TERBAIK DARI POPULASI SEBANYAK n INDIVIDU akurasi=101;
for v=1:2;
svmstruct=svmtrain(data(1:100,1:22),data(1:100,23),'Kernel_Function', 'linear');
group=svmclassify(svmstruct,data(101:banyak_data,1:22));
hasil_prediksi=confusionmat(data(101:banyak_data,23),group);
akurasi_prediksi=50*((hasil_prediksi(1,1)/sum(hasil_prediksi(:,1)))+(hasil_
prediksi(2,2)/sum(hasil_prediksi(:,2))));
% MENGHITUNG AKURASI matriks pos pos=zeros(banyak_data,1);
for z=1:banyak_data-100
if data(101:banyak_data,23)==group(z) pos(z)=1;
else pos(z)=0;
end end
akurasi_m=100*(sum(pos)/banyak_data);
% hasil_prediksi=confusionmat(A(:,15),group);
% hasil_prediksi
% T(v,1);
% akurasi_m=100-((hasil_prediksi(1,2)/hasil_prediksi(1,1)))*100 if akurasi_m<akurasi
akurasi=akurasi_m;
Parameter=T(v,1);
end
Akurasi_awal_sblm_GA_1=akurasi;
end
Akurasi_awal_sblm_GA_2=akurasi TABEL_JAWAB(1,1)=1;
TABEL_JAWAB(1,2)=akurasi_prediksi;
TABEL_JAWAB(1,4)=Parameter;
%=================================================
fprintf('IMPROVISASI ALGORITMA GENETIKA:\n')
% Menghitung akurasi SVM setiap Kromosom K P=M(1:2,:);
for L=2:l
Kromosom_INDUK=P;
% Lalu dipilih 2 Kromosom dengan akurasi terbaik sebagai PARENT
%=================================================
% CROSSOVER Kode Kromosom PARENT S=P;
r1=rand;
if r1<0.5
S(1,1:0.5*t)=P(2,1:0.5*t);
S(2,1:0.5*t)=P(1,1:0.5*t);
else
S(1,(0.5*t)+1:t)=P(2,(0.5*t)+1:t);
S(2,(0.5*t)+1:t)=P(1,(0.5*t)+1:t);
end
Kromosom_INDUK_diCROSSOVER=S;
% MUTASI Kode Kromosom PARENT R=S;
for h=1:t-1 r2=rand;
if r2<0.5
R(:,h)=S(:,h+1);
R(:,h+1)=S(:,h);
end end
%R(:,4)=1;
Kromosom_INDUK_diMUTASI=R;
%=================================================
% MENGHITUNG NILAI C DARI KODE KROMOSOM PARENT SETELAH GA rb=2^(-t); %batas bawah
ra=1; %batas atas T=zeros(2,1);
for p=1:2 for h=1:t
Ta(p)=rb+((ra-rb)*(R(p,h)*(2^(-h))));
T(p)=T(p)+Ta(p);
end end
Nilai_Parameter_C_setelah_GA=T;
%=================================================
akurasi_GA=akurasi;
Parameter_GA=TABEL_JAWAB(L-1,4);
for v=1:2
svmstruct=svmtrain(data(1:100,1:22),data(1:100,23),'Kernel_Function', 'linear');
group=svmclassify(svmstruct,data(101:banyak_data,1:22));
hasil_prediksi=confusionmat(data(101:banyak_data,23),group);
akurasi_prediksi=50*((hasil_prediksi(1,1)/sum(hasil_prediksi(:,1)))+(hasil_
prediksi(2,2)/sum(hasil_prediksi(:,2))));
% MENGHITUNG AKURASI matriks pos pos=zeros(banyak_data,1);
for z=1:banyak_data-100
if data(101:banyak_data,15)==group(z) pos(z)=1;
else pos(z)=0;
end end
akurasi_m=(sum(pos)/banyak_data)*100;
% hasil_prediksi=confusionmat(A(:,15),group)
% T(v,1);
% akurasi_m=100-((hasil_prediksi(1,2)/hasil_prediksi(1,1)))*100;
if akurasi_prediksi>=akurasi_GA akurasi_GA=akurasi_prediksi;
Parameter_GA=T(v,1);
%else
% akurasi_GA end
Parameter_GA akurasi_GA end
Akurasi_awal_stlh_GA_2=akurasi_m;
TABEL_JAWAB(L,1)=L;
TABEL_JAWAB(L,2)=akurasi_GA;
TABEL_JAWAB(L,3)=TABEL_JAWAB(L,2)-TABEL_JAWAB(L-1,2);
TABEL_JAWAB(L,4)=Parameter_GA;
end
fprintf(' No Akurasi Selisih C \n') TABEL_JAWAB
Akurasi_Sebelum_GA=min(TABEL_JAWAB(1:l,2)) Akurasi_Setelah_GA=max(TABEL_JAWAB(:,2))
%==================================================
Manual Penggunaan Program
MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan pengelolahan sinyal, aljabar linear, estimasi parameter, dan klasifikasi parameter.
Pemrograman komputer dengan matlab yang diajukan ini tidak membutuhkan langkah yang kompleks. Pengguna dapat menjalankan program dengan urutan langkah sebagai berikut.
1. Siapkan komputer yang telah diinstalasi software Matlab.
2. Bukalah program Matlab pada komputer anda.
3. Setelah program matlab dijalankan maka akan muncul 4 tampilan yaitu jendela utama, jendela perintah (command window), jendela ruang kerja (workspace), jendela history (command history).
4. Pada jendela utama pilihlah open new m file
5. Setelah jendela m.file terbuka, copy lah syntax matlab yang ada di atas pada jendela m.file
6. Jalankan program dengan klik tombol run.
7. Output matlab dapat dilihat pada command window.
8. Apabila anda ingin bekerja dengan data yang lain, maka gantilah nama file data dengan nama file baru tersebut (mengganti nama file pada syntax yang diberi kotak merah di atas).
9. Output hasil klasifikasi pada data perilaku belanja
online mahasiswa dapat dilihat pada halaman setelah ini.
Hasil Output Matlab INISIALISASI:
Akurasi_awal_sblm_GA_2 = 0
IMPROVISASI ALGORITMA GENETIKA:
Parameter_GA = 0.4342
akurasi_GA = 66.0436
Parameter_GA = 0.8664
akurasi_GA = 66.0436
No Akurasi Selisih C TABEL_JAWAB =
1.0000 66.0436 0 0.6781 2.0000 66.0436 0 0.8664
Akurasi_Sebelum_GA = 66.0436
Akurasi_Setelah_GA = 66.0436
INISIALISASI:
Akurasi_awal_sblm_GA_2 = 0
IMPROVISASI ALGORITMA GENETIKA:
Parameter_GA = 0.0156
akurasi_GA = 66.0436
Parameter_GA = 0.7190
akurasi_GA = 66.0436
No Akurasi Selisih C TABEL_JAWAB =
1.0000 66.0436 0 0.6117 2.0000 66.0436 0 0.7190
Akurasi_Sebelum_GA = 66.0436
Akurasi_Setelah_GA =
66.0436
a.n. MENTERI HUKUM DAN HAK ASASI MANUSIA DIREKTUR JENDERAL KEKAYAAN INTELEKTUAL
Dr. Freddy Harris, S.H., LL.M., ACCS.
NIP. 196611181994031001 REPUBLIK INDONESIA
KEMENTERIAN HUKUM DAN HAK ASASI MANUSIA
SURAT PENCATATAN
CIPTAAN
Dalam rangka pelindungan ciptaan di bidang ilmu pengetahuan, seni dan sastra berdasarkan Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta, dengan ini menerangkan:
Nomor dan tanggal permohonan : EC00201985934, 4 Desember 2019 Pencipta
Nama : Nendra Mursetya Somasih Dwipa dan Bintang Wicaksono Alamat : Perum Denggung Asri No. 5 RT 001/ RW 035 Tridadi, Sleman, DI
YOGYAKARTA, 55511
Kewarganegaraan : Indonesia
Pemegang Hak Cipta
Nama : Nendra Mursetya Somasih Dwipa dan Bintang Wicaksono Alamat : Perum Denggung Asri No. 5 RT 001/ RW 035 Tridadi , Sleman, DI
YOGYAKARTA, 55511
Kewarganegaraan : Indonesia
Jenis Ciptaan : Program Komputer
Judul Ciptaan : Program Matlab Support Vector Machine Dengan Algoritma Genetik Untuk Linear Kernel
Tanggal dan tempat diumumkan untuk pertama kali di wilayah Indonesia atau di luar wilayah Indonesia
: 4 Desember 2019, di Yogyakarta
Jangka waktu pelindungan : Berlaku selama 50 (lima puluh) tahun sejak Ciptaan tersebut pertama kali dilakukan Pengumuman.
Nomor pencatatan : 000168138
adalah benar berdasarkan keterangan yang diberikan oleh Pemohon.
Surat Pencatatan Hak Cipta atau produk Hak terkait ini sesuai dengan Pasal 72 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta.
Powered by TCPDF (www.tcpdf.org)