Sklearn参数详解—SVM

总第108篇

本篇主要讲讲Sklearn中SVM,SVM主要有LinearSVC、NuSVC和SVC三种方法,我们将具体介绍这三种分类方法都有哪些参数值以及不同参数值的含义。

在开始看本篇前你可以看看这篇:支持向量机详解

LinearSVC

class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)

penalty:正则化参数,L1和L2两种参数可选,仅LinearSVC有。
loss:损失函数,有‘hinge’和‘squared_hinge’两种可选,前者又称L1损失,后者称为L2损失,默认是是’squared_hinge’,其中hinge是SVM的标准损失,squared_hinge是hinge的平方。
dual:是否转化为对偶问题求解,默认是True。
tol:残差收敛条件,默认是0.0001,与LR中的一致。
C:惩罚系数,用来控制损失函数的惩罚系数,类似于LR中的正则化系数。
multi_class:负责多分类问题中分类策略制定,有‘ovr’和‘crammer_singer’ 两种参数值可选,默认值是’ovr’,'ovr'的分类原则是将待分类中的某一类当作正类,其他全部归为负类,通过这样求取得到每个类别作为正类时的正确率,取正确率最高的那个类别为正类;‘crammer_singer’ 是直接针对目标函数设置多个参数值,最后进行优化,得到不同类别的参数值大小。
fit_intercept:是否计算截距,与LR模型中的意思一致。
class_weight:与其他模型中参数含义一样,也是用来处理不平衡样本数据的,可以直接以字典的形式指定不同类别的权重,也可以使用balanced参数值。
verbose:是否冗余,默认是False.
random_state:随机种子的大小。
max_iter:最大迭代次数,默认是1000。

对象

coef_:各特征的系数(重要性)。
intercept_:截距的大小(常数值)。

NuSVC

class sklearn.svm.NuSVC(nu=0.5, 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))

nu:训练误差部分的上限和支持向量部分的下限,取值在(0,1)之间,默认是0.5
kernel:核函数,核函数是用来将非线性问题转化为线性问题的一种方法,默认是“rbf”核函数,常用的核函数有以下几种:

表示解释
linear线性核函数
poly多项式核函数
rbf高斯核函数
sigmodsigmod核函数
precomputed自定义核函数

关于不同核函数之间的区别,可以参考这篇文章:https://blog.csdn.net/batuwuhanpei/article/details/52354822

degree:当核函数是多项式核函数的时候,用来控制函数的最高次数。(多项式核函数是将低维的输入空间映射到高维的特征空间)
gamma:核函数系数,默认是“auto”,即特征维度的倒数。
coef0:核函数常数值(y=kx+b中的b值),只有‘poly’和‘sigmoid’核函数有,默认值是0。
max_iter:最大迭代次数,默认值是-1,即没有限制。
probability:是否使用概率估计,默认是False。
decision_function_shape:与'multi_class'参数含义类似。
cache_size:缓冲大小,用来限制计算量大小,默认是200M。

对象

support_:以数组的形式返回支持向量的索引。
support_vectors_:返回支持向量。
n_support_:每个类别支持向量的个数。
dual_coef_:支持向量系数。
coef_:每个特征系数(重要性),只有核函数是LinearSVC的时候可用。
intercept_:截距值(常数值)。

SVC

class 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:惩罚系数。
SVC和NuSVC方法基本一致,唯一区别就是损失函数的度量方式不同(NuSVC中的nu参数和SVC中的C参数)。

方法

三种分类方法的方法基本一致,所以就一起来说啦。

decision_function(X):获取数据集X到分离超平面的距离。
fit(X, y):在数据集(X,y)上使用SVM模型。
get_params([deep]):获取模型的参数。
predict(X):预测数据值X的标签。
score(X,y):返回给定测试集和对应标签的平均准确率。

你还可以看:

Sklearn参数详解—LR模型

Sklearn参数详解--决策树

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
sklearn中的SVM模型主要有以下参数: 1. C:惩罚参数,表示错误分类样本的惩罚程度。C越大,错误分类的惩罚越大,模型对训练集的拟合程度越高,但容易产生过拟合。默认值为1.0。 2. kernel:核函数,用于将输入的样本映射到高维空间中。常见的核函数有线性核、多项式核、高斯核等。默认值为'rbf'。 3. degree:多项式核的次数,只有在kernel为'poly'时才有意义。默认值为3。 4. gamma:核函数的系数,只有在kernel为'rbf'、'poly'、'sigmoid'时才有意义。gamma越大,模型对训练集的拟合程度越高,但容易产生过拟合。默认值为'auto',表示gamma=1/n_features。 5. coef0:核函数中的常数项,只有在kernel为'poly'、'sigmoid'时才有意义。默认值为0.0。 6. shrinking:是否使用启发式缩小停止:默认为True。 7. tol:停止训练的容忍度,当模型的代价函数减小量小于该值时,停止训练。默认值为1e-3。 8. max_iter:最大迭代次数,如果模型没有收敛,将停止训练。默认值为-1,表示没有限制。 9. decision_function_shape:决策函数的形状,可以是'ovr'(一对多)或'ovo'(一对一)。默认为'ovr'。 10. random_state:随机数种子,用于重复实验结果。默认为None。 11. class_weight:类别权重,用于平衡不同类别的样本数量。默认为None,表示所有类别的权重相等。可以设置为'balanced',表示使用样本权重进行训练。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊红的数据分析之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值