Rabu, 12 September 2018

Pengacakan Dataset



Penulis pernah ditugaskan untuk membuat dataset training agar diacak  karena menjumpai kasus berikut

Dear mr. Mulkan Syarif

Sir, 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 sir??

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


Tidak ada komentar: