60/40 분할 시도하기
동영상에서 보셨듯이, 이번 장에서는 Sonar 데이터셋을 사용해 학습용 60%, 테스트용 40%로 나눠서 작업할 거예요. 연습 삼아 train/test 분할을 한 번 더 해 보면서 확실히 익혀 볼게요. 데이터셋의 행 인덱스를 무작위로 섞어 train/test 분할에 사용할 때는 sample() 함수를 쓸 수 있어요. 예를 들어:
n_obs <- nrow(my_data)
permuted_rows <- sample(n_obs)
그다음, 이 행 인덱스를 이용해 데이터셋의 행을 무작위로 재정렬할 수 있어요. 예를 들어:
my_data <- my_data[permuted_rows, ]
데이터셋이 무작위로 정렬되면, 앞쪽 60%를 학습용 세트로, 마지막 40%를 테스트 세트로 나누면 됩니다.
이 연습은 강의의 일부입니다
R의 caret로 배우는 Machine Learning
연습 안내
Sonar의 관측치(행) 수를 구해n_obs에 할당하세요.Sonar의 행 인덱스를 섞어 결과를permuted_rows에 저장하세요.permuted_rows를 사용해Sonar의 행을 무작위로 재정렬하고Sonar_shuffled로 저장하세요.- 60/40 분할에 사용할 적절한 분할 행 번호를 찾아
split에 저장하세요. Sonar_shuffled의 처음 60%를 학습용 세트로 저장하세요.Sonar_shuffled의 마지막 40%를 테스트 세트로 저장하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get the number of observations
# Shuffle row indices: permuted_rows
# Randomly order data: Sonar
# Identify row to split on: split
split <- round(n_obs * ___)
# Create train
# Create test