J'ai formé un modèle binomial en utilisant glm(Xtrain, ytrain, formula='cbind(Response, n - Response) ~ features', family='binomial')
, où ytrain est une matrice de réponse avec des colonnes de comptes (oui), compte (non).Calculer la courbe AUC pour les réponses sous la forme cbind (Count_1, Count_0)
Les réponses de test que j'ai montrées sont dans la même forme de matrice de réponse. Cependant, la fonction predict() renvoie des probabilités - une pour chaque ligne des données d'apprentissage. Je veux maintenant utiliser le paquet ROCR ou AUC pour générer des courbes AUC, mais mes prédictions et observations sont dans différents formats. Est-ce que quelqu'un sait comment faire ça?
OK. Ajouter un exemple Pardonnez-moi que ce soit dénué de sens/rang déficient/petit, je veux seulement illustrer mon cas.
plants <- c('Cactus', 'Tree', 'Cactus', 'Tree', 'Flower', 'Tree', 'Tree')
sun <- c('Full', 'Half', 'Half', 'Full', 'Full', 'Half', 'Full')
water <- c('N', 'Y', 'Y', 'N', 'Y', 'N', 'N')
died <- c(10, 10, 8, 2, 15, 20, 12)
didntdie <- c(2, 10, 8, 20, 10, 10, 10)
df <- data.frame(died, didntdie, plants, sun, water)
dftrain <- head(df, 5)
dftest <- tail(df, 2)
model <- glm("cbind(died, didntdie) ~ plants + sun + water", data=dftrain, family="binomial")
À ce stade, predict(model, dftest)
retourne les log-odds (donnant une probabilité de décès) pour les deux derniers ensembles de caractéristiques dans mon dataframe. Maintenant, je souhaite calculer une courbe AUC. Mes observations sont au dftest[c('died','didntdie')]
. Mes prédictions sont essentiellement des probabilités. AUC, ROCR, etc. s'attendent à ce que les prédictions et les observations soient une liste de réponses bernoulli. Je ne trouve pas de documentation sur la façon d'utiliser cette matrice de réponse à la place. Toute aide appréciée.
Vous devriez fournir un [exemple reproductible] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) pour vous faciliter la tâche. Qu'est-ce que «Xtrain»? La fonction 'glm()' par défaut n'a pas de paramètre 'eqtn ='. À quoi comparez-vous les probabilités? Comment voulez-vous calculer le ROC avec ces données? – MrFlick