ich binde den AUC unter Verwendung auc(roc(predictions, labels))
zu berechnen, wobei labels
ist ein numerischer Vektor von 1
(x15) und 0
(x500) und predictions
ist ein numerischer Vektor mit Wahrscheinlichkeiten abgeleitet von a glm
[binomial]. Es sollte sehr einfach sein, aber auc(roc(predictions, labels))
gibt einen Fehler, zu sagen "Nicht genug verschiedene Vorhersagen, um Fläche unter der ROC-Kurve zu berechnen". Ich muss etwas Dummes tun, aber ich kann nicht herausfinden, was. Können Sie?nicht genug, um unterschiedliche Prognosen Bereich zu berechnen unter roc
Der Code ist
library(AUC)
#read the data, that come from a previous process of a species distribution modelling
prob<-read.csv("prob.csv")
labels<-read.csv("labels.csv")
#prob is
#labels is
roc(prob,labels)
#Gives the error (that I'm NOT interest in)
Error in `[.data.frame`(predictions, pred.order) : undefined columns selected
In addition: Warning messages:
1: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
2: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
3: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
#I change the format to numeric vector
prob<-as.numeric(prob[,2])
labels<-as.numeric(labels[,2])
#Verify it is a vector numeric
class(prob)
[1] "numeric"
class(labels)
[1] "numeric"
#call the roc functoin
roc(prob,labels)
Error in roc(modbrapred, pbbra) : # THIS is the error I0m interested in
Not enough distinct predictions to compute area under the ROC curve.
In addition: Warning messages:
1: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
2: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
3: In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
Data is as follows
labels.csv
"","x"
"1",1
"2",1
"3",1
"4",1
"5",1
"6",1
...
"164",1
"165",1
"166",0
"167",0
"168",0
"169",0
"170",0
"171",0
"172",0
...
"665",0
prob.csv
"","x"
"1",0.977465874525236
"2",0.989692657762578
"3",0.989692657762578
"4",0.988038430564019
"5",0.443188602491041
"6",0.409732585195485
...
"164",0.988607910625475
"165",0.986296936078692
"166",7.13529696560611e-05
"167",0.000419255989134081
"168",0.00295825183558019
"169",0.00182941235784709
"170",4.85601026999172e-09
"171",0.000953106471289961
"172",1.70252014430306e-05
...
"665",8.13413358866349e-08
gewidmet Können Sie bitte ein reproduzierbares Beispiel hinzufügen? – dayne
Bitte lesen Sie [wie man ein reproduzierbares Beispiel erstellt] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Sie sollten Ihre Frage so bearbeiten, dass sie in R kopiert werden kann, um denselben Fehler zu erhalten. Weil über die 'library()' Aufrufe erforderlich sind, um den Code zur Ausführung zu bringen. Du hast Recht, es sollte einfach sein, also wie genau du es schwierig gemacht hast, ist unklar. – MrFlick
danke für die Kommentare. Ich habe jetzt einen Teil meiner realen Daten eingefügt – user2942623