【问题标题】:how can i use grid.py for parameter selection?如何使用 grid.py 进行参数选择?
【发布时间】:2012-04-14 10:29:41
【问题描述】:

我想为 C-SVM 分类选择参数 c 和 gamma,使用 带有 libsvm\tools\grid.py 的 RBF(径向基函数)内核,但我不知道这怎么可能?我安装了 libsvm 和 gnuplot 和 python 并在 python 中运行了 grid.py,但是它有错误并且没有显示结果。

【问题讨论】:

    标签: libsvm


    【解决方案1】:
    %grid of parameters
    folds = 5; 
    [C,gamma] = meshgrid(-5:2:15, -15:2:3); 
    %# grid search, and cross-validation 
    cv_acc = zeros(numel(C),1); 
    d= 2;
    for i=1:numel(C)   
        cv_acc(i) = svmtrain(TrainLabel,TrainVec, ...          
            sprintf('-c %f -g %f -v %d -t %d', 2^C(i), 2^gamma(i), folds,d));
    end
    %# pair (C,gamma) with best accuracy
    [~,idx] = max(cv_acc); 
    %# contour plot of paramter selection 
    contour(C, gamma, reshape(cv_acc,size(C))), colorbar
    hold on;
    text(C(idx), gamma(idx), sprintf('Acc = %.2f %%',cv_acc(idx)), ...  
        'HorizontalAlign','left', 'VerticalAlign','top') 
    hold off 
    xlabel('log_2(C)'), ylabel('log_2(\gamma)'), title('Cross-Validation Accuracy') 
    %# now you can train you model using best_C and best_gamma
    best_C = 2^C(idx); best_gamma = 2^gamma(idx); %# ...
    

    这也执行网格搜索...但使用 matlab...不使用 grid.py...也许这有帮助...

    【讨论】:

    • 对不起,我不明白函数svmtrain的返回值。它应该是一个返回的模型。为什么你把它当作一个准确性,它是什么准确性?谢谢!
    • @lakesh:在这里,对于这个网格搜索和选择参数,它需要将所有数据(训练和测试)作为输入提供给“svmtrain”,或者有另一种处理方式数据?
    【解决方案2】:

    您可以使用提供的 matlab 脚本代替 grid.py 常见问题解答

    问:如何使用 MATLAB 界面进行参数选择? http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f803

    bestcv = 0;
    for log2c = -1:3,
      for log2g = -4:1,
        cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
        cv = svmtrain(heart_scale_label, heart_scale_inst, cmd);
        if (cv >= bestcv),
          bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
        end
        fprintf('%g %g %g (best c=%g, g=%g, rate=%g)\n', log2c, log2g, cv, bestc, bestg, bestcv);
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      相关资源
      最近更新 更多