2015-07-06 3 views
0

У меня возникли некоторые трудности с применением метода ROCR.R ROC-кривая с использованием C5.0 Модель

#EX1 
model <- glm(Good.Loan ~ ., data=trainSet, family=binomial(link="logit")) 
testSet$predGood.Loan <- predict(model,newdata=testSet) 
pred <- prediction(predictions = testSet$predGood.Loan, labels = 
testSet$Good.Loan) 
perf <- performance(pred, measure = "tpr", x.measure = "fpr") 

#EX2 
model <- C5.0(CostumerClass ~ ., data = trainSet) 
predictedCostumerClass<- predict(model , testSet) 
pred <- prediction(predictions = predictedCostumerClass, labels = 
testSet$CostumerClass) 
perf <- performance(pred, measure = "tpr", x.measure = "fpr") 

В Ex1, я строю свою модель с использованием обобщенной линейной модели, а затем применяя метод производительности. И все в порядке. Когда я пытаюсь использовать то же самое с помощью модели c5.0 я получаю ошибку

Format of predictions is invalid.

Ближайшей помощь, которую я смог найти в this article.

Я не могу найти, какой формат требуется для метода производительности, или если моему прогнозу нужно что-то еще.

+0

Было бы неплохо, чтобы сделать ваш вопрос [воспроизводимая] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610) путем включения выборки входных данных или или использование встроенных наборов данных. – MrFlick

+0

Возможный дубликат [Как иметь дело с анализом ROC с несколькими классами в R (пакет pROC)?] (Http://stackoverflow.com/questions/20518376/how-to-deal-with-multiple-class-roc-analysis- in-r-proc-package) –

ответ

1

Похоже, что модели C5.0 по умолчанию возвращают метки классов (дискретные значения) для predict, а модели glm возвращают значение функции связи (непрерывные значения). Для создания кривой ROC вам нужны непрерывные значения, чтобы вы могли попробовать разные точки резания. Вместо того, чтобы предсказывать класс, вы можете предсказать вероятность от модели.

predictedCostumerClass <- predict(model , testSet, type="prob") 
+0

Благодарим за помощь. Мне удалось сделать некоторые улучшения, используя «prob» вместо «class». Но я столкнулся с другой проблемой. (Я не знаю, должен ли я опубликовать новый вопрос). Я получаю следующее сообщение об ошибке: Ошибка в предсказании (предсказания = predictedCostumerClass, этикетки = testSet $ ​​CostumerClass): Количество классов не равна 2. Я думаю, что его, потому что мой testSet $ ​​CostumerClass имеет 5 отличные значения. Если это так, я не знаю, что мне теперь делать. –

+0

Я нашел свой ответ о кривой многокадровой кривой в этой теме. Надеюсь, это может быть полезно кому-то другому. http://stackoverflow.com/questions/20518376/how-to-deal-with-multiple-class-roc-analysis-in-r-proc-package –