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