实际上,我正在尝试使用e1071包使用svm进行一些分类工作。当我把svm的精度调低到47%左右时,我就试着把它的精度调低到58%左右。我尝试过使用不同的成本和gamma值进行调整,但结果仍然相同。下面是我的一个调优代码示例:
未经调整的代码:
model<-svm(rating~.,data=train,kernel="radial")
summary(model)
Predictor<-predict(model,test)
confusionMatrix(table(Predictor,test$rating))
summary(tune.svm(rating ~ ., data = train,
+ kernel = "radial", gamma = 10^(-1:1), cost = 10^(-1:1)))
Parameter tuning of âsvmâ:
- sampling method: 10-fold cross validation
- best parameters:
gamma cost
0.1 0.1
对于没有调优的代码,我得到了大约57%的准确率。以下是我的调整代码:
> tuned<-svm(rating~.,data=train,kernel="radial",cross=10,gamma=0.1,cost=0.1)
> Prediction<-predict(tuned,test)
> confusionMatrix(table(Prediction,test$rating))
Confusion Matrix and Statistics
Predictor_1 1 2 3
1 0 0 0
2 257 467 257
3 0 0 0
Overall Statistics
Accuracy : 0.476
我也试过设置:
1. gamma = 10^c(-1:10), cost = 10^c(10,20,30,40,50,60,70,80,90,100)
2. gamma = 10^c(10,20,30,50,60,70,80,90,100), cost =
10^c(10,20,30,40,50,60,70,80,90,100)))
3. gamma = 10^c(-1:20), cost = 10^c(10,20,30,40,50,60,70,80,90,100)
结果仍然完全一样。为什么会这样?我该怎么做呢?有什么建议吗?提前谢谢。