代码之家  ›  专栏  ›  技术社区  ›  AdeeThyag

为什么我的支持向量机精度在调整后下降,而它应该增加?

  •  0
  • AdeeThyag  · 技术社区  · 6 年前

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

    结果仍然完全一样。为什么会这样?我该怎么做呢?有什么建议吗?提前谢谢。

    0 回复  |  直到 6 年前