我有一个理论问题,并且用高斯内核理解内核规模的概念,但是当我在Matlab中运行fitcsvm中的'OptimizeHyperparameters'时,它给出了不同于一个的值,我想了解这意味着什么...
线性内核svm中内核规模的高值是什么意思?并以多项式?
答案 0 :(得分:0)
请注意MATLAB帮助中的以下段落:
您不能将任何交叉验证名称/值对参数与“ OptimizeHyperparameters”名称/值对参数一起使用。您只能使用“ HyperparameterOptimizationOptions”的名称/值对参数来修改“ OptimizeHyperparameters”的交叉验证。
OptimizeHyperparameters值会覆盖您使用其他“名称/值”对参数设置的任何值。例如,将OptimizeHyperparameters设置为“ auto”会导致应用“ auto”值。
MATLAB将预测矩阵X的所有元素除以KernelScale的值。然后,该软件应用适当的内核范数来计算Gram矩阵。因此,较高的核比例值意味着必须将预测矩阵的所有元素都划分为较大的值。
KernelScale可以在[1e-3,1e3]之间。 Fitcsvm在正值中搜索,默认情况下在[1e-3,1e3]范围内进行对数缩放。
如果您指定KernelScale和您自己的内核函数,例如'KernelFunction','kernel',则该软件将引发错误。您必须在内核中应用缩放。