Wednesday, September 12, 2018

Buku Pemrograman Python-Pengacakan 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/28/buku-pemrograman-python-pengacakan-dataset/




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


No comments:

Post a Comment