2015-01-14 14 views
2

캐럿 패키지를 사용하여 임의의 포리스트를 병렬로 실행하고 Fully reproducible parallel models using caret과 같이 재현 가능한 결과의 시드를 설정하고 싶습니다. 그러나 캐럿 도움말에서 가져온 다음 코드에서 9 행을 이해하지 못합니다. 왜 우리는 22 행 (12 행, 23 행의 마지막 모델 포함) 정수 (매개 변수 k에 대한 12 개의 값이 계산됩니까?)를 샘플링합니까? 정보를 위해 5 배 CV를 실행하여 RF 매개 변수 'mtry'에 대한 584 값을 평가하고자합니다. 어떤 도움이라도 대단히 감사합니다. 고맙습니다.재사용 가능한 결과를 위해 시드 병렬 랜덤 포리스트를 캐럿으로 설정하십시오.

## Not run: 

## Do 5 repeats of 10-Fold CV for the iris data. We will fit 
## a KNN model that evaluates 12 values of k and set the seed 
## at each iteration. 

set.seed(123) 
seeds <- vector(mode = "list", length = 51) 
for(i in 1:50) seeds[[i]] <- sample.int(1000, 22) # Why 22? 

## For the last model: 
seeds[[51]] <- sample.int(1000, 1) 

ctrl <- trainControl(method = "repeatedcv", 
       repeats = 5, 
       seeds = seeds) 
+0

예, 실수로 보입니다. 50 번 샘플링 할 것으로 예상됩니다. 폴드 사이에 씨앗을 재사용하려고해도 10의 배수를 기대할 수 있습니다. 실수라고 말하고 싶습니다. – smci

답변

0

나는 그것이 실수라고 말하고 싶지만, 그리고에 대한 12 대신 내가 이해에서 22

, 당신이 모델을 실행됩니다 10 * 5 = 50 배, 해야한다 각 값은입니다. 따라서 에 대해을 1:50으로 입력하면 12 개의 시드 (매 k마다 하나씩)이 필요합니다. 최상의 k를 얻은 후에는 최종 모델을 실행하게됩니다. 이번에는 하나의 시드 만 필요합니다 (반복 리샘플링이 필요 없음).