I am trying to build a SVM classifier for medical data (https://drive.google.com/file/d/1lIehAVBzR5B1NHS6-ozvqpJ9TRNK0VJu/view?usp=sharing) but I can't find the reason why it is always predicting recid as NO. It is happening even when the probability of YES is over 50%.
library(e1071)
library(caTools)
df <- read.table('datos_icb.txt',header=TRUE, stringsAsFactors = TRUE)
sample = sample.split(df$recid, SplitRatio = 0.75)
train = subset(df, sample == TRUE)
test = subset(df, sample == FALSE)
tune.out=tune(svm,recid~.,data=df,
ranges=list(cost=c(0.001, 0.01, 0.1, 1,5,10,100),
gamma = c(0.5, 1, 2, 3,4)))
summary(tune.out)
bestmod=tune.out$best.model
summary(bestmod)
ypred <- predict(bestmod, test)
table(predict=ypred, truth=test$recid)
Could it be a data type problem?
Thanks in advance.
question from:
https://stackoverflow.com/questions/66061470/how-to-perform-cross-validation-for-svm-in-r 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…