HOWTO · R
R에서 train() 함수 구현
이 튜토리얼은 R에서 train 함수를 구현하고 사용하는 방법을 보여줍니다.
train() 방법(캐럿 라이브러리에서)은 분류 및 회귀 훈련에 사용됩니다. 또한 복잡성 매개 변수를 선택하여 모델을 조정하는 데 사용됩니다.
이 튜토리얼은 R의 캐럿 패키지에서 train() 메서드를 사용하는 방법을 보여줍니다.
R에서 train() 함수 구현
train() 메서드를 사용하려면 먼저 캐럿 및 기타 필수 패키지를 설치해야 합니다. 이 경우에는 캐럿 및 mlbench 패키지를 사용합니다.
install.packages("caret", dependencies = c("Depends", "Suggests"))
install.packages('mlbench')
패키지가 설치된 후 로드하여 사용할 수 있습니다. 우리는 train() 메서드에 내장 데이터 세트 iris를 사용합니다.
# Load Packages
library(caret)
library(mlbench)
# Load IRIS dataset
data(iris)
# Show the first Six lines of the iris data set
head(iris)
위의 코드는 패키지와 데이터 세트를 로드하고 iris 데이터 세트의 처음 6개 라인을 표시합니다.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
다음으로 해야 할 일은 데이터 세트에서 개체를 만드는 것입니다. 이 개체는 나중에 train() 메서드에서 사용됩니다.
# create binary object
iris$binary <- ifelse(iris$Species=="setosa",1,0)
iris$Species <- NULL
그런 다음 trainControl() 메서드를 사용하여 리샘플링 방법을 수정합니다. 이 메서드는 여러 매개변수를 사용합니다. 출력은 train() 메서드에서 사용됩니다.
ctrl <- trainControl(method = "repeatedcv",
number = 4,
savePredictions = TRUE,
verboseIter = T,
returnResamp = "all")
마지막으로 train() 메서드를 사용하여 데이터 모델을 조정할 수 있습니다. 위에서 만든 이진 개체를 사용합니다.
매개변수로 data, method, family 및 trControl이 있습니다.
# the train method
iris_train <- train(binary ~.,
data=iris,
method = "glm",
family="binomial",
trControl = ctrl)
출력:
+ Fold1.Rep1: parameter=none
- Fold1.Rep1: parameter=none
+ Fold2.Rep1: parameter=none
- Fold2.Rep1: parameter=none
+ Fold3.Rep1: parameter=none
- Fold3.Rep1: parameter=none
+ Fold4.Rep1: parameter=none
- Fold4.Rep1: parameter=none
Aggregating results
Fitting final model on full training set
이제 모델이 훈련되었습니다. 폴드 레벨 성능을 볼 수 있습니다.
# fold level performance
iris_train$resample
리샘플링 출력:
RMSE Rsquared MAE parameter Resample
1 3.929660e-06 1.0000000 6.420415e-07 none Fold1.Rep1
2 2.735382e-13 1.0000000 6.115382e-14 none Fold2.Rep1
3 8.221919e-12 1.0000000 1.397945e-12 none Fold3.Rep1
4 9.119130e-04 0.9999968 1.479318e-04 none Fold4.Rep1
모델이 훈련되면 데이터 세트의 다른 옵션을 사용하여 중간 모델을 만들 수 있습니다.
완전한 예제 코드
편의를 위한 전체 예제 코드는 다음과 같습니다.
install.packages("caret", dependencies = c("Depends", "Suggests"))
install.packages('mlbench')
# Load Packages
library(caret)
library(mlbench)
# Load IRIS dataset
data(iris)
# Show the first Six lines of the iris data set
head(iris)
# create binary object
iris$binary <- ifelse(iris$Species=="setosa",1,0)
iris$Species <- NULL
# use trainControl() method to modify the resampling method
ctrl <- trainControl(method = "repeatedcv",
number = 4,
savePredictions = TRUE,
verboseIter = T,
returnResamp = "all")
# the train method
iris_train <- train(binary ~.,
data=iris,
method = "glm",
family="binomial",
trControl = ctrl)
# fold level performance
iris_train$resample