R에서 createdatapartition() 함수를 사용하는 방법


R에서 캐럿 패키지의 createDataPartition() 함수를 사용하여 데이터 프레임을 모델 구축을 위한 훈련 및 테스트 세트로 분할할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

createDataPartition(y, times = 1, p = 0.5, list = TRUE, …)

금:

  • y : 결과 벡터
  • times : 생성할 파티션 수
  • p : 훈련 세트에 사용할 데이터의 비율
  • list : 결과를 목록에 저장할지 여부

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예: R에서 createDataPartition() 사용

학생들이 공부한 시간 과 해당 최종 시험 점수 에 대한 정보가 포함된 1,000개의 행이 있는 R 데이터 프레임이 있다고 가정합니다.

 #make this example reproducible
set. seeds (0)

#create data frame
df <- data. frame (hours=runif(1000, min=0, max=10),
                 score=runif(1000, min=40, max=100))

#view head of data frame
head(df)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
6 2.016819 47.10139

최종 시험 성적을 예측하기 위해 공부한 시간을 사용하는 간단한 선형 회귀 모델을 적합화한다고 가정해 보겠습니다.

데이터 프레임에 있는 행의 80%에 대해 모델을 훈련하고 나머지 20%의 행에 대해 테스트한다고 가정해 보겠습니다.

다음 코드는 캐럿 패키지의 createDataPartition() 함수를 사용하여 데이터 프레임을 훈련 세트와 테스트 세트로 나누는 방법을 보여줍니다.

 library (caret)

#partition data frame into training and testing sets
train_indices <- createDataPartition(df$score, times= 1 , p= .8 , list= FALSE )

#create training set
df_train <- df[train_indices, ]

#create testing set
df_test <- df[-train_indices, ]

#view number of rows in each set
nrow(df_train)

[1] 800

nrow(df_test)

[1] 200

훈련 데이터 세트에는 원래 데이터 세트의 80%인 800개의 행이 포함되어 있음을 알 수 있습니다.

마찬가지로 테스트 데이터 세트에는 원래 데이터 세트의 20%인 200개의 행이 포함되어 있음을 알 수 있습니다.

각 세트의 첫 번째 라인을 시각화할 수도 있습니다.

 #view head of training set
head(df_train)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
7 8.983897 42.34600

#view head of testing set
head(df_test)

      hours score
6 2.016819 47.10139
12 2.059746 96.67170
18 7.176185 92.61150
23 2.121425 89.17611
24 6.516738 50.47970
25 1.255551 90.58483

그런 다음 훈련 세트를 사용하여 회귀 모델을 훈련하고 테스트 세트를 사용하여 성능을 평가할 수 있습니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 기능을 사용하는 방법을 설명합니다.

R에서 K-Fold 교차 검증을 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 로지스틱 회귀를 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다