我想创建一个由2个类和3个特征组成的合成数据集,用于测试具有RBF内核的SVM分类器的超参数优化技术。超参数是gamma和C(成本)。
我创建了当前的3D合成数据集,如下所示:
我通过从多元正态分布中采样,分别使用均值(1,0,0)和(0,1,0)以及单位方差,为每个类创建了10个基点。
我通过随机选取一个基点,然后从正态分布中采样一个新点,其均值等于所选择的基点和方差I / 5,为每个类添加了更多的点。
< / LI> 醇>如果我可以从数据集中确定最佳C和gamma(在运行SVM之前),这将是一件非常酷的事情,这样我就能看出我的优化技术最终是否为我提供了最佳参数。
是否有可能从上述合成数据集中计算出最佳的gamma和C参数?
或者有没有办法创建一个合成数据集,其中最好的gamma和C参数是已知的?
答案 0 :(得分:1)
非常有趣的问题,但答案是肯定的。它完全是数据特定的,即使确切地知道分布,除非你有无限样本,否则最不可能证明最佳C / gamma,因为SVM最终是纯粹的基于点的方法(与基于密度估计相反)。典型的比较是在不同的情况下完成的 - 你采用实际数据,并使用其他技术拟合超级实验,如高斯过程(贝叶斯优化)等,它们会产生基线(并且可能也会达到最佳C和γ,或至少真正关闭)给他们)。最后寻找最好的C和gamma 并不是一个复杂的问题,因此只需运行良好的技术(如bayesopt)更长的时间,你就可以得到你的optima进行比较。此外,请记住,超级优化任务的任务不是找到特定的C和伽玛,而是找到产生最佳结果的超级实验,事实上,即使对于SVM,可能有很多套优化&#34; C和gammas,尽管相距很远,但都产生相同的结果(就你的有限数据集而言)。