DataWhale NLP 打卡(六)SVM支持向量机

1、SVM的原理

间隔与支持向量
给定训练样本集D = {(x1, y1), (x2, y2),…,(xm, ym)}, yi∈{-1, +1},分类学习中最基本的思路就是基于训练集D在样本空间里找到一个划分超平面,将不同类别的样本分开,但是可以将样本分开的划分超平面可能有很多。

在这么多的超平面中,如何选择最合适的呢?什么标准又是最合适的呢?
在样本空间中,划分超平面可通过如下线性方程来描述:

其中ω = (ω_1; ω_2;…;ω_d)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点的距离,显然,划分超平面可被法向量ω和位移b确定,下面我们将其记为(ω,b)。样本空间中任意点x到超平面(ω,b)的距离可写为:

此即支持向量机的基础分类器
2、SVM的优缺点

优点
小规模训练集上能够获得比其他算法较好的效果,泛化能力强,结构化风险小,鲁棒性强
缺点
对缺失数据敏感,对于多分类问题解决相对困难
3、SVM sklearn参数学习:
原汁原味的在这里:
https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html
sklearn提供了三种基于svm的分类方法:

sklearn.svm.NuSVC()
sklearn.svm.LinearSVC()
sklearn.svm.SVC()

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 (float参数 默认值为1.0)
表示错误项的惩罚系数C越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低;相反,减小C的话,容许训练样本中有一些误分类错误样本,泛化能力强。对于训练样本带有噪声的情况,一般采用后者,把训练样本集中错误分类的样本作为噪声。

kernel (str参数 默认为‘rbf’)
该参数用于选择模型所使用的核函数,算法中常用的核函数有:
– linear:线性核函数
– poly:多项式核函数
–rbf:径像核函数/高斯核
–sigmod:sigmod核函数
–precomputed:核矩阵,该矩阵表示自己事先计算好的,输入后算法内部将使用你提供的矩阵进行计算

degree (int型参数 默认为3)
该参数只对’kernel=poly’(多项式核函数)有用,是指多项式核函数的阶数n,如果给的核函数参数是其他核函数,则会自动忽略该参数。

gamma (float参数 默认为auto)
该参数为核函数系数,只对‘rbf’,‘poly’,‘sigmod’有效。如果gamma设置为auto,代表其值为样本特征数的倒数,即1/n_features,也有其他值可设定。

coef0:(float参数 默认为0.0)
该参数表示核函数中的独立项,只有对‘poly’和‘sigmod’核函数有用,是指其中的参数c。

probability( bool参数 默认为False)
该参数表示是否启用概率估计。 这必须在调用fit()之前启用,并且会使fit()方法速度变慢。

shrinkintol: float参数 默认为1e^-3g(bool参数 默认为True)
该参数表示是否选用启发式收缩方式。

tol( float参数 默认为1e^-3)
svm停止训练的误差精度,也即阈值。

cache_size(float参数 默认为200)
该参数表示指定训练所需要的内存,以MB为单位,默认为200MB。

class_weight(字典类型或者‘balance’字符串。默认为None)
该参数表示给每个类别分别设置不同的惩罚参数C,如果没有给,则会给所有类别都给C=1,即前面参数指出的参数C。如果给定参数‘balance’,则使用y的值自动调整与输入数据中的类频率成反比的权重。

verbose ( bool参数 默认为False)
该参数表示是否启用详细输出。此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。一般情况都设为False,不用管它。

max_iter (int参数 默认为-1)
该参数表示最大迭代次数,如果设置为-1则表示不受限制。

random_state(int,RandomState instance ,None 默认为None)

原文:https://blog.csdn.net/ck_101/article/details/89363886

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值