支持向量机参数MATLAB



我正在处理我的人工智能问题,我正在按照此示例中的说明:

matlab深度学习示例

在那里,他们使用支持向量机进行分类:

classifier = fitcecoc(trainingFeatures, trainingLabels, ...
    'Learners', 'Linear', 'Coding', 'onevsall', 'ObservationsIn', 'columns');

我尝试了使用我自己的数据集的示例,它的氧气为89.5%它运行良好,但是现在我想使用自己的设置而不是默认设置尝试自己的SVM。

我在文档中读到fitcecoc使用带有线性内核的SVM默认情况下,现在我想尝试不同的内核,例如高斯和多项式。

我知道Coursera的机器学习课程,SVM具有一个参数(Andrew ng称为C(,并且每个内核都有其自己的参数。我还找到了有关此Mathworks URL中内核参数的信息:

内核参数...

根据该链接....

  • 高斯内核具有其参数 Sigma
  • 和多项式内核具有其参数 p ,这是多项式的顺序功能

所以我写下了此代码:

Oursvm = templateSVM('KernelFunction','polynomial');
classifier = fitcecoc(trainingFeatures, trainingLabels,'Learners',...
    Oursvm,'Coding', 'onevsall', 'ObservationsIn', 'columns');

现在,我想更改P参数,在模板SVM求婚中,我发现我可以这样设置它:

Oursvm = templateSVM('KernelFunction','polynomial','PolynomialOrder',9);

模板SVM

默认值为3,但是无论我用于多项式订单的数字,精度均为始终相同的 3.2258 for P = 1或p = 2甚至p = 9

这不是很奇怪吗?

  • 我缺少什么?

  • 还如何设置高斯内核的 Sigma 参数?因为使用默认配置进行培训,弹药率很低,在SVM模板文档中,他们没有指定如何清楚地设置此参数。

  • 如何设置SVM的C参数?

  • 最后,我读到您至少需要10次培训样品比输入数据的维度,如何有可能学习示例仅使用201个样本(每个班级有67个样本,三个总类(如果输入数据的尺寸为4096?

andrew ng描述了您在Week7内核上的问题:

大c-给出较低的偏差,高方差(容易拟合(

小C-给出较高的偏见,较低的差异(容易拟合不足(

高斯内核的Sigmas相反:

大西格玛 - 给出更高的偏见,差异较低(容易拟合不足(

小西格玛 - 给出较低的偏见,高方差(容易过度拟合(

因此,您可以尝试及时调整一个参数。因此,作为安德鲁(Andrew(,我看不出使用多项式内核的原因。通常取决于数字示例和特征的enogh线性和高斯。gl

对于最后一个问题,如果训练次数少,那么您应该尝试线性内核

最新更新