Ho una serie di formazione che assomigliaErrore: nrow (x) == n non è vero quando si utilizza Allenati Caret
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
è la variabile esito/dipendente. Ho convertito Name
, Area
e Day
in fattori, ma non ero sicuro se dovevo per Month
e Night
, che assumono solo i valori interi 1-12 e 0-1, rispettivamente.
ho poi convertire i dati in matrice
ynn <- model.matrix(~Name , data = trainDF)
mnn <- model.matrix(~ Day+Area +X + Y + Month + Night, data = trainDF)
Ho poi messa a punto messa a punto dei parametri
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)
Tuttavia, ottengo l'errore Error: nrow(x) == n is not TRUE
per la model<-train
ho anche ottenere un simile errore se utilizzo xgboost
anziché nnet
Qualcuno sa che cosa sta causando questo?
Non sono sicuro dell'errore, ma è necessario convertire 'Month' e' Night' in variabili dei fattori. – ytk
L'ho appena fatto. Questo non risolveva l'errore – user5739619
'y' dovrebbe essere un vettore numerico o di fattore contenente il risultato per ciascun campione, non una matrice. Prova 'treno (y = trainDF $ Nome, ...'; dà diversi errori con i tuoi dati di esempio ma forse funzionerà con un set di dati completo. – Julius