SVM模型应用(四)SVM模型的超参数选择

SVM模型超参数优化目前常用的方法是让C和g在一定的范围内取值,对于取定的c和g,把训练集作为原始数据集利用K-CV方法得到在此对c和g组合下验证集的分类准确率,最终取得训练集验证分类准确率最高的那组c和g作为最佳参数。对于可能会有多组的c和g对应着最高的验证分类准备率的情况下,选取能够达到最高验证分类准确率中参数c最小的那对c和g作为最佳的参数,在取最小c的情况下,可能还会存在多组g,那么就选取搜索到的第一组c和g作为最佳参数。因为惩罚系数c值过大,会导致过于拟合的情况,模型泛化能力不好。

这种寻优思想可以用网格参数优化来实现。惩罚参数的变化范围在[2^cmin,2^cmax],即在该范围内寻找最佳的参数c,默认值为cmin=-8,cmax=8,。RBF中的g变化范围也在[2^gmin,2^gmax],,默认值同样为为gmin=-8,gmax=8。c,g分别构成横轴和纵轴,cstep,gstep分别是进行网格参数须有时 c和g的步进太小,即c的取值为 2^cmin,2^(cmin+cstep),…,2^cmax ,同理g,默认步进取值为1,通过这种方法找到最佳的c和g组合。

import numpy as np
from sklearn import svm
from sklearn.linear_model import LogisticRegression

my_matrix=np.loadtxt("E:\\pima-indians-diabetes.txt",delimiter=",",skiprows=0) 

lenth_x=len(my_matrix[0])

data_y=my_matrix[:,lenth_x-1]

data_x=my_matrix[:,0:lenth_x-1]
print(data_x[0:2],len(data_x[0]),len(data_x))
data_shape=data_x.shape
data_rows=data_shape[0]
data_cols=data_shape[1]

data_col_max=data_x.max(axis=0)#获取二维数组列向最大值
data_col_min=data_x.min(axis=
  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值