【问题标题】:Training Output of LIBLINEARLIBLINEAR 的训练输出
【发布时间】:2013-02-13 19:46:37
【问题描述】:

我正在尝试 libSVM 包,使用 RBF 和线性分类,我遵循(我认为)他们的 README 文件中的所有建议。

我有一个大文件要训练 (70K),所以我尝试使用 liblinear 而不是 RBF。

唯一的问题是我在训练阶段后无法获取模型,我的命令行如下所示:

./train -c 4 -v 5 -s 6 TrainingSet.scal TrainingSet.scal.Model

训练完成后,我得到了准确度估计,但是当我查看 *.model 文件以将其用于我的测试集时,我根本找不到它。

您认为这是包中的错误还是我在这里遗漏了什么?

谢谢

辐射

【问题讨论】:

    标签: machine-learning svm libsvm


    【解决方案1】:

    选项 -v 5 表示您正在对训练集进行 5 倍评估。如果启用此选项,则 liblinear 使用 5-fold 评估估计错误并且不输出模型。

    如果要输出模型,则不要使用-v 5。在这种情况下,Tt不会输出训练错误。但是您可以使用 liblinear-predict 来估计测试集上的错误。

    【讨论】:

      【解决方案2】:

      我通常直接在代码上使用该库,但我认为在您的情况下没有执行培训,因为您使用的是我认为未定义的选项 -s 6。

      这是用法:

      ` -s svm_type : 设置SVM的类型(默认0)

      0 -- C-SVC      (multi-class classification)
      1 -- nu-SVC     (multi-class classification)
      2 -- one-class SVM  
      3 -- epsilon-SVR    (regression)
      4 -- nu-SVR     (regression)
      

      ` 您还省略了内核类型

      -t kernel_type : set type of kernel function (default 2)
      0 -- linear: u'*v
      1 -- polynomial: (gamma*u'*v + coef0)^degree
      2 -- radial basis function: exp(-gamma*|u-v|^2)
      3 -- sigmoid: tanh(gamma*u'*v + coef0)
      4 -- precomputed kernel (kernel values in training_set_file)
      

      希望这会成功。

      【讨论】:

      • 但是我使用 liblinear 包 link 而不是 libsvm 本身,他们的 ./train 程序有 -s 到 13,正如这里提到的 link
      • @Rad 嗯,这样一个小细节:P 我没有使用过那个版本的库,但我会看看,让你知道。您是否已经尝试过使用普通的 libsvm?
      • 我发现我们在知道正确的参数后训练时不必使用 -v 选项(不需要交叉验证),然后我们就有了输出模型
      • 太棒了!你应该写下答案并批准它以供将来参考:)
      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多