2010-01-18 3 views
2

Q1 : 분류 문제에 대한 AUC 값을 얻으려고 시도했으며이를 위해 R에서 e1071 및 ROCR 패키지를 사용하려고했습니다. ROCR에는 예측 값과 레이블 값이있는 "ROCR.simple"이라는 멋진 예제가 있습니다.e1071 패키지에서 svm을 실행하여 예측 목록을 얻는 방법

library(ROCR) 
data(ROCR.simple) 
pred<-prediction(ROCR.simpe$predictions, ROCR.simple$labels) 
auc<-performance(pred,"auc") 

이것은 AUC 값을 제공하며 아무런 문제가 없습니다. 내 문제 : 위의 예에서 ROCR.simple$predictions에 의해 주어진 데이터 유형을 얻으려면 어떻게해야합니까? 나는 내 분석을 실행한다.

library(e1071) 
data(iris) 
y<-Species 
x<-iris[,1:2] 
model<-svm(x,y) 
pred<-predict(model,x) 

여기까지 나는 괜찮다. 그러면 ROCR.simpe$predictions이주는 예측을 어떻게 얻을 수 있습니까?

Q2 :

ROCR.xvals을 포함하는 좋은 예제가있다. 이것은 10 번의 교차 검증에 문제가 있습니다.

그들은

pred<-prediction(ROCR.xval$predictions,ROCR.xval$labels) 
auc<-performance(pred,"auc") 

이 모두 10 개 교차 검증에 대한 결과를 제공

를 실행합니다.

내 문제는 다음과 같습니다

ROCR.xvals에 주어진 내가

model<-svm(x,y,cross=10)  # where x and y are as given in Q1 

를 사용하여 목록에 예측 및 라벨의 모든 10 개 결과를 얻을 어떻게해야합니까?

답변

4

Q1. 사용할 수 있습니다

pred<-prediction(as.numeric(pred), as.numeric(iris$Species)) 
auc<-performance(pred,"auc") 

그러나. 클래스 수는 2와 동일하지 않습니다. ROCR은 현재 (내가 가진 오류에 따라) 이진 분류 작업의 평가 만 지원합니다 (

Q2). 나는 두 번째가 당신이 원하는대로 할 수 있다고 생각하지 않는다. 난 단지 교차 검증을 수행하기 위해 생각할 수있는 수동으로 실시 예

(패키지 peperr에서) resample.indices

cv.ind <- resample.indices(nrow(iris), sample.n = 10, method = c("cv")) 
x <- lapply(cv.ind$sample.index,function(x){iris[x,1:2]}) 
y <- lapply(cv.ind$sample.index,function(x){iris[x,5]}) 

후 다음 등 각 이력서 샘플

model1<-svm(x[[1]],y[[1]]) 
pred1<-predict(model1,x[[1]]) 

에 대한 모델과 예측을 생성 받기 ROCR.xval과 같은 목록을 수동으로 구성 할 수 있습니다.

관련 문제