0
두 개의 데이터 세트 X와 y가 있습니다. 훈련 세트와 테스트 세트로 나누고 싶습니다. 그리고 나는 데이터의 순서를 유지하고 싶다. (랜덤 셔플 없음). 예를 들어, 다음과 같은 코드를 가져 가라. X는 10 행 (y는 동일)입니다. 내가 원하는 결과는 X_train이 전체 행의 2/3을 차지하고 x_test가 전체 행의 1/3을 차지한다는 것입니다. 그리고 가장 중요한 것은 X_train은 0에서 6까지의 행이 아니라 가능한 한 0에서 9까지의 행을 선택해야합니다. X_test에도 동일하게 적용됩니다.파이썬 3, 균등 분포의 분할 데이터 세트, 셔플없이
import numpy as np
X = np.arange(50).reshape(10,5)
y = np.arange(10)
test_size = 0.33
n_total = X.shape[0] # total number of rows
n_train = int(test_size*n_total)
# The following is bad example, since X_train picks rows from 0 to 6.
X_train, X_test = X[:n_train], X_test[n_train:]
# Wanted result: X_train and X_test are distributed across the total rows, as evenly as possible.
X_train = X[0], X[2], X[3], X[4], X[6], X[7], X[8]
X_test = X[1], X[5], X[9]
도와 주실 수 있습니까? 감사합니다
답장을 보내 주셔서 감사합니다. 그러나 그것은 내 문제를 완전히 해결하지 못합니다. 테스트 데이터 세트가 고르게 분산되기를 바랍니다. 당신의 제안으로 저는'[6, 8, 7, 0, 4, 9, 1, 5, 2, 3]'을 얻을 수 있습니다. 그런 다음 마지막 세 요소를 선택하면 테스트 세트 '[5, 2, 3]'이됩니다. 이 세 가지 값은 모두 0과 5 사이이며 균등하게 분배되지 않습니다. 하나의 이상적인 결과는'[1, 5, 9]'입니다. – aura