SVM 预测正在丢弃值
SVM Prediction is dropping values
我 运行 在数据集上建立 SVM 模型,运行 在 train/fitted 模型上表现良好。但是,当我 运行 它用于 prediction/test 数据时,它似乎出于某种原因正在删除行,当我尝试将 '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
如命令中所述,您需要删除数据集中的 NA
值。 SVM 正在为您处理它,因此 pred_SVM
输出计算 没有 NA 值。
要测试您的数据中是否存在 NA
,只需 运行 : sum(is.na(SVMTest))
我很确定您会看到一个大于零的数字。
在开始构建 SVM 算法之前,通过
删除所有 NA
值
dataset <- dataset[complete.cases(dataset), ]
然后将数据分成训练集和测试集后,您可以 运行 ,
SVM_swim <- svm(.....,data = SVMTrain, kernel='linear')
我 运行 在数据集上建立 SVM 模型,运行 在 train/fitted 模型上表现良好。但是,当我 运行 它用于 prediction/test 数据时,它似乎出于某种原因正在删除行,当我尝试将 '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
如命令中所述,您需要删除数据集中的 NA
值。 SVM 正在为您处理它,因此 pred_SVM
输出计算 没有 NA 值。
要测试您的数据中是否存在 NA
,只需 运行 : sum(is.na(SVMTest))
我很确定您会看到一个大于零的数字。
在开始构建 SVM 算法之前,通过
删除所有NA
值
dataset <- dataset[complete.cases(dataset), ]
然后将数据分成训练集和测试集后,您可以 运行 ,
SVM_swim <- svm(.....,data = SVMTrain, kernel='linear')