2015-01-22 7 views
2

multiclass.roc 매개 변수의 모양을 이해하는 데 어려움이 있습니다. 여기 내 데이터의 스냅 샷 :multiclass.roc (패키지 'pROC')를 사용하는 R 다중/다항 분류 ROC

> head(testing.logist$cut.rank) 
[1] 3 3 3 3 1 3 
Levels: 1 2 3 
> head(mnm.predict.test.probs) 
       1   2   3 
9 1.013755e-04 3.713862e-02 0.96276001 
10 1.904435e-11 3.153587e-02 0.96846413 
12 6.445101e-23 1.119782e-11 1.00000000 
13 1.238355e-04 2.882145e-02 0.97105472 
22 9.027254e-01 7.259787e-07 0.09727389 
26 1.365667e-01 4.034372e-01 0.45999610 
> 

내가 함께 multiclass.roc를 호출 시도 :

multiclass.roc(
     response=testing.logist$cut.rank, 
     predictor=mnm.predict.test.probs, 
     formula=response~predictor 
     ) 

하지만 자연스럽게 내가 오류를 얻을 :

Error in roc.default(response, predictor, levels = X, percent = percent, : 
    Predictor must be numeric or ordered. 

는 이진 분류 문제입니다 나는 '예측 인자'가 확률 (관찰 당 하나)을 포함해야한다는 것을 안다. 그러나 제 경우에는 3 개의 클래스가 있으므로 예측 변수는 각 클래스의 확률에 해당하는 3 개의 열 (또는 3 개의 값의 하위 목록)이있는 행 목록입니다. 누군가 내 '예측 자'가 현재 어떻게 보이는지보다 어떻게보아야하는지 알고 있습니까?

답변

0

pROC 패키지는 여러 예측 (각 클래스의 확률)을 얻는이 경우를 처리하도록 실제로 설계되지 않았습니다. 일반적으로 당신은 당신의 P (클래스 = 1)

multiclass.roc(
    response=testing.logist$cut.rank, 
    predictor=mnm.predict.test.probs[,1]) 

을 평가하는 것 그리고 P (클래스 = 2)와 P (클래스 = 3) 다시 그것을 할. 또는 더 나은, 가장 가능성이 클래스를 결정합니다

predicted.class <- apply(mnm.predict.test.probs, 1, which.max) 
multiclass.roc(
    response=testing.logist$cut.rank, 
    predictor=predicted.class) 

때로는 도움이 될 수 있지만, 가장 가능성이 정말 귀하의 요구에 맞지 않는 장난감으로 multiclass.roc을 고려하십시오.