libsvm中grid.py输出的含义
The meaning of the output from grid.py in libsvm
我是 SVM 的新手,对 libsvm 中的工具有几个问题。
tools/grid.py tools/README 解释为 "parameter selection tool for C-SVM classification using 47 the RBF (radial basis function) kernel".
我有 2 个关于此工具的问题。
- 此工具的作用是:给定 label/feature_parameters 组,通过执行网格搜索选择最多的 "efficient" 和 "minimum" feature_parameters。我说得对吗?
例如给定如下数据集,其标签仅依赖于 param1,
label, param1, param2, param3
0 , 0 , 61 , 2
0 , 0 , 92 , 6
1 , 1 , 10 , 32
1 , 1 , 83 , 10
如果我们将 grid.py 应用于此数据集,它是否告诉我大多数 "efficient"(以它精确识别测试数据的 class 的方式)和 "minimum"(以不包含琐碎参数的方式)参数为param1.
- 如果上面问题的答案是肯定的,我怎么知道哪些参数是有效的和最小的?我看到了一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想做的事?
可能找到答案了。
问题 1. 这个工具的作用是:给定集合 label/feature_parameters,通过执行网格搜索选择最多的 "efficient" 和 "minimum" feature_parameters。我说得对吗?
答案是否定的。
grid.py 执行 grid search 并估计最佳 cost
和 gamma
值。所以它有助于使 SVM "efficient" 无论如何,但不会帮助找到最小特征集(好吧,可能没有 "absolute minimum",因为准确性和特征数量可能成正比)。
问题2.如果上面问题的答案是YES,我怎么知道哪些参数是有效的和最小的?我看到了一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想做的事?
可能没有任何事实上的标准方法。也许在确定特征参数时,我们应该首先从领域的角度出发,然后再从数学的角度进行调整。 (例如,如果您正在制作 SVM 来区分恶意软件和良性应用程序,您应该考虑恶意软件的行为和趋势,并首先确定 "parameter candidates",然后应用数学方法,例如计算每个特征的平均值和偏差。)
[...] 给定 label/feature_parameters 组,选择最多 "efficient" 和 "minimum" feature_parameters [...]
否。 Grid.py 是一种在给定特征向量集上进行网格搜索以寻找最佳训练参数的工具。这些参数 c、g 随后用于训练。不要混淆训练工具的数据(称为特征向量)和参数。您实际上在 table "params" 中命名了具有误导性的功能。
[...] 数据集如下,其标签仅依赖于 param1 [...].
否。当然,与第一个特征(命名为 param1 的名字很糟糕)有着完美的相关性。但是与第三个特征(名为 param3)也有很好的相关性。 SVM 将利用所有输入特征。只有不变的特征才能保证是无用的。 scaling/training 中省略了它们。
如果我们将 grid.py 应用于此数据集,它是否告诉我大多数 "efficient"(以它精确识别测试的 class 的方式data) 和 "minimum" (以不包含琐碎参数的方式)参数是 param1.
否。你说的是feature selection/reduction.
我是 SVM 的新手,对 libsvm 中的工具有几个问题。
tools/grid.py tools/README 解释为 "parameter selection tool for C-SVM classification using 47 the RBF (radial basis function) kernel".
我有 2 个关于此工具的问题。
- 此工具的作用是:给定 label/feature_parameters 组,通过执行网格搜索选择最多的 "efficient" 和 "minimum" feature_parameters。我说得对吗?
例如给定如下数据集,其标签仅依赖于 param1,
label, param1, param2, param3
0 , 0 , 61 , 2
0 , 0 , 92 , 6
1 , 1 , 10 , 32
1 , 1 , 83 , 10
如果我们将 grid.py 应用于此数据集,它是否告诉我大多数 "efficient"(以它精确识别测试数据的 class 的方式)和 "minimum"(以不包含琐碎参数的方式)参数为param1.
- 如果上面问题的答案是肯定的,我怎么知道哪些参数是有效的和最小的?我看到了一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想做的事?
可能找到答案了。
问题 1. 这个工具的作用是:给定集合 label/feature_parameters,通过执行网格搜索选择最多的 "efficient" 和 "minimum" feature_parameters。我说得对吗?
答案是否定的。
grid.py 执行 grid search 并估计最佳 cost
和 gamma
值。所以它有助于使 SVM "efficient" 无论如何,但不会帮助找到最小特征集(好吧,可能没有 "absolute minimum",因为准确性和特征数量可能成正比)。
问题2.如果上面问题的答案是YES,我怎么知道哪些参数是有效的和最小的?我看到了一些输出文件,但对我来说没有意义。如果不是,是否有任何事实上的标准方法来做我想做的事?
可能没有任何事实上的标准方法。也许在确定特征参数时,我们应该首先从领域的角度出发,然后再从数学的角度进行调整。 (例如,如果您正在制作 SVM 来区分恶意软件和良性应用程序,您应该考虑恶意软件的行为和趋势,并首先确定 "parameter candidates",然后应用数学方法,例如计算每个特征的平均值和偏差。)
[...] 给定 label/feature_parameters 组,选择最多 "efficient" 和 "minimum" feature_parameters [...]
否。 Grid.py 是一种在给定特征向量集上进行网格搜索以寻找最佳训练参数的工具。这些参数 c、g 随后用于训练。不要混淆训练工具的数据(称为特征向量)和参数。您实际上在 table "params" 中命名了具有误导性的功能。
[...] 数据集如下,其标签仅依赖于 param1 [...].
否。当然,与第一个特征(命名为 param1 的名字很糟糕)有着完美的相关性。但是与第三个特征(名为 param3)也有很好的相关性。 SVM 将利用所有输入特征。只有不变的特征才能保证是无用的。 scaling/training 中省略了它们。
如果我们将 grid.py 应用于此数据集,它是否告诉我大多数 "efficient"(以它精确识别测试的 class 的方式data) 和 "minimum" (以不包含琐碎参数的方式)参数是 param1.
否。你说的是feature selection/reduction.