2017-01-08 3 views
-1

Roc 곡선을 계산하고 선형 차별 모델로부터 AUC를 계산하고 싶습니다. 내가 어떻게 이럴 수 있니?선형 차별 분석의 Roc 곡선 R

##LDA 
require(MASS) 
library(MASS) 
lda.fit = lda(Negative ~., trainSparse) 
lda.fit 
plot(lda.fit) 
###prediction on the test set 
lda.pred=predict(lda.fit,testSparse) 
table(testSparse$Negative,lda.pred$class) 
+0

: > rocplot = 기능 (PRED, 진실, ...) {여기에 코드가있다 + predob = 예측 (pred, truth) + perf = 성능 (predob, "tpr", "fpr") +} > yhat.opt = predict (lda.fit , testSparse, 결정. 값 = TRUE) > rocplot (fitted.opt, testSparse [ "Negative"], main = "Training Data"). 그러나 다음 오류가 나타납니다. 예측 오류 (pred, truth) : 예측 형식이 유효하지 않습니다. –

+0

[ROCR 패키지로 AUC를 계산하는 방법] (http://stackoverflow.com/questions/41523761/how-to-compute-auc-with-rocr-package) –

답변

1

단순히 이것을 시도 : 나는이 코드를 시도 @calimo

library(ROCR) 
# choose the posterior probability column carefully, it may be 
# lda.pred$posterior[,1] or lda.pred$posterior[,2], depending on your factor levels 
pred <- prediction(lda.pred$posterior[,2], testSparse$Negative) 
perf <- performance(pred,"tpr","fpr") 
plot(perf,colorize=TRUE) 

enter image description here

+0

대단히 감사합니다 !! 선택할 요인 수를 어떻게 알 수 있습니까? lda.fit = lda (Negative ~. Positive, trainSparse) 경고 메시지 : lda.default (x, grouping, ...)에서 변수는 다음과 같습니다. 동일 선상에있다. 문제가 되나요? @sandipan –

+0

@macgionny 제 질문은 lda.pred $ posterior에서 선택할 올바른 요소 수준을 알아내는 것입니다. 맞습니까? 응답 변수의 긍정적 인 요소 수준이 'Y'라고 가정하면,'prediction()'은 각 데이터 튜플에 대해 두 번째 인수를 기대할 것입니다. 첫 번째 인수는 모델에 의해 예측 된 확률이고 'Y'이고 두 번째 인수는 그 인스턴스의 실제의 라벨 두 번째 질문의 대답은 예측 변수가 선형 적으로 종속되므로 경고의 원인 인 다중 공선 성 문제이므로 VIF 테스트를 수행하고 일부 변수를 삭제해야합니다. –

+0

모델의 고정밀도 및 리콜이있는 경우 ROC 곡선은 위와 같은 모양 일 수 있습니다. –

관련 문제