Senin, 23 September 2019

Penerapan KFold di Matlab


Penggunaan KFold validation telah banyak digunakan untuk menguji proses pelatihan. Adapun secara umum ilustrasi KFold akan membagi 80% sebagai data latih dan 20% sebagai data uji, misalkan saja kita punya 12 data dengan jumlah KFOLD sebanyak 4 irisan, maka gunakan perintah berikut di Matlab




n = 1:12;
c = cvpartition(n,'KFold',4);
display(c)


c = 

K-fold cross validation partition
   NumObservations: 12
       NumTestSets: 4
         TrainSize: 9  9  9  9
          TestSize: 3  3  3  3

Artinya ada 4 fold yang masing2 terdiri dari 9 data latih dan 3 data uji. Maka untuk mengetahui index/no mana saja yang termasuk data latih dan uji, gunakan perintah berikut:

for i = 1:c.NumTestSets
    index_training = c.training(i);
    index_testing = c.test(i);
    disp(['Kfold ke ' num2str(i)])
    disp('index latih')
    disp(n(index_training))
    disp('index uji')
    disp(n(index_testing))
 
end


Kfold ke 1
index latih
     1     2     3     5     6     7     9    10    11

index uji
     4     8    12

Kfold ke 2
index latih
     2     3     4     6     7     8    10    11    12

index uji
     1     5     9

Kfold ke 3
index latih
     1     3     4     5     7     8     9    11    12

index uji
     2     6    10

Kfold ke 4
index latih
     1     2     4     5     6     8     9    10    12

index uji
     3     7    11


Kamu bisa lihat pada bahwa tiap KFold antara index data latih dan uji masing-masing tidak mempunyai index yang sama, pemilihan jumlah KFOLD sangat penting. Bila kita ubah KFOld 3 maka menjadi berikut hasilnya.

n = 1:12;
c = cvpartition(n,'KFold',3);

for i = 1:c.NumTestSets
    index_training = c.training(i);
    index_testing = c.test(i);
    disp(['Kfold ke ' num2str(i)])
    disp('index latih')
    disp(n(index_training))
    disp('index uji')
    disp(n(index_testing))
end

Kfold ke 1
index latih
     1     2     4     5     7     8    10    11

index uji
     3     6     9    12

Kfold ke 2
index latih
     2     3     5     6     8     9    11    12

index uji
     1     4     7    10

Kfold ke 3
index latih
     1     3     4     6     7     9    10    12

index uji
     2     5     8    11










Tidak ada komentar: