【代码模版】利用k折交叉验证对SVM中的参数C进行调参

本文聚焦于SVM模型中参数C的调优,通常在选择'rbf'核函数后,仅需调整C。C参数作为线性可分情况下的松弛因子,其较小值有助于提升模型性能。
摘要由CSDN通过智能技术生成

SVM模型中需要调参的一般为C和kernel,但是kernel99%都是选择’rbf’(径向基核函数,也就是高斯核函数),所以一般只需要对C进行调参。
参数C是SVM近似线性可分情况下松弛因子的参数,原理上C值越小越好

from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
# 创建选择最优参数C的模型
def select_c_function(i):
	# 将含有参数的模型实例化
    svm_model = SVC(kernel
在MATLAB,使用内置的`fitcsvm`函数可以训练SVM模型,并使用网格搜索(Grid Search)来寻找最优的超参数。下面是一个简单的示例代码: ```matlab % 加载数据 load fisheriris X = meas(:,1:2); Y = (strcmp(species,'setosa')); % 定义超参数搜索范围 CRange = [0.01 0.1 1 10 100]; sigmaRange = [0.01 0.1 1 10 100]; % 定义网格搜索参数 svm = templateSVM('KernelFunction','gaussian','BoxConstraint',1,'KernelScale',1); options = struct('Verbose',0,'CVPartition',cvpartition(Y,'KFold',10),'HyperparameterRange',struct('BoxConstraint',CRange,'KernelScale',sigmaRange)); % 网格搜索最优超参数 svmModel = fitcecoc(X,Y,'Learners',svm,'HyperparameterOptimizationOptions',options); bestParams = svmModel.HyperparameterOptimizationResults.XAtMinObjective; bestBoxConstraint = bestParams(1); bestKernelScale = bestParams(2); % 训练最优超参数SVM模型 bestSVM = fitcsvm(X,Y,'KernelFunction','gaussian','BoxConstraint',bestBoxConstraint,'KernelScale',bestKernelScale); ``` 在这个示例代码,我们使用了`fitcecoc`函数来训练一个多类SVM分类器。然后,我们定义了超参数搜索范围,并使用`cvpartition`函数创建了一个10折交叉验证分区对象。接着,我们使用`templateSVM`函数创建了一个SVM模板,并在其上设置了固定超参数。最后,我们使用`fitcecoc`函数的`HyperparameterOptimizationOptions`选项来设置网格搜索选项。在这个例子,我们使用了10折交叉验证,并设置了超参数搜索范围。最后,我们输出了最优超参数,并训练了一个使用最优超参数SVM模型。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停下脚步的乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值