使用車的時候nrow(X)== n是不是真的,我有一個訓練集,看起來像錯誤:在插入符號
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
的結局/因變量。我將Name
,Area
和Day
轉換爲因子,但我不確定是否應該爲Month
和Night
,它們分別只取整數值1-12和0-1。
我然後將數據轉換成矩陣
ynn <- model.matrix(~Name , data = trainDF)
mnn <- model.matrix(~ Day+Area +X + Y + Month + Night, data = trainDF)
我然後設置調整參數
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)
但是,我得到的錯誤Error: nrow(x) == n is not TRUE
爲model<-train
我也得到了類似的錯誤如果我用xgboost
而不是nnet
任何人都知道這是什麼造成的?
不確定錯誤,但您應該將'Month'和'Night'轉換爲因子變量。 – ytk
我剛剛那樣做了。這並沒有解決錯誤 – user5739619
'y'應該是一個數字或因子向量,其中包含每個樣本的結果,而不是一個矩陣。試試'train(y = trainDF $ Name,...';它會給你的示例數據帶來不同的錯誤,但是它可能會與完整的數據集一起工作 – Julius