2012-04-08 1 views
0

R에서 randomForest에 다른 sampsize를 설정하고 싶습니다. 3 가지 RF 리턴이 표시되지만 R (목록) 개체에서 오류가 발생하여 'integer'를 입력 할 수 없습니다. "랜덤 포리스트에서 sampsize 오류가 발생했습니다

이런 일이이 문제를 해결하는 방법을 왜

sampsize_vect<-vector("list",3) 
    sampsize_vect[[1]]<- rep(6670,3) 
    sampsize_vect[[2]]<- c(1000) 
    sampsize_vect[[3]]<- c(5000,5000) 
    for (i in 1:3) { 
    RF <- randomForest (x,y,sampsize=sampsize_vect[i],node.size=3,do.trace=FALSE,importance=TRUE,ntree=150,,forest=TRUE) 
    print(RF) 
    } 

을 다음과 같이

내 코드입니다.

답변

1

임의의 포리스트와 관련이 없습니다. [[을 사용해야했을 때 [을 사용했을뿐입니다 (또는 그 반대 일 수도 있습니다).

변경 sampsize = sampsize_vect[i]에서 sampsize = sampsize_vect[[i]]]으로 변경하십시오. 목록이 항상 기억하십시오. [[요소를으로 선택하고 [하위 목록을 선택합니다.

+0

@ 플러딩 내 원래 답변이 여전히 적용됩니다. 또한'sampsize'에 벡터를 건네 주면 성층 재 샘플링을하는 경우에만 효과가 있습니다. 예제는 그렇지 않습니다. 마지막으로'node.size'가 아닌'nodesize'입니다. – joran

+0

도움 주셔서 감사합니다. 내가 제대로 문제를 설명하지 않은 것 같아요, 나는 3 differen sampsize 벡터와 함께 RF를 실행하고 싶지만,이 세 벡터는 같은 길이가 아니므로, 그래서 "sampsize = sampsize_vect [i]"를 사용하여 세 벡터를 얻습니다. 목록)하지만 실패했습니다. – floodking

+0

@floodking 지층 인수를 변경하지 않는 한 그건 무의미합니다. 층화 샘플링을 할 때만 길이가 1보다 큰 샘프 크기가 ​​적용된다는 사실에 관해 제 의견을 읽었습니까? – joran

관련 문제