gpt4 book ai didi

matlab - 支持向量机参数 matlab

转载 作者:行者123 更新时间:2023-11-30 09:52:02 25 4
gpt4 key购买 nike

我正在解决我的人工智能问题,并且按照此示例中的说明进行操作:

Matlab Deep Learning Example

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

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

我用自己的数据集尝试了这个例子,它的准确率为 89.5%它工作得很好,但现在我想用我自己的设置而不是默认设置尝试使用我自己的 SVM。

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

我知道在 coursera 的机器学习类(class)中,SVM 有一个参数(Andrew NG 将其称为 C),而且每个内核都有自己的参数。我还在此 Mathworks URL 中找到了有关内核参数的信息:

Kernel paramters...

根据该链接......

  • 高斯核有其参数SIGMA
  • 多项式核函数的参数 P 是多项式的阶数函数

所以我写下了这段代码:

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

现在,我想更改 P 参数,在 Template SVM Doumentation 中我发现可以这样设置:

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

Template SVM

默认值为 3,但无论我对 PolynomialOrder 使用哪个数字,对于 p = 1 或 p = 2 甚至 p = 2,精度始终相同3.2258 p = 9

是不是很奇怪?

  • 我错过了什么?

  • 另外,如何设置高斯核的SIGMA参数?因为使用默认配置训练的准确度很低,并且在SVM模板文档中他们没有明确说明如何设置该参数。

  • 如何设置 SVM 的 C 参数?

  • 最后我读到你需要至少 10 倍的训练样本比输入数据的维度,深度怎么可能学习示例仅使用 201 个样本(每个类别 67 个,三个类总数)如果输入数据的维度是 4096?

最佳答案

Andrew Ng 在 week7 kernels2 视频中描述了您的问题:

大 C - 偏差较低,方差较高(容易过度拟合)

小 C - 提供较高的偏差、较低的方差(容易欠拟合)

高斯核的西格玛相反:

大西格玛 - 提供更高的偏差、低方差(容易欠拟合)

小西格玛 - 偏差较低,方差较高(容易过度拟合)

所以你可以尝试及时调整一个参数。因此,作为安德鲁,我看不出使用多项式内核的理由。通常足够线性和高斯,这取决于数量示例和特征。 GL

对于最后一个问题,如果训练示例数量较少且功能较多,您应该尝试线性内核

关于matlab - 支持向量机参数 matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com