fitcecoc 修改线性核核函数为rbf核函数

博主发现fitcecoc默认使用线性核函数,而非RBF。通过查阅帮助文档,发现可能因样本特征维数导致选择线性核。这引发疑问:是否在某些情况下,fitcecoc会自动选择更适合的核函数,使得手动调参变得多余。尽管如此,理解核函数的选择仍然很重要。
摘要由CSDN通过智能技术生成

之前为了换核函数,调参数,学了libsvm,但是今天突然发现了这个东西,难过,卡了我一个学期的东西,半天解决了,做了好多无用功…
感谢博主 kekeicon
参考 https://blog.csdn.net/kekeicon/article/details/72812097

%classifer = fitcecoc(featuresTrain,trainLabels); %这样写是线性核函数

t = templateSVM('Standardize',true,'KernelFunction','RBF');%改成RBF,测试结果很坏
classifer = fitcecoc(eaturesTrain,trainLabels,'Learners',t);

t = templateSVM('Standardize',true,'KernelFunction','linear');%改成线性核,测试结果和第一行代码差不多
classifer = fitcecoc(eaturesTrain,trainLabels,'Learners',t);

t = templateSVM('KernelFunction','linear');%改成线性核,测试结果和第一行代码完全一致
classifer = fitcecoc(eaturesTrain,trainLabels,'Learners',t);

关于那个默认核函数,我查了help文档也没有看到哪里把线性核函数列为默认了,只是在templateSVM的帮助文档里面看到了这个

在 MATLAB 中,许多函数都有一些可选的 Name-Value 参数,这些参数通常用于定制函数的行为。`templateSVM` 函数也不例外,它提供了几个可选的 Name-Value 参数,用于控制支持向量机的训练过程和性能。 下面是一些常用的 Name-Value 参数及其含义: - `'KernelFunction'`:指定核函数类型,可选值为 `'linear'`(线性核函数,默认值)、`'rbf'`(径向基函数)、`'polynomial'`(多项式核函数)等。 - `'KernelScale'`:指定核函数的尺度参数,用于控制支持向量机的复杂度。 - `'BoxConstraint'`:指定软间隔约束的惩罚参数,用于控制支持向量机的泛化能力。 - `'Standardize'`:指定是否对输入数据进行标准化处理,可选值为 `true` 或 `false`(默认值)。 - `'Solver'`:指定求解器类型,可选值为 `'SMO'`(序列最小优化算法,默认值)或 `'ISDA'`(增量梯度下降算法)。 这些参数可以通过传递一个结构体作为第二个输入参数来进行设置。例如,以下代码定义了一个使用径向基函数、惩罚参数为 1、标准化处理输入数据的支持向量机分类器: ``` matlab svm = templateSVM('KernelFunction', 'rbf', 'BoxConstraint', 1, 'Standardize', true); ``` 然后,可以将 `svm` 对象传递给 `fitcecoc` 函数进行多分类训练。在训练过程中,`fitcecoc` 函数会自动调用 `templateSVM` 函数来生成多个支持向量机分类器,并对每个分类器使用相同的参数设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值