我正在处理我的人工智能问题,我正在按照此示例中的说明:
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
对于最后一个问题,如果训练次数少,那么您应该尝试线性内核