2017-10-22 7 views
2

캐럿 패키지의 5 배 교차 유효성 검사 알고리즘을 이해하려고했지만 각 폴드에 대해 열차 세트 및 테스트 세트를 얻는 방법을 찾을 수 없었으며 비슷한 제안 된 질문에서 찾으십시오. 나는 임의 숲 방법으로 교차 유효성 검사를 수행하려는 경우, 다음 작업을 수행 할 상상 : 캐럿 교차 검증에서 각 폴드에 대한 테스트 세트 및 트레인 세트

set.seed(12) 
train_control <- trainControl(method="cv", number=5,savePredictions = TRUE) 
rfmodel <- train(Species~., data=iris, trControl=train_control, method="rf") 
first_holdout <- subset(rfmodel$pred, Resample == "Fold1") 
str(first_holdout) 
'data.frame': 90 obs. of 5 variables: 
$ pred : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1  
$ obs  : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 
$ rowIndex: int 2 3 9 11 25 29 35 36 41 50 ... 
$ mtry : num 2 2 2 2 2 2 2 2 2 2 ... 
$ Resample: chr "Fold1" "Fold1" "Fold1" "Fold1" ... 

는 Fold1 훈련 세트로 사용하는 이들 90 명 관찰

있습니까? 그렇다면이 폴드에 대한 테스트 세트는 어디에 있습니까?

+0

수동으로 할 필요가 없습니다. 'str (rfModel)'을 검사하십시오. 여러분은'index'와'indexOut'에 그것들을 발견 할 것입니다. –

답변

0
str(rfmodel) 

수행 한 모델은 아래 양식으로되어 있습니다. 아래 controlindexindexOut에 기차 및 각 보류 아웃에 들어간 샘플의 색인을 저장합니다. 기차의 인덱스에

names(rfmodel) 
# [1] "method"  "modelInfo" "modelType" "results"  "pred"   
# [6] "bestTune"  "call"   "dots"   "metric"  "control"  
# [11] "finalModel" "preProcess" "trainingData" "resample"  "resampledCM" 
# [16] "perfNames" "maximize"  "yLimits"  "times"  "levels"  
# [21] "terms"  "coefnames" "xlevels" 

경로 및 아웃 상태에서 샘플

# Indexes of Hold Out Sets 
rfmodel$control$indexOut 

# Indexes of Train Sets for above hold outs 
rfmodel$control$index 
+0

답안을 보내 주셔서 감사합니다. 따라서 rfmodel $ resample의 정확도 목록은 보류 아웃 샘플에서 수행 된 각 폴드의 예측 정확도입니까? –

+0

예. 그건 사실입니다. 그것들은 예측을 포기한 결과입니다. –

+0

모델을 저장하는 방법과 생성 된 모델의 정보 또는 예측 된 정보에 액세스하는 방법을 확인하기 위해 수행하는 모델에서 항상'str()'및'names()'를 수행하십시오. 그래서 당신이 배우는 데 도움이되는이 기능들을 사용하십시오. –