为什么我的SVM精度在调整后应该会增加?

时间:2018-05-21 08:08:33

标签: r machine-learning classification svm cross-validation

我实际上是尝试使用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)

结果仍然完全相同。为什么会这样?我应该做些什么呢?有什么建议?提前谢谢。

0 个答案:

没有答案