sklearn中SVC和SVR的参数说明

部分内容参考博客,会有标注

SVC

转载于:机器学习笔记(3)-sklearn支持向量机SVM–Spytensor

官方源码

sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, 
                probability=False, tol=0.001, cache_size=200, class_weight=None, 
                verbose=False, max_iter=-1, decision_function_shape='ovr', 
                random_state=None)

参数解析

参数含义数据类型
C表示错误项的惩罚系数C越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低;相反,减小C的话,容许训练样本中有一些误分类错误样本,泛化能力强。对于训练样本带有噪声的情况,一般采用后者,把训练样本集中错误分类的样本作为噪声。float参数 默认值为1.0
kernel该参数用于选择模型所使用的核函数,算法中常用的核函数有:-- linear:线性核函数-- poly:多项式核函数–rbf:径像核函数/高斯核–sigmod:sigmod核函数–precomputed:核矩阵,该矩阵表示自己事先计算好的,输入后算法内部将使用你提供的矩阵进行计算str参数 默认为‘rbf’
degree该参数只对’kernel=poly’(多项式核函数)有用,是指多项式核函数的阶数n,如果给的核函数参数是其他核函数,则会自动忽略该参数。int型参数 默认为3
gamma该参数为核函数系数,只对‘rbf’,‘poly’,‘sigmod’有效。如果gamma设置为auto,代表其值为样本特征数的倒数,即1/n_features,也有其他值可设定。float参数 默认为auto
coef0该参数表示核函数中的独立项,只有对‘poly’和‘sigmod’核函数有用,是指其中的参数c。float参数 默认为0.0
probability该参数表示是否启用概率估计。 这必须在调用fit()之前启用,并且会使fit()方法速度变慢。bool参数 默认为False
shrinkintol该参数表示是否选用启发式收缩方式。bool参数 默认为True
tolsvm停止训练的误差精度,也即阈值。float参数 默认为1e^-3
cache_size该参数表示指定训练所需要的内存,以MB为单位,默认为200MB。float参数 默认为200
class_weight该参数表示给每个类别分别设置不同的惩罚参数C,如果没有给,则会给所有类别都给C=1,即前面参数指出的参数C。如果给定参数‘balance’,则使用y的值自动调整与输入数据中的类频率成反比的权重。字典类型或者‘balance’字符串。默认为None
verbose该参数表示是否启用详细输出。此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。一般情况都设为False,不用管它。bool参数 默认为False
max_iter该参数表示最大迭代次数,如果设置为-1则表示不受限制。int参数 默认为-1
random_state该参数表示在混洗数据时所使用的伪随机数发生器的种子,如果选int,则为随机数生成器种子;如果选RandomState instance,则为随机数生成器;如果选None,则随机数生成器使用的是np.randomint,RandomState instance ,None 默认为None

函数

函数作用
svc.decision_function(X)样本X到分离超平面的距离
svc.fit(X, y[, sample_weight])根据给定的训练数据拟合SVM模型。
svc.get_params([deep])获取此估算器的参数并以字典行书储存,默认deep=True,以分类iris数据集为例,得到的参数如下
svc.predict(X)根据测试数据集进行预测
svc.score(X, y[, sample_weight])返回给定测试数据和标签的平均精确度
svc.predict_log_proba(X_test),svc.predict_proba(X_test)当sklearn.svm.SVC(probability=True)时,才会有这两个值,分别得到样本的对数概率以及普通概率。

属性

属性含义
svc.coef_[0]权重
svc.intercept_bias,偏差

SVR

参考:sklearn线性回归,支持向量机SVR回归,随机森林回归,神经网络回归参数解释及示例
sklearn.svm.SVR的参数介绍

官方源码

sklearn.svm.SVR(kernel ='rbf',degree = 3,gamma ='auto_deprecated',coef0 = 0.0,
		tol = 0.001,C = 1.0,epsilon = 0.1,shrinking = True,cache_size = 200,		
		verbose = False,max_iter = -1

参数解析

参数含义数据类型
kernelsvc中指定的kernel类型。 可以是: ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ 或者自己指定。 默认使用‘rbf’ 。string, optional (default=’rbf’)
degree当指定kernel为 ‘poly’时,表示选择的多项式的最高次数,默认为三次多项式。 若指定kernel不是‘poly’,则忽略,即该参数只对‘poly’有作用。int, optional (default=3)
gamma当kernel为‘rbf’, ‘poly’或‘sigmoid’时的kernel系数。 如果不设置,默认为 ‘auto’ ,此时,kernel系数设置为:1/n_featuresfloat, optional (default=’auto’)
coef0kernel函数的常数项。 只有在 kernel为‘poly’或‘sigmoid’时有效,默认为0。float, optional (default=0.0)
tol误差项达到指定值时则停止训练,默认为1e-3,即0.001。float, optional (default=1e-3)
C误差项的惩罚参数,一般取值为10的n次幂,如10的-5次幂,10的-4次幂。。。。10的0次幂,10,1000,1000,在python中可以使用pow(10,n) n=-5~inf C越大,相当于希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样会出现训练集测试时准确率很高,但泛化能力弱。 C值小,对误分类的惩罚减小,容错能力增强,泛化能力较强。float, optional (default=1.0)
epsilonε,Epsilon在epsilon-SVR模型中。它指定了epsilon-tube,其中训练损失函数中没有惩罚与在实际值的距离epsilon内预测的点。float,optional(默认值= 0.1)
shrinking如果能预知哪些变量对应着支持向量,则只要在这些样本上训练就够了,其他样本可不予考虑,这不影响训练结果,但降低了问题的规模并有助于迅速求解。进一步,如果能预知哪些变量在边界上(即a=C),则这些变量可保持不动,只对其他变量进行优化,从而使问题的规模更小,训练时间大大降低。这就是Shrinking技术。 Shrinking技术基于这样一个事实:支持向量只占训练样本的少部分,并且大多数支持向量的拉格朗日乘子等于Cboolean, optional (default=True)
cache_size指定内核缓存的大小,默认为200M。float, optional
verbose是否启用详细输出。 多线程时可能不会如预期的那样工作。默认为False。bool, default: False
max_iter默认设置为-1,表示无穷大迭代次数。 Hard limit on iterations within solver, or -1 for no limit.int, optional (default=-1)
  • 22
    点赞
  • 216
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值