ich einen Trainingssatz haben, der wieFehler: nrow (x) == n ist nicht wahr, wenn in Caret mit Zug
Name Day Area X Y Month Night
ATTACK Monday LA -122.41 37.78 8 0
VEHICLE Saturday CHICAGO -1.67 3.15 2 0
MOUSE Monday TAIPEI -12.5 3.1 9 1
Name
ist das Ergebnis/abhängige Variable aussieht. Ich konvertierte Name
, Area
und Day
in Faktoren, aber ich war nicht sicher, ob ich für Month
und Night
, die nur ganzzahlige Werte 1-12 und 0-1 jeweils annehmen sollte.
ich konvertieren dann die Daten in Matrix
ynn <- model.matrix(~Name , data = trainDF)
mnn <- model.matrix(~ Day+Area +X + Y + Month + Night, data = trainDF)
ich dann Setup
nnTrControl=trainControl(method = "repeatedcv",number = 3,repeats=5,verboseIter = TRUE, returnData = FALSE, returnResamp = "all", classProbs = TRUE, summaryFunction = multiClassSummary,allowParallel = TRUE)
nnGrid = expand.grid(.size=c(1,4,7),.decay=c(0,0.001,0.1))
model <- train(y=ynn, x=mnn, method='nnet',linout=TRUE, trace = FALSE, trControl = nnTrControl,metric="logLoss", tuneGrid=nnGrid)
jedoch die Parameter Tuning, erhalte ich die Fehler Error: nrow(x) == n is not TRUE
für die model<-train
Ich habe auch ein ähnliches Fehler, wenn ich xgboost
anstelle von nnet
Wer weiß, was das verursacht?
Nicht sicher über den Fehler, aber Sie sollten "Monat" und "Nacht" zu Faktorvariablen konvertieren. – ytk
Ich habe das gerade gemacht. Das löste nicht den Fehler – user5739619
'y' sollte ein numerischer oder ein Faktorvektor sein, der das Ergebnis für jede Probe, nicht eine Matrix enthält. Probieren Sie 'train (y = trainDF $ Name, ...'; es gibt verschiedene Fehler mit Ihren Beispieldaten, aber vielleicht funktioniert es mit einem vollständigen Datensatz. – Julius