我实际上是尝试使用e1071软件包使用svm进行一些分类工作。问题是在我使用svm函数进行调整之前,我得到了大约58%的准确度,但是当我尝试调整它时,精度大幅下降了10%到47%。我尝试使用不同的成本和伽玛值进行调整,但结果仍然相同。我的一个调优代码的例子我将在这里为你们提供:
没有调整的代码:
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)
结果仍然完全相同。为什么会这样?我应该做些什么呢?有什么建议?提前谢谢。