Ich möchte neuronalen Netzwerk in R verwenden, um den Preis eines Autos vorherzusagen, mit 144 unabhängigen Variablen. Unter meinem Code. Alles funktioniert gut, außer den letzten 2 Zeilen: AUC und Plot.Fehler in Roc: Neuronales Netzwerk in R
Dies ist der Fehler, den ich bekam:
Fehler in roc (predNN, yTEST): nicht deutlich genug Prognosen Fläche unter der ROC-Kurve zu berechnen.
Ich habe die abhängige Variable bereits als Faktor berechnet, aber dieser Fehler bleibt bestehen. Wie soll ich dieses Problem lösen?
allind <- sample(x=1:nrow(data_price2),size=nrow(data_price2))
trainind <- allind[1:round(length(allind)/3)]
valind <- allind[(round(length(allind)/3)+1):round(length(allind)*(2/3))]
testind <- allind[round(length(allind)*(2/3)+1):length(allind)]
BasetableTRAIN <- data_price2[trainind,]
BasetableVAL <- data_price2[valind,]
Basetablebig <-rbind(BasetableTRAIN,BasetableVAL)
BasetableTEST <- data_price2[testind,]
#Create a separate response variable
yTRAIN <- BasetableTRAIN$Price
BasetableTRAIN$Price <- NULL
yVAL <- BasetableVAL$Price
BasetableVAL$Price <- NULL
yTEST <- BasetableTEST$Price
BasetableTEST$Price <- NULL
yBIG <- Basetablebig$Price
Basetablebig$Price <- NULL
yTRAIN <- as.factor(yTRAIN)
yVAL <- as.factor(yVAL)
yTEST <- as.factor(yTEST)
yBIG <- as.factor(yBIG)
if (require("nnet")==FALSE) install.packages("nnet") ; library(nnet)
if (require("AUC")==FALSE) install.packages("AUC") ; library(AUC)
size <- 5 #number of units in the hidden layer
decay <- 0.1 #weight decay. Same as lambda in regularized LR. Controls for
overfitting.
rang <- 0.5 #the range of the initial random weights parameter
maxit <- 2000 #set high in order not to run into early stopping
NN <- nnet(yBIG ~ ., Basetablebig, size = size,
rang = rang, decay = decay, maxit = maxit,MaxNWts= Inf)
predNN <- as.numeric(predict(NN,BasetableTEST,type="raw"))
AUC::auc(roc(predNN,yTEST))
plot(roc(predNN,yTEST))
Jemand anders hat die Antwort hochgestuft. Ich habe versucht, die Basistabelle zu skalieren, aber dann tritt dieser Fehler beim Ausführen des neuronalen Netzwerks auf: Fehler in if (nconn [i + 1] == ns) cadd <- c (0, von): fehlender Wert, wo TRUE/FALSE benötigt wird. Wenn man sich die skalierte Basistabelle ansieht, haben einige Dummy-Variablen jetzt viele NA-Werte, während andere nicht – GerritCalle
Wie löse ich das? – GerritCalle
Bevor der ganze Code 'scale (data_price2)' ist, ist es das. Ich weiß nicht, wie du Fehler bekommen hast, die du erwähnt hast. – abhiieor