我在一个数据集上运行支持向量机模型,它在列车/拟合模型上运行得很好。但是,当我为预测/测试数据运行它时,由于某种原因,它似乎是在丢弃行,当我试图将'pred_SVM‘返回到数据集中时,长度是不同的。下面是我的代码
#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行
发布于 2019-07-27 13:26:28
正如命令中提到的,您需要去掉数据集中的NA值。支持向量机正在为您处理它,因此,pred_SVM输出是计算的,而不需要 NA值。
要测试数据中是否存在NA,只需运行:sum(is.na(SVMTest))
我很肯定你会看到一个大于零的数字。
在开始构建支持向量机算法之前,删除所有的NA值,
dataset <- dataset[complete.cases(dataset), ]然后,在将数据分离到可以运行的列车和测试集之后,
SVM_swim <- svm(.....,data = SVMTrain, kernel='linear')https://stackoverflow.com/questions/57231671
复制相似问题