提问人:MoHaMaD rEzA 提问时间:10/25/2023 最后编辑:MoHaMaD rEzA 更新时间:10/26/2023 访问量:29
在 R 中使用插入符号包进行预测
Prediction with Caret package in R
问:
我是在 R 中使用 Caret 包的初学者。我已经成功地使用“nnet”包来开发模型。但是,我现在有兴趣将 Caret 用于某些目的。具体来说,我有一个尺寸为 [Z x N] 的矩阵输入(行中有样本),目标(或输出)的尺寸为 [Z x M]。
在“nnet”包中,我能够使用以下代码在不使用公式的情况下训练模型。
nnet(x = train_inputs, y = train_targets, ...)
但是使用 Caret,我收到此错误:Error: Please make sure that the outcome column is a factor or numeric. The class(es) of the column: 'data.frame'
因此,我使用此代码来使用公式:
names1 <- colnames(target_data) #Target
names2 = colnames(input_data) #Input
formula_net <- as.formula(paste(paste(names1,collapse='+', sep = ""),' ~ '
,paste(names2,collapse='+', sep = "")))
> formula_net
Target1 + Target2 + Target3 + Target4 + Target5 ~ Input1 + Input2 + Input3
这是我的插入符号代码。 是 的 80%。train_data
cbind(target_data, input_data)
net <- train(formula_net, data=train_data,
method = 'nnet',
preProcess = NULL,
verbose = FALSE,
MaxNWts=1000,
linout =T,
maxit=1000)
看起来效果很好,以下是以下摘要:net
> net
Neural Network
16000 samples
7 predictor
No pre-processing
Resampling: Bootstrapped (25 reps)
Summary of sample sizes: 16000, 16000, 16000, 16000, 16000, 16000, ...
Resampling results:
RMSE Rsquared MAE
0.000494634 0.9998713 0.0004172757
Tuning parameter 'size' was held constant at a value of 2
Tuning parameter 'decay' was held constant at a value
of 0.005
我不知道为什么它说 7 预测器?我有 3 个输入和 5 个输出。我的公式有错误吗?
现在,我的问题是当我想根据 .尽管这张网训练得很好,但答案是不正确的。我的数据介于 0 和 1 之间,但预测范围不正确。
以下是预测代码:test_data
prediction_target <- predict(net, test_data, type = "raw")
test_data
还包括输入列和目标列。这是对的吗?因为在包中,我使用了:从中排除目标数据,然后根据它们进行预测。但是由于我在这里使用公式,我认为是正确的。(?)
此外,这些值采用数字格式,这与包提供的目标矩阵不同。nnet
test_inputs = test_data[, -target_cols]
test_data
test_data
predicted_target
nnet
我在这里做错了什么?
答: 暂无答案
评论