2012-09-11 3 views
6

분류 작업을 위해 R 플랫폼에서 randomForest 패키지를 사용하고 있습니다.randomForest에서 분류하기위한 ROC 곡선

rf_object<-randomForest(data_matrix, label_factor, cutoff=c(k,1-k)) 

(k는 0.1 내지 0.9).

pred <- predict(rf_object,test_data_matrix) 

나는 임의의 포레스트 분류기의 결과를 가지고 레이블과 비교했습니다. 따라서 정확도, MCC, 감도, 특이성 등과 같은 성능 측정 값이 9 개의 컷오프 포인트에 대해 있습니다.

이제 ROC 곡선을 플로팅하고 ROC 곡선 아래의 영역을 얻어 성능이 얼마나 좋은지 확인하고 싶습니다. R의 패키지 (ROCR, pROC와 같은)의 대부분은 예측과 레이블이 필요하지만 민감도 (TPR)와 특이성 (1-FPR)이 있습니다.

ROC 곡선을 생성하기 위해 컷오프 방법이 정확하거나 신뢰할 수 있다면 나에게 제안 할 수 있습니까? TPR 및 FPR을 사용하여 곡선 아래의 ROC 곡선 및 면적을 구하는 방법을 알고 계십니까?

또한 다음 명령을 사용하여 임의의 포리스트를 학습 시키려고했습니다. 이 방법은 예측이 연속적이었고 R에서 ROCRpROC 패키지로 허용되었습니다. 그러나 이것이 올바른 방법인지 확실하지 않습니다. 어느 누구도이 방법에 대해 나에게 제안 할 수 있습니까?

rf_object <- randomForest(data_matrix, label_vector) 
pred <- predict(rf_object, test_data_matrix) 

내 문제를 읽어 주셔서 감사합니다. 나는 이것을 위해 서핑을하는 데 오랜 시간을 보냈습니다. 귀하의 제안/조언에 감사드립니다.

답변

13

왜 클래스 확률을 출력하지 않습니까? 이렇게하면 예측의 순위가 결정되며 직접 ROC 패키지에 입력 할 수 있습니다. 분류 도구로 랜덤 포레스트를 사용하는,

m = randomForest(data_matrix, labels) 
predict(m,newdata_matrix,type='prob') 

참고 labels는 요소의 벡터해야합니다.