2016-06-11 1 views
1

에 의해 생성 된 플롯의 x 한계를 randomForest 패키지에서 어떻게 변경할 수 있습니까?varImpPlot에 x 제한을 설정하는 방법

내가하려고하면

set.seed(4543) 
data(mtcars) 
mtcars.rf <- randomForest(mpg ~ ., data=mtcars, ntree=1000, keep.forest=FALSE, 
         importance=TRUE) 
varImpPlot(mtcars.rf, scale=FALSE, type=1, xlim=c(0,15)) 

나는 다음과 같은 오류가 발생합니다 : varImpPlot 내가 생각하지만, 내가 원한다면 나는이 문제를 어떻게 얻을 수있는, 자신의 x 한계를 정의하기 때문에

Error in dotchart(imp[ord, i], xlab = colnames(imp)[i], ylab = "", main = if (nmeas == : formal argument "xlim" matched by multiple actual arguments".

입니다 x 한계를 직접 설정하려면 (아마도 일관성을 유지하기 위해)?

+0

내가 위도 {dotplot을 dotchart를 사용 향해 varimpplot를 사용하는 경향이 거리) 싶습니다 tice} 또는 geom_dotplot {ggplot2}을 사용하여 플롯에 대한보다 다양한 제어를 할 수 있습니다. 중요도 (mtcars.rf)를 사용하여 플롯 할 값을 추출 할 수 있습니다. 물론 중요성은 덜 일반적이지만 점 대신 막대를 사용하여 매우 잘 보여줄 수 있습니다. 이것은 서로 다른 RF 사이의 중요성을 비교하는 경우 그룹화 된 바 플롯에 적합합니다. – dww

+0

이렇게 말하면 xlim이 작동하지 않는 이유는 기본적으로 varimp plot이 다른 중요도 측정에 대해 2 도트 차트를 작성하기 때문입니다. 따라서 어느 축을 제한 할 것인지를 알 수 없습니다. type = 1 또는 type = 2로 설정하면 한계가 작동합니다. – dww

+0

type = 1로 설정하려고 시도했지만 여전히 동일한 오류가 발생했습니다. 첫 번째 제안을 사용하여 끝내면 완벽하게 작동합니다. 감사합니다. –

답변

2

먼저 I 나 수동 X 제한을 설정할 수

impToPlot <- importance(mtcars.rf, scale=FALSE) 

그럼 I가 dotchart()을 사용하여 플롯 (@dww에서 제안 덕분) importance()을 사용하여 값을 추출하고 (그리고 다른 플롯 I 마련되어 '

dotchart(sort(impToPlot[,1]), xlim=c(0,15), xlab="%IncMSE") 

dotchart of variable importance with manual x axis