fitcsvm应用总结

本文详细介绍了Matlab中fitcsvm函数的基本参数,包括BoxConstraint(框约束)、KernelFunction(核函数)、KernelScale、PolynomialOrder、Standardize(标准化)和ClassNames,以及如何应用这些参数进行SVM训练。同时,讨论了调参工具OptimizeHyperparameters在自动优化超参数方面的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数介绍:基本参数设置fitcsvm函数和许多常见的matlab函数一样,其输入参数同样采用参数对(Name,Value)的形式;

  1. BoxConstraint 框约束,设置惩罚因子(或者说正则参数)使用,若设定正则参数,采用(Name,Value)的形式;如(测试数据,测试标签,BoxConstraint,1,);

这个参数和svmtrain里的-c是一个道理。其实际上涉及到软间隔SVM的间隔(Margin)大小。matlab默认的BoxConstraint为1。框约束的数值越大,意味着惩罚力度越小,最后得到的分类超平面的间隔越小,支持向量数越多,模型越复杂。因为该参数默认为1,所以使用默认参数训练时,我们采用的是软间隔SVM。

2 KernelFunction 核函数

该参数对应的输入为字符串型变量,例如‘KernelFunction’,‘linear’,fitcsvm共支持三类核函数,线性核 ‘linear’ ,多项式核 ‘polynomial’ ,以及高斯核 ‘rbf’ or ‘gaussian’,通常采用高斯核函数,('KernelFunction', 'gaussian',);

3 KernelScale 核规模

这个参数搭配高斯核SVM使用,一般设置('KernelScale',12,

4 PolynomialOrder 多项式次数

该参数搭配多项式核函数polynomial使用,代表所采用的多项式核的次数/阶数。采用高斯函数 不采用该信息,设置为[];

5 Standardize 标准化

该参数对应的输入为logical变量,true or false开启标准化后,matlab会根据样本数据对应的加权列均值和标准差来对所有的样本数据进行标准化,这在一定程度上可以抵消原始样本特征数值的分布对分类造成的干扰。

6 ClassNames 类名称

该参数表示了训练集内的样本类名称,例如对于一个二分类任务,我定义这两个类的名称为0和1,那么该参数可设置为 ‘ClassNames’, [0; 1]

7 基本参数的应用

介绍了上面这六个基本参数,其最简单的应用代码如下

classificationSVM = fitcsvm( data, label, ...'KernelFunction', 'gaussian', ...'PolynomialOrder', [], 'KernelScale', 12, 'BoxConstraint', 100, ...'Standardize', true, ...'ClassNames', [0; 1]);

data—训练样本数据集矩阵;label—样本标签向量;训练了一个高斯核SVM;KernelScale=12;BoxConstraint=100。

2.调参与参数优化

有了fitcsvm函数后,我们的调参工作就很简单了,matlab为了我们提供了一个自动优化超参数的输入参数,OptimizeHyperparameters。该参数的输入同样为字符串类型的变量,默认为none,此外还有all和auto两个选项

none—不开启自动超参数优化

auto—仅优化BoxConstraint和KernelScale这两个参数

all—优化所有的符合条件的超参数,包括以上六个基本参数中的五个,即{BoxConstraint,KernelScale,KernelFunction,Standardize,PolynomialOrder};('OptimizeHyperparameters','auto',

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值