我有一个数据集,我想构建一个模型,最好使用caret
包。我的数据实际上是一个时间序列,但问题并不特定于时间序列,只是我CreateTimeSlices
为数据分区工作。
我的数据有一定数量的缺失值NA
,我将它们与caret
代码分开估算。我还记录了他们的位置:
# a logical vector same size as the data, which obs were imputed NA
imputed=c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
imputed[imputed] <- NA; print(imputed)
#### [1] FALSE FALSE FALSE NA FALSE FALSE
我知道 Carettrain
函数中有一个选项可以NA
使用不同的技术排除或估算它们。那不是我想要的。我需要在已经估算的数据集上构建模型,但我想从误差指标(RMSE、MAE、...)的计算中排除估算点。
我不知道如何在插入符号中执行此操作。在我的第一个脚本中,我尝试手动进行整个交叉验证,然后我有一个自定义的错误度量:
actual = c(5, 4, 3, 6, 7, 5)
predicted = c(4, 4, 3.5, 7, 6.8, 4)
Metrics::rmse(actual, predicted) # with all the points
#### [1] 0.7404953
sqrt(mean( (!imputed)*(actual-predicted)^2 , na.rm=T)) # excluding the imputed
#### [1] 0.676757
我该如何处理这种方式caret
?还是有另一种方法可以避免手动编码所有内容?