python sklearn 支持向量机_机器学习库sklearn中svm函数特性详解

本文深入解析了sklearn库中SVM的支持向量机函数参数,包括C、kernel、degree、gamma、coef0等,并通过实例探讨了它们对模型的影响。文章指出,选择合适的核函数和调整参数能有效提升模型性能,建议根据数据特性和需求选择核函数,如线性、多项式、高斯(RBF)和sigmoid。此外,参数C控制泛化能力与准确度的平衡,gamma影响数据映射后的分布,degree主要应用于poly核函数,而coef0用于解决poly和sigmoid核函数的常数项问题。
摘要由CSDN通过智能技术生成

本文可能是你能在网上找到的对svm参数解析最详细的一篇文章。写文源于之前使用到svm做攻击识别,一直纠结于一些函数的参数,对我个人自定义的一些偏好设定无法很好的完成,所以对其好好的研究了一番。这篇算是一篇工具文,来详解一下python sklearn中svm的一些参数,以及结合具体的例子来进行详细说明。

svm函数简介

sklearn中的svm基于libsvm,基础的svm函数大概如下所示,其中涉及到的参数很多,下面有一个简单的讲解:

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,

decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',

max_iter=-1, probability=False, random_state=None, shrinking=True,

tol=0.001, verbose=False)

=========参数=============================

C:C-SVC的惩罚参数C?默认值是1.0,C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。

kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’

0 – 线性:u\'v

1 – 多项式:(gamma*u\'*v + coef0)^degree

2 – RBF函数:exp(-gamma|u-v|^2)

3 – sigmoid:tanh(gamma*u\'*v + coef0)

degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。

gamma : ‘rbf’,‘poly’和‘sigmoid’的核函数参数。默认是’auto’,如果是auto,则值为1/n_features

coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。

probability :是否采用概率估计?.默认为False

shrinking :是否采用shrinking heuristic方法,默认为true

tol :停止训练的误差值大小,默认为1e-3

cache_size :核函数cache缓存大小,默认为200

class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)

verbose :允许冗余输出

max_iter :最大迭代次数。-1为无限制。

deci

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值