对于缺失数据的预测,R SVM返回NA
我试图使用e1071包中经过训练的SVM进行预测,但我的数据包含一些缺失值(NA)对于缺失数据的预测,R SVM返回NA,r,svm,R,Svm,我试图使用e1071包中经过训练的SVM进行预测,但我的数据包含一些缺失值(NA) 我希望当该实例有任何缺少的值时,返回的预测为NA。我尝试使用na.action=na.pass,如下所示,但如果您熟悉,它会给我一个错误“名称中的错误(ret2),您可以使用233种不同类型的模型进行拟合(包括e1071包中的SVM),在名为there的部分中,您可以找到一个csv,其中包含用于对算法进行分组的数据 其中有一列名为Handle Missing Predictor Data,它告诉您哪些算法可以实现
我希望当该实例有任何缺少的值时,返回的预测为NA。我尝试使用na.action=na.pass,如下所示,但如果您熟悉,它会给我一个错误“名称中的错误(ret2),您可以使用233种不同类型的模型进行拟合(包括e1071包中的SVM),在名为there的部分中,您可以找到一个csv,其中包含用于对算法进行分组的数据 其中有一列名为Handle Missing Predictor Data,它告诉您哪些算法可以实现您想要的功能。不幸的是,其中不包括SVM,但这些算法是:
- 增强分类树(ada)
- 袋装AdaBoost(AdaBag)
- AdaBoost.M1(AdaBoost.M1)
- C5.0(C5.0)
- 成本敏感型C5.0(C5.0成本)
- 单个C5.0规则集(C5.0规则)
- 单个C5.0树(C5.0树)
- 购物车(rpart)
- 购物车(rpart1SE)
- 购物车(第二部分)
- 成本敏感购物车(rpartCost)
- 购物车或顺序响应(rpartScore)
如果您仍然坚持使用SVM,您可以使用同一软件包中的KNIMPUTE选项,这将允许您对所有观察结果进行预测。您可以将所有有效案例分配回
tmp
集中的预测变量:
tmp[complete.cases(tmp), "predict"] <- predict(model, newdata=tmp[complete.cases(tmp),])
tmp
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species predict
#1 NA 3.5 1.4 0.2 setosa <NA>
#2 4.9 3.0 1.4 0.2 setosa setosa
#3 4.7 3.2 1.3 0.2 setosa setosa
# ...
tmp[complete.cases(tmp),“predict”]您可以将所有有效的案例分配回tmp
set-tmp[complete.cases(tmp),“predict”]谢谢,这太棒了。考虑到我必须使用支持向量机,并且需要NA而不是插补,这是一种方法。
tmp[complete.cases(tmp), "predict"] <- predict(model, newdata=tmp[complete.cases(tmp),])
tmp
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species predict
#1 NA 3.5 1.4 0.2 setosa <NA>
#2 4.9 3.0 1.4 0.2 setosa setosa
#3 4.7 3.2 1.3 0.2 setosa setosa
# ...