gpt4 book ai didi

r - 错误: nrow(x) == n is not TRUE when using Train in Caret

转载 作者:行者123 更新时间:2023-12-02 05:23:15 26 4
gpt4 key购买 nike

我有一个看起来像这样的训练集

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 , AreaDay因素,但我不确定我是否应该这样做 MonthNight ,分别只取整数值 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

有人知道这是什么原因吗?

最佳答案

y 应该是包含每个样本结果的数字或因子向量,而不是矩阵。使用

train(y = make.names(trainDF$Name), ...)

帮助,其中 make.names 修改值,以便它们可以是有效的变量名称。

关于r - 错误: nrow(x) == n is not TRUE when using Train in Caret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com