2017-11-14 4 views
-1

저는 임의의 포레스트 분류기를 만들고 있으며 분류와 관련 확률을 반환하고 싶습니다. 내 결과 변수는 1 또는 0입니다. 1은 추적하고자하는 긍정적 인 클래스입니다.RandomForest()는 긍정적 인 결과의 확률과 분류를 반환합니다.

> probability 
      0 1 
242339 1.00 0.00 
3356431 1.00 0.00 
138327 1.00 0.00 
111327 1.00 0.00 
3307151 1.00 0.00 
222414 1.00 0.00 
1817297 1.00 0.00 
3860922 1.00 0.00 
1710532 1.00 0.00 

을 내 출력 :

no_of_trees <- 50 
rf.under <- randomForest(as.factor(result) ~ . , 
         data=data_balanced_under, 
         importance=TRUE, 
         ntree=no_of_trees) 

prediction <- predict(rf.under, df.test) 
probability <- predict(rf.under, df.test, type="prob") 
submit <- data.frame(predicted = prediction, actual = df.test$result) 

나는 그러나 내가 얻을, 긍정적 인 결과의 확률을 반환 할 확률을 원했다. 왼쪽에있는이 숫자들은 무엇입니까? 나는 그들이 무엇인지 모르겠다. 나는 그것들이 행 번호라고 생각했지만, 왜 1,2,3 ..에서 색인을 생성하지 않습니까? 나는 probability[,2]을 얻으려고 묶어 두었습니다. 결과가 나올 확률은 높지만 작동하지 않습니다.

이상적으로 데이터 프레임 submit에 확률을 포함시키고 싶지만 현재 그렇게 할 수 없습니다.

confusionMatrix(data = submit$predicted, reference = df.test$result , positive="1") 

#Reference 
Prediction  0  1 
     0 913730 160 
     1 50872 8219 

이 주위에 전환하는 것이 가능 :

또한, 혼란 행렬은 저를 준다? 그래서 그것은 긍정적 인 클래스 "1"을 먼저 보여줄 수 있습니까?

+2

[여기] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-)에서 설명한대로 데이터를 재현 할 수있는 예제를 제공해주십시오. 재현 가능한 예). –

답변

1

probability은 클래스 별 확률을 반환합니다. 여기에는 두 개의 클래스가 있으므로 두 개의 열이 있습니다. 이것은 다중 클래스 분류를 사용하도록이 방법으로 구축되었습니다.

당신이 매우 불균형 클래스 (사람의 0.8 %)을 가지고 있기 때문에 result == 1의 확률이 당신의 분류는 항상 0임을 예측하는 경향이 probability

의 두 번째 열을 원하는 경우의 ... 그래서 확률 result==1은 대부분의 사례에서 0에 가깝습니다. 이것이 당신의 확률이 확률처럼 보이지 않는 이유입니다.

probability의 인덱스는 rownames(df.test)이고 인덱스는 df.test입니다. 너 df.test을 무작위로 나누어서 df에서 나온 것 같은데. 그래서 인덱스가 1 씩 시작되지 않습니다.

+0

안녕 Emmanuael, 네, 참으로 .... 그 말을하게, 나는 80/20 테스트 데이터를 얻기 위해 샘플을 채취했습니다. – GRS