2016-08-15 2 views
0

J'essaie de tracer une courbe ROC pour mon modèle de régression glmnet. Pour ce faire, je suis en train de prédire en utilisant le type = « réponse » en prédire la fonction:Impossible de spécifier type = "response" dans la fonction de prédiction de Caret

pred_glmnet_s10_2class <- predict(model_train_glmnet_s10_2class, 
            newdata=testing_s10_2class, 
            s = "model_train_glmnet_s10_2class$finalModel$lambdaOpt", 
            type="response") 

et je reçois l'erreur suivante:

Error in predict.train(model_train_glmnet_s10_2class, newdata = testing_s10_2class, : type must be either "raw" or "prob"

Mes prédictions et les étiquettes de classe sont binaires 0 et 1 et ont été factorisés. Toute aide est vraiment appréciée. En outre, des idées sur la façon de tracer AUC (zone sous courbe ROC) vs nombre de fonctionnalités? Merci!

+1

Pouvez-vous fournir un [exemple reproductible minimal] (http://stackoverflow.com/questions/5963269/how -à-faire-un-grand-r-reproductible-exemple)? – shayaa

+0

Pour vos questions de suivi sur les AUC, qu'avez-vous essayé? – steveb

+0

'prédire' est générique. Vous devez connaître la classe de 'model_train_glmnet_s10_2class'. Ensuite, vous pouvez déterminer laquelle des nombreuses fonctions 'prédictives 'que vous utilisez réellement. Il est possible qu'il n'y ait pas de 'type =" réponse "' à cette classe d'objet. –

Répondre

0

En supposant que model_train_glmnet_s10_2class a été générée par train (montrant le code serait utile) ...

L'utilisation predict(model_train_glmnet_s10_2class) utilise predict.train et utilise les valeurs optimales lambda déterminées par train automatiquement. Si vous voulez les probabilités, utilisez simplement type = "prob". Votre syntaxe est compatible avec predict.glmnet et non predict.train.

Comme indiqué dans la documentation, il est une très mauvaise idée d'utiliser model_train_glmnet_s10_2class$finalModel directement pour faire les prédictions