3

我正在尝试使用caret包对一些栅格数据进行分类。一切正常,RandomForest我只想尝试 SVM 分类器,但出现错误。

数据从不同的栅格聚合(1x1 km,50cm 分辨率聚合到 2.5m,统计数据为 max、min、mean、median 和 std),存储在如下数据框中:

具有分类训练数据的未缩放表

然后我使用以下代码缩放此数据(training_high_final 是训练表,第 1 列是“索引”,第 22 列是“类值”:

# scale and center data
thf_scaled <- as.data.frame(scale(training_high_final[,c(-1,-22)], center= T, scale = T))
# Reset Row Numbers
rownames(thf_scaled) <- seq(length=nrow(thf_scaled))
thf_scaled$index <- training_high_final$index
thf_scaled$id <- as.factor(training_high_final$classvalue)

缩放表如下所示: 缩放表

发生错误的反向特征消除的代码:

# RFE-Control
# for random forest
# ctrl_rfe <- rfeControl(method = "repeatedcv", number = 9, repeats= 5, functions = rfFuncs, allowParallel = T)
# for SVM
ctrl_rfe <- rfeControl(method = "repeatedcv", number = 9, repeats= 5, allowParallel = T)
sizes = c(1:20)

# RFE (Col 21 is index (not needed), Col 22 the classvalue)
rfe_high <- rfe(thf_scaled[,c(-21,-22)], thf_scaled[,22], sizes = sizes, rfeControl = ctrl_rfe, method="lssvmPoly")

结果:

> rfe_high <- rfe(thf_scaled[,c(-21,-22)], thf_scaled[,22], sizes = sizes, rfeControl = ctrl_rfe, method="lssvmPoly")
Error in { : task 1 failed - "missing value where TRUE/FALSE needed"

我之前尝试过更多变量(现在只有 20 个,在我有 ~80 个之前)并得到了错误

任务 1 失败 - “停止”。

有 170 个没有 NA 数据的训练样本。

4

0 回答 0