Mat*_*son 6 r neural-network nnet r-caret
我之前见过其他人有这个错误,但是,我还没有找到满意的答案.我想知道是否有人能对我的问题提供一些见解?
我有一些汽车拍卖数据,我试图建模,以预测Hammer.Price.
> str(myTrain)
'data.frame': 34375 obs. of 9 variables:
$ Grade : int 4 4 4 4 2 3 4 3 3 4 ...
$ Mileage : num 150850 113961 71834 57770 43161 ...
$ Hammer.Price : num 750 450 1600 4650 4800 ...
$ New.Price : num 15051 13795 15051 14475 14475 ...
$ Year.Introduced: int 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 ...
$ Engine.Size : num 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 ...
$ Doors : int 3 3 3 3 3 3 3 3 3 3 ...
$ Age : int 3771 4775 3802 2402 2463 3528 3315 3193 4075 4988 ...
$ Days.from.Sale : int 1778 1890 2183 1939 1876 1477 1526 1812 1813 1472 ...
Run Code Online (Sandbox Code Playgroud)
myTrain包含随机70%的数据,myTest另外30%,我训练模型
myModel <- train(Hammer.Price ~ ., data = myTrain, method = "nnet")
Run Code Online (Sandbox Code Playgroud)
这会导致以下警告:
警告消息:在nominalTrainWorkflow中(x = x,y = y,wts = weights,info = trainInfo,:重采样性能度量中存在缺失值.
当我试图预测所有结果都等于1时.
myTestPred <- predict(myModel, myTest)
Run Code Online (Sandbox Code Playgroud)
我以前使用这些数据来训练使用SPSS Modeller的MLP神经网络,但似乎无法在R中重新创建结果.我在插入符号中尝试了一些其他神经网络包但总是得到相同的结果.
有没有人比我更了解这一点?
如果您在调用之前缩放数据,是否可以解决问题train?如果在运行模型之前不缩放所有变量,我就遇到了 glmnet 和 nnet 的问题。如果您将所有变量设为数字,它也会有所帮助(有趣的是)。
您还可以尝试使重采样明确,例如使用
myControl <- trainControl(method = "repeatedcv", repeats=5, number = 10)
Run Code Online (Sandbox Code Playgroud)
然后将其传递给train:
myModel <- train(Hammer.Price ~ .,
data = myTrain,
method = "nnet",
trControl = mycontrol)
Run Code Online (Sandbox Code Playgroud)
抱歉,如果没有数据,有时很难发现错误。