×

Pengacakan Dataset

Pengacakan Dataset

1,116 Views

Sinopsis

Pengacakan dataset secara random sangat perlu dilakukan agar proses pelatihan pada suatu algoritma machine learning menjadi robust. Karena ada suatu pertanyaan yang diajukan via email seperti berikut

Dear Mulkan Syarif

saya mau bertanya masalah akurasi. apakah loss atau nilai error mempengaruhi akurasi?? kalau secara logika error/ loss kecil akurasi pasti tinggi. namun pada kenyataan pada eksperimen yang dilakukan, kadang ada nilai loss/error besar namun akurasinya tinggi. itu bagaimana ya pak??

Terima kasih
Jawab
seharusnya berbanding terbalik
error kecil
akurasi tinggi

Untuk itu  yang diacak adalah susunan baris saja, seperti berikut kode nya

data sebelum diacak
 [[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]
 [16 17 18]
 [19 20 21]
 [22 23 24]
 [25 26 27]
 [28 29 30]] 

 diacak 

[[ 16.  17.  18.]
 [ 10.  11.  12.]
 [ 19.  20.  21.]
 [  7.   8.   9.]
 [ 13.  14.  15.]
 [ 28.  29.  30.]
 [  4.   5.   6.]
 [ 22.  23.  24.]
 [ 25.  26.  27.]
 [  1.   2.   3.]]

Kebetulan code yang dibuat sedari awal adalan python, berikut code lengkapnya

import numpy as np


def acakdata(data,no_seed=None):
    np.random.seed(seed=no_seed) #atur seed
    #Sort array by nth column in Numpy 
    #https://gist.github.com/stevenvo/e3dad127598842459b68
    s1 = np.zeros((len(data),1)) #membuat dummy
    s2 = np.round(np.random.uniform(1,len(data),len(data)),0)
    s1[:,0] = s2
    data2 = np.hstack((data,s1)) #tambahkan pada baris terakhir
    data2 = data2[data2[:,data2.shape[1]-1].argsort()] #urutkan berdasarkan baris terakhir
    
    return data2[:,0:data2.shape[1]-1]
    
data = np.arange(1,31,1)
data = np.reshape(data,(10,3))

print('\ndata sebelum diacak\n',data,'\n\n diacak \n')
print(acakdata(data,no_seed=None))

Dikarenakan cukup berpengaruh terhadap proses pelatihan

 

You May Have Missed