J'essaie d'obtenir une intrigue AUC fonctionnant en utilisant le paquet AUC dans R. Je ne suis pas sûr de l'erreur et nouveau à ce fit est le modèle formé: test est les données de testAUC package - erreur AUC - programmation r
test$going_to_cross <- predict(fit, test, type="prob")
prediction <- predict(fit, test, type="prob")
submit <- data.frame(cust_id = test$cust_id, already_crossed = test$flag_cross_over, predictions = prediction)
write.csv(submit, file = "../predictions /cross_sell_predictionsRF.csv", row.names = FALSE)
head(submit, 5)
print("predictions")
colnames(prediction) <- c("predictiona", "predictionb")
head(prediction)
which(submit$going_to_cross == 1)
print("names submit")
names(submit)
#predict_cross <- submit$going_to_cross.0
head(predict_cross, 5)
Je reçois la sortie ici:
cust_id already_crossed predictions.0 predictions.1
280 14080465 0 0.436 0.564
281 24047747 0 0.218 0.782
282 10897483 0 0.606 0.394
283 14005276 0 0.448 0.552
284 18488402 0 0.284 0.716
[1] "predictions"
Out[317]:
predictiona predictionb
280 0.436 0.564
281 0.218 0.782
282 0.606 0.394
283 0.448 0.552
284 0.284 0.716
285 0.104 0.896
le code du package est:
auc(sensitivity(submit$predictions, submit$already_crossed))
Et le message d'avertissement est:
message d'avertissement: En is.na (x): is.na() appliquée à la non (liste ou vecteur) de type 'NULL'
Mise à jour:
# get the data into single vectors
submit_pred <- matrix(submit$predictions.1)
submit_cross <- matrix(submit$already_crossed)
dt <- cbind(submit_pred, submit_cross)
dt <- matrix(dt)
names(dt) <- c("submit_pred", "submit_cross")
roc_pred <- prediction(dt$submit_pred, dt$submit_cross)
perf <- performance(roc_pred, "tpr", "fpr")
plot(perf, col="red")
abline(0,1,col="grey")
zone get sous la courbe
performance(roc_pred,"auc")@y.values tête (dt)
Qu'est-ce que 'str (submit $ predictions)' et 'str (submit $ already_crossed)' return? Y a-t-il des valeurs 'NA' dans' already_crossed'? – bjoseph
Je pense que la colonne "prédictions" comprend des informations de prédire les succès et les échecs (1s et 0s). Essayez simplement d'utiliser "submit $ predictionb" au lieu de "submit $ predictions" dans votre dernier morceau de code. – AntoniosK
Vous passez deux vecteurs comme prédiction et vous avez un vecteur pour les valeurs réelles quand vous faites: auc (sensibilité (soumettez $ predictions, soumettez $ already_crossed)) et vous cassez le modèle. De plus, vous n'avez que 0 prédictions et la courbe ROC ne sera pas obtenue. Je vais vous envoyer un exemple bientôt .... – AntoniosK