반응형






주어진 데이터셋을  신경망에서 학습을 시키기 전에 특징(feature)와 레이블(label)을 무작위로 뒤섞을 필요가 있습니다.

정렬된 데이터셋을 그대로 사용하면 학습이 잘 되지 않을 수 있기 때문입니다.


특징과 레이블을 두 개의 넘파이 배열에 따로 저장한 경우 다음처럼 인덱스를 무작위로 뒤섞는 방법을 사용하여 

두개의 배열을 같은 순서로 뒤섞을 수 있습니다. 



import numpy as np


# 0 ~ 9까지 숫자를 두 개의 배열에 같은 순서로 저장합니다.
X = np.arange(0, 10)
Y = np.arange(0, 10)


# 배열의 원소 개수만큼 인덱스 배열을 만든 후 

# 무작위로 뒤섞어 줍니다.
idx = np.arange(X.shape[0])
np.random.shuffle(idx)


# 뒤섞여있는 인덱스 배열을 사용하여 

# X, Y 두 배열을 같은 순서로 섞어줍니다.
X = X[idx]
Y = Y[idx]


print(X)
print(Y)




실행시켜보면 다음처럼 두 배열이 같은 순서로 뒤섞인 것을 볼 수 있습니다. 


[1 5 7 2 6 4 8 9 3 0]

[1 5 7 2 6 4 8 9 3 0]


  

작성 2020. 3. 19

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts