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

高斯核函数

sigmod

sigmod核函数

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):返回给定测试集和对应标签的平均准确率。

原文发布于微信公众号 - 张俊红(zhangjunhong0428)

原文发表时间:2018-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

机器学习(34)之BIRCH层次聚类详解

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 前言 在K-Means算法(机器学习...

4055
来自专栏计算机视觉life

SLIC超像素分割详解(二):关键代码分析

SLIC超像素分割详解(二) 网站http://ivrl.epfl.ch/research/superpixels给出了SLIC的代码。对于其中C++代码的几个...

2417
来自专栏人工智能LeadAI

机器学习实战 | 第四章:模型验证和选择

模型选择和评估主要是在sklearn.model_selection这个模块里面.这里只会列出概述和常见函数的用法,更加详细的可以到sklearn.model_...

3425
来自专栏视觉求索无尽也

【Python】Numpy使用指南

Numpy是用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。

1372
来自专栏CDA数据分析师

R语言预处理之异常值问题

>>>> 一、问题 什么是异常值?如何检测异常值?请伙伴们思考或者留言讨论。 >>>> 二、解决方法 1. 单变量异常值检测 2. 使用局部异常因子进行异常值...

28010
来自专栏ArrayZoneYour的专栏

如何用Python将时间序列转换为监督学习问题

像深度学习这样的机器学习方法可以用于时间序列预测。

1.3K10
来自专栏机器学习算法原理与实践

BIRCH聚类算法原理

    在K-Means聚类算法原理中,我们讲到了K-Means和Mini Batch K-Means的聚类原理。这里我们再来看看另外一种常见的聚类算法BIRC...

1151
来自专栏人工智能

机器学习的大局:用神经网络和TensorFlow分类文本

开发人员常说,如果你想开始机器学习,你应该先学习算法是如何工作的。但是我的经验表明并不是这样子。

1.4K1
来自专栏大数据挖掘DT机器学习

机器学习--决策树(ID3)算法及案例

1 基本原理 决策树是一个预测模型。它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,每个分支路径代表某个可能的属性值,每个叶结点...

3146
来自专栏余林丰

13.高斯消去法(2)——三角矩阵

  对于矩阵有一类特殊的矩阵,叫做三角矩阵。 ?   这种矩阵如果还是按照定义一个二维数组来对数值进行存储的话,无疑将消耗掉不必要的空间,所以我们采用压缩存储的...

2169

扫码关注云+社区