我的工作我的人工智能问题,我下面从这个例子说明:支持向量机参数matlab的
在那里,他们用支持向量机进行分类:
classifier = fitcecoc(trainingFeatures, trainingLabels, ...
'Learners', 'Linear', 'Coding', 'onevsall', 'ObservationsIn', 'columns');
我用我自己的数据集试过了这个例子,它有一个89.5%的热情 它工作得很好,但现在我想尝试用我自己的设置而不是默认的settin自己的SVM GS。
我在fitcecoc
默认使用支持线性内核的支持向量机 的文档中阅读,现在我想尝试不同的内核,例如高斯和多项式。
我知道机器学习coursera当然,SVM有一个参数(安德鲁NG指它为C)并且每个内核也有它自己的参数。此外,我发现信息有关此Mathworks公司网址的内核参数:
根据该链接....
- 高斯内核拥有其参数SIGMA
- 和多项式内核有它的参数P这是多项式的顺序 func
所以我写下这段代码:
Oursvm = templateSVM('KernelFunction','polynomial');
classifier = fitcecoc(trainingFeatures, trainingLabels,'Learners',...
Oursvm,'Coding', 'onevsall', 'ObservationsIn', 'columns');
现在,我想改变P参数,在模板SVM Doumentation我发现,我可以将其设置是这样的:
Oursvm = templateSVM('KernelFunction','polynomial','PolynomialOrder',9);
的默认值是3,但不管我用PolynomialOrder其数量,accurracy是总是相同3.2258对于p = 1或p = 2甚至p = 9
这不是很奇怪吗?
我错过了什么?
另外如何设置SIGMA参数为高斯内核?因为使用默认配置进行训练的准确度非常低,并且在SVM模板文档中,他们没有指定如何清楚地设置此参数。
如何设置我的SVM的C参数?
最后我已阅读,你需要至少10次的训练样本 比输入数据的维度,它怎么可能是深 学习的榜样只使用201个样本(67为每个类,三 类总)如果输入数据的尺寸是4096?