我试图实现二进制svm。我收到以下错误消息:
Error in if (any(co)) { : missing value where TRUE/FALSE needed
以下代码:
library(e1071)
dataset <- read.csv("C:/Users/Backup/Desktop/pos.csv")
# Subset the dataset dataset to only 2 labels and 2 features
dataset.part = subset(dataset, label != 1)
dataset.part$label = factor(dataset.part$label)
# Fit svm model
fit = svm(label ~ ., data=dataset.part, type='C-classification', kernel='linear')
我在这行代码中收到错误:
# Fit svm model
fit = svm(label ~ ., data=dataset.part, type='C-classification', kernel='linear')
我是R的初学者,我不知道如何解决这个问题。有谁可以帮助我?
答案 0 :(得分:2)
我遇到了同样的问题,并且能够将其缩小到我的一行中的无限值。我的建议是先对数据进行预处理。在我的情况下,我可以省略na和无限值
# First cast Inf to NA
is.na(df) <- sapply(df, is.infinite)
# Now just omit NA
na.omit(df)
然而,对于一般问题的解决@FrFlick的解决方案是一个很好的解决方案。如果所有其他方法都失败了,那么对数据集进行二进制搜索以查看哪些数据点导致问题可能最简单