2013-02-12 2 views
3

Я использую ROCR для получения измерений производительности различных алгоритмов классификации в моем наборе данных. В то время как я могу извлечь ППК метрику относительно легко, используя следующий код:Извлечь показатели производительности классификатора из объекта прогнозирования ROCR

predictions <- predict(rfmodel, test, type="prob") 
pred.obj <- prediction(predictions[,2], data$response) 
rfperf <- performance(pred.obj, "tpr","fpr") 
print(sprintf("random forest AUC %f", as.numeric(performance(pred.obj,"auc")@y.values))) 

У меня есть проблемы с извлечением другого извлечения других мер, таких как точность, напомним, F и т.д., как единое значение, которое я мог бы включить в таблицу в моем бумага. Я пробовал следующее:

> p <- performance(pred.obj,"prec", "rec") 
> as.numeric([email protected]) 
Error: (list) object cannot be coerced to type 'double' 

Я могу построить значения, но это не то, что я хотел бы. Есть идеи?

+0

Это, кажется, вопрос программирования. Я буду отмечать это для миграции. – Erik

+1

У моего вопроса также был компонент статистики: функция «unlist» вернет вектор ответов. Что такое точность или отзыв? Среднее значение этих чисел? Медиана? –

ответ

2

Проблема заключается в выходе списка. Попробуйте as.numeric (unlist ([email protected]))

+0

Спасибо, похоже, работает, поскольку часть извлечения данных по крайней мере –

1

Это связано со структурой возвращаемого объекта функции perf. Использование str на нем поможет.

[email protected] ​​- это список, содержащий один элемент, который является вектором числовых значений. Просто используйте

[email protected][[1]] 

для извлечения вектора.