무작위 테스트/훈련 분할 생성하기
다음 몇 개의 연습 문제에서는 ggplot2 패키지의 mpg 데이터를 사용합니다. 이 데이터는 여러 연식의 다양한 자동차 제조사와 모델의 특성을 담고 있습니다. 목표는 고속도로 연비로부터 도심 연비를 예측하는 것입니다.
이 연습에서는 mpg를 훈련 세트 mpg_train(데이터의 75%)과 테스트 세트 mpg_test(데이터의 25%)로 분할합니다. 한 가지 방법은 runif() 함수(docs)를 사용해 0과 1 사이의 균등분포 난수로 이루어진 열을 생성하는 것입니다.
크기가 $N$인 데이터셋 dframe이 있고, $X$가 0과 1 사이일 때 $N$의 대략 \(100 * X\)% 크기의 무작위 부분집합을 만들고 싶다면 다음과 같이 합니다.
- 균등분포 난수 벡터를 생성합니다:
gp = runif(N). dframe[gp < X,]의 크기가 대략 원하는 크기와 비슷합니다.dframe[gp >= X,]는 그 여집합입니다.
이 연습은 강의의 일부입니다
R로 하는 Supervised Learning: 회귀
연습 안내
- 함수
nrow(docs)를 사용해 데이터 프레임mpg의 행 개수를 구하세요. 이 값을 변수N에 할당하고 출력하세요. - N의 75%가 대략 몇 행인지 계산하세요. 변수
target에 할당하고 출력하세요. runif()를 사용해 길이가N인 균등분포 난수 벡터gp를 생성하세요.gp를 사용해mpg를mpg_train과mpg_test로 분할하세요(mpg_train에는 데이터의 약 75%가 들어가야 합니다).nrow()로mpg_train과mpg_test의 크기를 확인하세요. 대략 원하는 비율이 맞나요?
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# mpg is available
summary(mpg)
dim(mpg)
# Use nrow to get the number of rows in mpg (N) and print it
(N <- ___)
# Calculate how many rows 75% of N should be and print it
# Hint: use round() to get an integer
(target <- ___)
# Create the vector of N uniform random variables: gp
gp <- ___
# Use gp to create the training set: mpg_train (75% of data) and mpg_test (25% of data)
mpg_train <- ___
mpg_test <- ___
# Use nrow() to examine mpg_train and mpg_test
___
___