【问题标题】:The meaning of the output from grid.py in libsvmlibsvm 中 grid.py 输出的含义
【发布时间】:2015-03-09 02:56:54
【问题描述】:

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

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

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

  1. 此工具的作用是:给定标签/特征参数集,通过执行网格搜索选择最“有效”和“最小”的特征参数。我说的对吗?

例如给定如下数据集,其标签仅依赖于 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. 如果上述问题的答案是肯定的,我怎么知道哪些参数是有效的和最小的?我看到了一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想做的事?

【问题讨论】:

    标签: machine-learning svm libsvm


    【解决方案1】:

    [...] 给定标签/特征参数集,选择最“有效”和“最小”的特征参数 [...]

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

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

    。当然,与第一个特征(错误地命名为 param1)有完美的相关性。但是与第三个特征(名为 param3)也有很好的相关性。 SVM 将利用所有输入特征。只有不变的特征才能保证是无用的。它们在缩放/训练中被省略。

    如果我们将 grid.py 应用于这个数据集,它是否告诉我最“有效”(以它精确识别测试数据类别的方式)和“最小”(以仅不包含琐碎的参数)参数是param1。

    。你说的是feature selection/reduction

    【讨论】:

      【解决方案2】:

      大概找到了答案。


      问题1.这个工具的作用是:给定标签/特征参数集,通过执行网格搜索选择最“有效”和“最小”的特征参数。我说的对吗?

      答案是否定的。 grid.py 执行grid search 并估计最佳costgamma 值。因此,无论如何它有助于使 SVM “高效”,但并非无助于找到最小的特征集(嗯,可能没有“绝对最小值”,因为准确度和特征的数量可能成正比)。

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

      可能没有任何事实上的标准方法。或许在决定特征参数时,我们应该先从领域的角度进行接近,然后再用数学的方式进行调整。 (例如,如果您要让 SVM 来识别恶意软件和良性应用程序,您应该考虑恶意软件的行为和趋势,并首先确定“参数候选”,然后应用数学方法,例如计算每个特征的平均值和偏差。)

      【讨论】:

        猜你喜欢
        • 2013-05-14
        • 2016-07-24
        • 2015-02-16
        • 2015-04-12
        • 2013-02-21
        • 2015-03-22
        • 2012-07-09
        • 1970-01-01
        • 2014-08-01
        相关资源
        最近更新 更多