libsvm中grid.py输出的含义

时间:2015-01-11 02:34:22

标签: machine-learning svm libsvm

我是SVM的新手,对libsvm中的工具有几个问题。

有tools / grid.py工具/ README解释为“使用47 RBF(径向基函数)内核进行C-SVM分类的参数选择工具”。

我有2个关于此工具的问题。

  1. 这个工具的作用是:给定标签/ feature_parameters,通过执行网格搜索选择最“有效”和“最小”的feature_parameters。我是对的吗?
  2. e.g。给定如下的数据集,其标签仅依赖于param1,

    label, param1, param2, param3
    0    , 0     , 61    , 2     
    0    , 0     , 92    , 6
    1    , 1     , 10    , 32
    1    , 1     , 83    , 10
    

    如果我们将grid.py应用于此数据集,它是否告诉我大多数“高效”(以它精确识别测试数据类的方式)和“最小”(以这种方式只有那么重要)参数包括在内)参数是param1。

    1. 如果上述问题的答案为是,我怎么知道哪些参数有效且最小?我看到一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想要的事情?

2 个答案:

答案 0 :(得分:1)

[...]给定标签/ feature_parameters,选择最“有效”和“最小”的feature_parameters [...]

即可。 Grid.py是一种工具,可以在给定特征向量集上搜索最佳训练参数。这些参数c,g随后用于训练。不要混淆训练工具的数据(称为特征向量)和参数。您实际上将表中的功能命名为“params”,这会产生误导。

[...]数据集如下,其标签仅依赖于param1 [...]

即可。当然,与第一个特征(名称为param1)完全相关。但是第三个特征(名为param3)也有很好的相关性。 SVM将使用所有输入功能。只有恒定的功能才能保证无用。它们在缩放/训练中被省略。

如果我们将grid.py应用于此数据集,它是否告诉我大多数“高效”(以精确识别测试数据类的方式)和“最小”(仅限于此方式)没有包含普通参数)参数是param1。

即可。你所说的是feature selection/reduction

答案 1 :(得分:0)

可能找到了答案。


问题1.这个工具的作用是:给定标签/ feature_parameters,选择最多"高效"和"最低" feature_parameters通过执行网格搜索。我是对的吗?

答案是否定的。 grid.py执行grid search并估算最佳costgamma值。因此,它有助于使SVM"高效"无论如何,但不是没有帮助找到最小的功能集(好吧,没有"绝对最小值"可能,因为准确性和功能的数量可能是成比例的)。

问题2.如果上述问题的答案为是,我怎么知道哪些参数有效且最小?我看到一些输出文件,但对我来说没有意义。如果它不是,是否有任何事实上的标准方法来做我想要的事情?

可能没有任何事实上的标准方法。也许在决定特征参数时,我们首先应该从领域的角度出发,然后用数学方法进行调整。 (例如,如果您正在制作SVM以破坏恶意软件和良性应用程序,您应该考虑恶意软件的行为和趋势,并决定参数候选者"首先,然后应用数学方法,如计算平均值和每个特征的偏差。)