插入神经网络错误:"重采样性能指标中缺少值"

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中重新创建结果.我在插入符号中尝试了一些其他神经网络包但总是得到相同的结果.

有没有人比我更了解这一点?

Ach*_*oud 3

如果您在调用之前缩放数据,是否可以解决问题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)

抱歉,如果没有数据,有时很难发现错误。