2014-06-22 6 views
8

R 캐럿 라이브러리에서, 아래에서 이와 같은 혼동 행렬을 얻은 경우, 전체 정확도 0.992를 검색하는 방법이 있습니까? 이 값을 저장하고 나중에 처리해야하므로이 단일 값을 가져올 수 없습니다. 이것이 가능합니까?전체 정확도 값을 혼란에서 재 획득하는 방법 R에있는 Matrix?

Prediction A B C D E 
      A 1114 2 0 0 0 
      B 9 745 5 0 0 
      C 0 6 674 4 0 
      D 0 0 3 640 0 
      E 0 0 2 1 718 

전체 통계

  Accuracy : 0.992   
       95% CI : (0.989, 0.994) 
No Information Rate : 0.286   
P-Value [Acc > NIR] : <2e-16   

       Kappa : 0.99   

Mcnemar의 테스트 P-값 :

     Class: A Class: B Class: C Class: D Class: E 
Sensitivity    0.992 0.989 0.985 0.992 1.000 
Specificity    0.999 0.996 0.997 0.999 0.999 
Pos Pred Value   0.998 0.982 0.985 0.995 0.996 
Neg Pred Value   0.997 0.997 0.997 0.998 1.000 
Prevalence    0.286 0.192 0.174 0.164 0.183 
Detection Rate   0.284 0.190 0.172 0.163 0.183 
Detection Prevalence 0.284 0.193 0.174 0.164 0.184 
Balanced Accuracy  0.996 0.992 0.991 0.996 1.000 

답변

16

가 혼동 행렬 cm 전체적인 정확성에 의해 얻어 감안할 : 클래스 NA

통계 overall.accuracy <- cm$overall['Accuracy']

처음으로 caret 패키지를 보았습니다. 어떻게 알았습니까?

예제를 제공하지 않았으므로 example code for caret confusion matrices을 검색했습니다. 여기가 (마지막 문에 난 단지 추가 지정)입니다 : 당신이 볼 수있는 바와 같이

> str(cm) 
List of 5 
$ positive: NULL 
$ table : 'table' int [1:3, 1:3] 13 18 19 20 13 17 17 19 14 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ Prediction: chr [1:3] "setosa" "versicolor" "virginica" 
    .. ..$ Reference : chr [1:3] "setosa" "versicolor" "virginica" 
$ overall : Named num [1:7] 0.267 -0.1 0.198 0.345 0.333 ... 
    ..- attr(*, "names")= chr [1:7] "Accuracy" "Kappa" "AccuracyLower" "AccuracyUpper" ... 
$ byClass : num [1:3, 1:8] 0.26 0.26 0.28 0.63 0.63 0.64 0.26 0.26 0.28 0.63 ... 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : chr [1:3] "Class: setosa" "Class: versicolor" "Class: virginica" 
    .. ..$ : chr [1:8] "Sensitivity" "Specificity" "Pos Pred Value" "Neg Pred Value" ... 
$ dots : list() 
- attr(*, "class")= chr "confusionMatrix" 

이는 cm 객체가 있습니다 :

################### 
## 3 class example 

confusionMatrix(iris$Species, sample(iris$Species)) 

newPrior <- c(.05, .8, .15) 
names(newPrior) <- levels(iris$Species) 

cm <- confusionMatrix(iris$Species, sample(iris$Species)) 

는 지금, 혼란 매트릭스에서 무엇을 살펴 보자 명부. 우리는 다양한 "byClass"및 "전반적인"통계를 봅니다. 우리 문자열 인덱스와 숫자 벡터 제공

overall <- cm$overall 

: 전체 부분에서 얻어지는 지금

> overall 
     Accuracy   Kappa AccuracyLower AccuracyUpper AccuracyNull AccuracyPValue McnemarPValue 
    0.2666667  -0.1000000  0.1978421  0.3449492  0.3333333  0.9674672  0.9547790 

을, 해당 값을 추출하는 것은 간단로서 :

> overall.accuracy <- overall['Accuracy'] 

요약 : str은 (는) 친구 분입니다. 또 다른 유용한 함수는 attributes입니다. 주어진 객체의 모든 속성을 반환합니다.

+0

좋은 답변이지만 정확함은 문자열과 값을 반환합니다. 어떻게 값에 액세스 할 수 있습니까? 나는 두 배를 의미한다. – Emixam23