는 R

2013-12-14 2 views
2

내가 R에 ROCR 패키지를 사용하여 정확도를 계산하려고에 ROCR 패키지를 사용하여 정확도를 계산하지만 결과는 내가 예상했던 것보다 다른 :는 R

내가 모델 (P)의 예측 및 라벨 (L)가 가정 다음과 같이

p <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86) 
l <- c(1,  1, 1, 0, 0,  1, 1, 1, 0,  1) 

및 I는 다음과 같은 명령을 사용하여 이러한 예측의 정확도를 계산하고 :

library(ROCR) 
pred <- prediction(p, l) 
perf <- performance(pred, "acc") 
max([email protected][[1]]) 

을하지만 결과는 0.8 인 정확도 화학식 (TP + TN에 따라)/(TN + TP + FN + FP)는 ​​.6 왜 그럴까요?

답변

3

max([email protected][[1]])을 사용하면 양수 예측을위한 가능한 모든 컷오프에서 최대 정확도를 계산합니다.

귀하의 경우, 최적 임계 값은 p=0.2이며, 이때 예측 확률이 0.38과 0.78 인 관측치에서 실수를 2 회 내리므로 최대 정확도는 0.8이됩니다.

[email protected][[1]]을 사용하여 perf 오브젝트의 컷오프에 액세스 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. '0.5' 컷오프의 정확성을 어떻게 얻을 수 있습니까? 그것은'max ([email protected] ​​[[0.5]])'입니까? 또한, 왜 이것을 얻기 위해'max()'가 필요한지 아십니까? – Rhubarb

+0

@ Zhubarb with ROCR 나는'[email protected] ​​[[1]] [max (which ([email protected] ​​[[1]]> = 0.5))]'를 사용할 것이다. – josliber

+0

위의 특정 예에서 '[email protected]=Inf 0.97 0.89 0.86 0.78 0.61 0.43 0.38 0.36 0.24 0.14' 및 '[email protected]=0.3 0.4 0.5 0.6 0.5 0.6 0.7 0.6 0.7 0.8 0.7'입니다. 그러므로 코드는'cut_off = 0.61' (0.5보다 큰 가장 작은 컷오프)에 대해'acc'를 리턴합니다, 맞습니까? – Rhubarb