0

我想创建一个包含 2 个类和 3 个特征的合成数据集,用于测试具有 RBF 内核的 SVM 分类器的超参数优化技术。超参数是 gamma 和 C(成本)。

我创建了我当前的 3D 合成数据集,如下所示:

  1. 我通过分别具有均值 (1,0,0) 和 (0,1,0) 以及单位方差的多元正态分布进行采样,为每个类创建了 10 个基于点。

  2. 我通过随机选择一个基点,然后从平均值等于所选基点和方差 I/5 的正态分布中采样一个新点,为每个类添加了更多点。

如果我可以从数据集中(在运行 SVM 之前)确定最佳 C 和 gamma,那将是一件非常酷的事情,这样我就可以查看我的优化技术是否最终为我提供了最佳参数。

是否有可能从上述合成数据集中计算出最佳的 gamma 和 C 参数?

或者有没有办法创建一个已知最佳 gamma 和 C 参数的合成数据集?

4

1 回答 1

1

非常有趣的问题,但答案是否定的。它完全是数据特定的,即使确切地知道分布,除非你有一个无限的样本,否则在数学上不可能证明最好的 C/gamma,因为 SVM 最终是纯粹基于点的方法(而不是基于密度估计)。典型的比较是在不同的场景中完成的——你获取真实数据,并使用其他技术拟合超参数,如高斯过程(贝叶斯优化)等,这些技术生成基线(并且可能也会达到最佳 C 和 gamma,或者至少非常接近给他们)。最后,寻找最佳 C 和 gamma并不是一个复杂的问题,因此只需长时间运行良好的技术(如bayesopt),您就会得到最适合的比较。此外,请记住超参数优化的任务不是要找到特定的 C 和 gamma,而是要找到产生最佳结果的超参数,事实上,即使对于 SVM,也可能有许多“最佳” C 和 gammas 集,都产生相同的结果(就您的有限数据集)尽管彼此相距很远。

于 2016-05-10T20:17:18.517 回答