首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVM预测值下降

SVM预测值下降
EN

Stack Overflow用户
提问于 2019-07-27 11:28:17
回答 1查看 156关注 0票数 0

我在一个数据集上运行支持向量机模型,它在列车/拟合模型上运行得很好。但是,当我为预测/测试数据运行它时,由于某种原因,它似乎是在丢弃行,当我试图将'pred_SVM‘返回到数据集中时,长度是不同的。下面是我的代码

代码语言:javascript
复制
#SVM MODEL
 SVM_swim <- svm(racetime_mins ~ event_date+ event_month +year 
 +event_id + 
              gender + place + distance+ New_Condition+
              raceNo_Updated +  
              handicap_mins +points+
              Wind_Speed_knots+ 
              Air_Temp_Celsius +Water_Temp_Celsius +Wave_Height_m,
          data = SVMTrain, kernel='linear')
summary(SVM_swim)

#Predict Race_Time Using Test Data
pred_SVM <- predict(SVM_swim, SVMTest, type ="response")
View(pred_SVM)
#Add predicted Race_Times back into the test dataset.
SVMTest$Pred_RaceTimes<- pred_SVM
View(SVMTest) #Returns 13214 rows
View(pred_SVM) #Returns 12830

$<-.data.frame中的错误(*tmp*,Pred_RaceTime,value = c(2 = 27.1766438249356 ),:替换有12830行,数据有13214行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-27 13:26:28

正如命令中提到的,您需要去掉数据集中的NA值。支持向量机正在为您处理它,因此,pred_SVM输出是计算的,而不需要 NA值。

要测试数据中是否存在NA,只需运行:sum(is.na(SVMTest))

我很肯定你会看到一个大于零的数字。

在开始构建支持向量机算法之前,删除所有的NA值,

代码语言:javascript
复制
dataset <- dataset[complete.cases(dataset), ]

然后,在将数据分离到可以运行的列车和测试集之后,

代码语言:javascript
复制
SVM_swim <- svm(.....,data = SVMTrain, kernel='linear')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57231671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档