对于缺失数据的预测,R 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,它告诉您哪些算法可以实现

我试图使用e1071包中经过训练的SVM进行预测,但我的数据包含一些缺失值(NA)


我希望当该实例有任何缺少的值时,返回的预测为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
# ...