sklearn的SVC新手使用学习笔记

参考博文的原博地址:原博地址
1、SVC函数原型预览
SVC(C=1.0, cache_size=200,class_weight=None, coef0=0.0,decision_function_shape=None,degree=3, ganmma =‘auto’, kernel =‘rbf’, max_iter=-1,probability=False, random_state=None,shrinking=True, tol =0.001, verbose=False)
2、首先,我们先不要一个个参数看,对于支持向量机最关机的是它核函数的选择,所以我们先从核函数的选择出发。
先看kernel参数的官方说明。

kernel : string, optional (default=’rbf’). Specifies the kernel type to be used in the algorithm. It must be one of ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ or a callable. If none is given, ‘rbf’ will be used. If a callable is given it is used to pre-compute the kernel matrix from data matrices; that matrix should be an array of shape (n_samples, n_samples).

1.linear核函数: K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj
2.polynomial核函数: K ( x i , x j ) = ( γ x i T x j + r ) d , d > 1 K(x_i,x_j)=(\gamma x_i^Tx_j + r)^d, d>1 K(xi,xj)=(γxiTxj+r)d,d>1
3.RBF核函数(高斯核函数): K ( x i , x j ) = e x p ( − γ ∣ ∣ x i − x j ∣ ∣ 2 ) , γ > 0 K(x_i,x_j)=exp(-\gamma ||x_i-x_j||^2),\gamma>0 K(xi,xj)=exp(γxixj2),γ>0
4.sigmoid核函数: K ( x i , x j ) = t a n h ( γ x i T x j + r ) , γ > 0 , r < 0 K(x_i,x_j)=tanh(\gamma x_i^Tx_j + r ), \gamma>0, r<0 K(xi,xj)=tanh(γxiTxj+r),γ>0,r<0
因为sklearn底层是调用libsvm的,因此sklearn中svm参数说明是可以直接参考libsvm中的。
首先介绍下与核函数相对应的参数:
1)对于线性核函数,没有专门需要设置的参数
2)对于多项式核函数,有三个参数。-d用来设置多项式核函数的最高次项次数,也就是公式中的d,默认值是3。-g用来设置核函数中的gamma参数设置,也就是公式中的gamma,默认值是1/k(特征数)。-r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。
3)对于RBF核函数,有一个参数。-g用来设置核函数中的gamma参数设置,也就是公式中gamma,默认值是1/k(k是特征数)。
4)对于sigmoid核函数,有两个参数。-g用来设置核函数中的gamma参数设置,也就是公式中gamma,默认值是1/k(k是特征数)。-r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。
具体来说说rbf核函数中C和gamma :
SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差
gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。
这里面大家需要注意的就是gamma的物理意义,大家提到很多的RBF的幅宽,它会影响每个支持向量对应的高斯的作用范围,从而影响泛化性能。我的理解:如果gamma设的太大,方差会很小,方差很小的高斯分布长得又高又瘦, 会造成只会作用于支持向量样本附近,对于未知样本分类效果很差,存在训练准确率可以很高,(如果让方差无穷小,则理论上,高斯核的SVM可以拟合任何非线性数据,但容易过拟合)而测试准确率不高的可能,就是通常说的过训练;而如果设的过小,则会造成平滑效应太大,无法在训练集上得到特别高的准确率,也会影响测试集的准确率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值