Как получить список прогнозов при запуске svm в пакете e1071 - PullRequest
2 голосов
/ 18 января 2010

1: Я пытался получить значение AUC для проблемы классификации и пытался использовать для этого пакеты e1071 и ROCR в R. ROCR имеет хороший пример «ROCR.simple», в котором есть значения прогнозирования и значения меток.

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 дают?

2:

есть хороший пример с ROCR.xvals. Это проблема с 10 перекрестными проверками.

Они бегут

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

Это дает результаты для всех 10 перекрестных проверок.

Моя проблема:

Как мне пользоваться

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

и получите все 10 результатов прогнозов и меток в список, как указано в ROCR.xvals?

1 Ответ

4 голосов
/ 18 января 2010

Q1. Вы можете использовать

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

НО. количество классов не равно 2. В настоящее время ROCR поддерживает только оценку задач двоичной классификации (согласно полученной ошибке)

Q2. Я не думаю, что второе может быть сделано так, как вы хотите. Я могу думать только о том, чтобы выполнить перекрестную проверку вручную, т. Е.

Получить resample.indices (из пакета peperr)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...