我是SVM的新手,对libsvm中的工具有几个问题。
有tools / grid.py工具/ README解释为“使用47 RBF(径向基函数)内核进行C-SVM分类的参数选择工具”。
我有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。
答案 0 :(得分:1)
[...]给定标签/ feature_parameters,选择最“有效”和“最小”的feature_parameters [...]
否即可。 Grid.py是一种工具,可以在给定特征向量集上搜索最佳训练参数。这些参数c,g随后用于训练。不要混淆训练工具的数据(称为特征向量)和参数。您实际上将表中的功能命名为“params”,这会产生误导。
[...]数据集如下,其标签仅依赖于param1 [...] 。
否即可。当然,与第一个特征(名称为param1)完全相关。但是第三个特征(名为param3)也有很好的相关性。 SVM将使用所有输入功能。只有恒定的功能才能保证无用。它们在缩放/训练中被省略。
如果我们将grid.py应用于此数据集,它是否告诉我大多数“高效”(以精确识别测试数据类的方式)和“最小”(仅限于此方式)没有包含普通参数)参数是param1。
否即可。你所说的是feature selection/reduction。
答案 1 :(得分:0)
可能找到了答案。
答案是否定的。
grid.py执行grid search并估算最佳cost
和gamma
值。因此,它有助于使SVM"高效"无论如何,但不是没有帮助找到最小的功能集(好吧,没有"绝对最小值"可能,因为准确性和功能的数量可能是成比例的)。
可能没有任何事实上的标准方法。也许在决定特征参数时,我们首先应该从领域的角度出发,然后用数学方法进行调整。 (例如,如果您正在制作SVM以破坏恶意软件和良性应用程序,您应该考虑恶意软件的行为和趋势,并决定参数候选者"首先,然后应用数学方法,如计算平均值和每个特征的偏差。)