Friday, May 17, 2019

Buku Belajar Pemrogaman Matlab - Membuat KFold pada dataset


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di  http://softscients.com/2020/03/29/buku-belajar-pemrogaman-matlab-membuat-kfold-pada-dataset/




Kfold Validation banyak digunakan untuk menguji kestabilan sebuah algoritma terhadap beberapa kasus yang bersifat klasifikasi yaitu dengan melipat data sebanyak K dan mengulangi (men-iterasi) experimennya sebanyak K juga. Seperti ilustrasi berikut


Biasanya proporsi yang digunakan 80% training  dan 20% testing. Misalkan kita mempunyai dataset yaitu x dengan jumlah data sebesar 10, maka seperti berikut gambarannya.


function [test_data,train_data] = KFoldCrossValidation(data,fold_size)
 
    % code which is used to shuffle all the rows of the data set
    sort_array = randperm(size(data,1));
    for i = 1: size(data,1)
        randomized_data(i,:) = data(sort_array(i),:);
    end
    % code to divide the dataset int k sub data sets.
    no_of_rows = size(data,1);
 
    test_data{fold_size,1} = [];
    train_data{fold_size,1} = [];
 
  block = floor(no_of_rows/fold_size);
 
  test_data{1} = randomized_data(1:block,:);
  train_data{1} = randomized_data(block+1:end,:);
 
  for f = 2:fold_size
      test_data{f} = randomized_data((f-1)*block+1:(f)*block,:);
      train_data{f} = [randomized_data(1:(f-1)*block,:); randomized_data(f*block+1:end, :)];
  end
end



Penggunaan


close all;clear all;clc;
% Reading data from text files;
data = csvread('hand_26.txt');
data =data';
No_of_folds = 5;
[test_data,train_data] = KFoldCrossValidation(data,No_of_folds);
 
KNN = zeros(No_of_folds,1);
for i =1 : No_of_folds
    knn_result = Knn(train_data{i},test_data{i},3);
    KNN(i) = Accuracy(knn_result);
 
end
Iteration = 1 : No_of_folds;
Iteration = Iteration';
Accuracy_Iteration_Level = table(Iteration , KNN)


Hasilnya


    Iteration      KNN  
    _________    _______

        1        0.74752
        2        0.74257
        3        0.77723
        4        0.74257
        5        0.71782


Silahkan untuk kunjungi link berikut
Ref:
https://github.com/sBavisetti/K-fold-Cross-Validation




No comments:

Post a Comment