80/20 훈련 및 테스트 세트에서 데이터 세트를 분할하려고합니다. 나는 각 레벨이 똑같이 샘플링되지 않았지만, 4 레벨을 가진 요인 인 위치별로 분리하려고합니다. 1892 개 샘플의 아웃 -비율이 다른 랜덤 층화 샘플링
있는 Location1 : 172
Location2를 : 615
LOCATION3 : 603
LOCATION4 : 나는 위에서 언급 한 바와 같이, 전체 데이터 세트 20 분의 80을 분할하려고하지만, 또한 내가하고 502
각 위치를 80/20으로 분할하여 교육 및 테스트 세트의 각 위치에서 균등 한 비율을 얻으십시오. splitstackshape
패키지의 stratified
기능을 사용하여 하나의 게시물을 보았지만 내 요인을 분리하고 싶지 않습니다.
x <- c(1, 2, 3, 4, 1, 3, 7, 4, 5, 7, 8, 9, 4, 6, 7, 9, 7, 1, 5, 6)
xx <- c("A", "A", "B", "B", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C", "C", "D", "D", "D", "D", "D")
df <- data.frame(x, xx)
validIndex <- stratified(df, "xx", size=16/nrow(df))
valid <- df[-validIndex,]
train <- df[validIndex,]
A
, B
, C
, 012,345,466 - 여기
어쩌면 내가 부족 뭔가를하지만, 초기 데이터 세트가 무작위로 20 분의 80을 분할하는 경우 다음 각 위치가 20 분의 80을 분할 할 것으로 기대합니다. 단지 당신이 무작위로 그렇게하기 때문입니다. – AntoniosK
'caret' 패키지에는 데이터 분할을위한 몇 가지 기능이 있습니다. http://topepo.github.io/caret/splitting.html –
@AntoniosK 데이터 세트의 비율이 균일하지 않더라도? 나는 비율을 고려하지 않고 무작위로 80 %를 취할 것이라고 생각했습니다. 어쩌면 내가 잘못 생각한 것 같습니다. – Danib90