精华内容
下载资源
问答
  • 2020-06-16 11:13:05

    支持向量机一直都是机器学习的重要工具,仅仅学会调包的同学一定经常遇到这些缩写SVM、SVR、SVC。使用时经常会用到,但又不知道什么意思,仅仅学会调包调参数不是一个机器学习者的能力体现,但完全搞懂他们的数学公式、学会复现出算法也是没有必要的。

    知乎上关于什么是支持向量机的解释有很多,主要为为大家总结一下这三者的区别,同时介绍在python-sklearn中的应用。

    1.SVM-支持向量机

    什么是超平面

    SVM with polynomial kernel 可视化_腾讯视频​v.qq.com

    主要功能

    • 回归分析
    • 分类
    • 模式识别

    其实SVM最开始主要用于分类,在维基百科上的解释,Support Vector Machines are learning models used for classification

    2.区别

    可以很简单的解释这三者的关系

    • SVM=Support Vector Machine 是支持向量 机
    • SVC=Support Vector Classification就是支持向量机用于 分类,
    • SVR=Support Vector Regression.就是支持向量机用于 回归分析

    3.算法(python-sklearn)

    SVM模型的几种

    • svm.LinearSVC Linear Support Vector Classification.
    • svm.LinearSVR Linear Support Vector Regression.
    • svm.NuSVC Nu-Support Vector Classification.
    • svm.NuSVR Nu Support Vector Regression.
    • svm.OneClassSVM Unsupervised Outlier Detection.
    • svm.SVC C-Support Vector Classification.
    • svm.SVR Epsilon-Support Vector Regression.

     

    更多相关内容
  • SVM,SVC,SVC之间的区别

    千次阅读 2020-10-09 13:07:43
    from sklearn.svm import SVC classifier=SVC(random_state=0) classifier.fit(x_train,y_train) #预测结果 y_pred=classifier.predict(x_test) 其中,调用了sklearn中的SVC,整理了一下他们的关系: SVM=Support ...

    今天开始做svm的入门项目,训练时用到的代码如下

    #对数据进行训练
    from sklearn.svm import SVC
    classifier=SVC(random_state=0)
    classifier.fit(x_train,y_train)
    #预测结果
    y_pred=classifier.predict(x_test)

    其中,调用了sklearn中的SVC,整理了一下他们的关系:

    SVM=Support Vector Machine 是支持向量
    SVC=Support Vector Classification就是支持向量机用于分类
    SVR=Support Vector Regression.就是支持向量机用于回归分析

    SVM的算法模型有:

    svm.LinearSVC Linear Support Vector Classification.
    svm.LinearSVR Linear Support Vector Regression.
    svm.NuSVC Nu-Support Vector Classification.
    svm.NuSVR Nu Support Vector Regression.
    svm.OneClassSVM Unsupervised Outlier Detection.
    svm.SVC C-Support Vector Classification.
    svm.SVR Epsilon-Support Vector Regression.

    展开全文
  • svm_SVC

    2022-04-05 23:53:24
    概要:SVM算法(support vector machine,支持向量机),是一种二分类算法。 支持向量:支持或支撑平面上把两类类别划分开的超平面的向量点 机:一个算法

    SVM算法

    概要:SVM算法(support vector machine,支持向量机),是一种二分类算法。

    • 支持向量:支持或支撑平面上把两类类别划分开的超平面的向量点
    • 机:一个算法

    SVM模型的种类

    • svm.LinearSVC Linear Support Vector Classification.
    • svm.LinearSVR Linear Support Vector Regression.
    • svm.NuSVC Nu-Support Vector Classification.
    • svm.NuSVR Nu Support Vector Regression.
    • svm.OneClassSVM Unsupervised Outlier Detection.
    • svm.SVC C-Support Vector Classification.
    • svm.SVR Epsilon-Support Vector Regression.

    可以很简单的解释为三者的关系

    • SVM=Support Vector Machine 是支持向量
    • SVC=Support Vector Classification就是支持向量机用于分类,
    • SVR=Support Vector Regression.就是支持向量机用于回归分析

    语言:python

    领域:机器学习

    支持向量机之SVC算法(svm.SVC)

    svm.SVC:C-Support Vector Classification即svm用于分类

    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=None,
    	random_state=None
    	)
    

    参数:

    关键参数:

    • C:float类型,默认值是1.0
      参数表明算法要训练数据点需要作出多少调整适应,C小,SVM对数据点调整少,多半取平均,仅用少量的数据点和可用变量,C值增大,会使学习过程遵循大部分的可用训练数据点并牵涉较多变量。C值过大,有过拟合问题,C值过小,预测粗糙,不准确。

    • kernel :str类型,默认是rbf,核函数,可选参数有

      • linear:线性核函数
        k ( x , x i ) = x ⋅ x i k(x,x_i)=x \cdot xi k(x,xi)=xxi

      • poly:多项式核函数
        k ( x , x i ) = ( x ⋅ x i + 1 ) d k(x,x_i)=(x \cdot xi+1)^d k(x,xi)=(xxi+1)d

      • rbf:径像核函数/高斯核
        k ( x , x i ) = e x p ( − ∣ ∣ x − x i ∣ ∣ 2 δ 2 ) k(x,x_i)=exp({-||x-xi||^2 \over \delta^2}) k(x,xi)=exp(δ2xxi2)

      • sigmoid:sigmoid核函数(实现多层神经网络)
        k ( x , x i ) = t a n h ( η < x , x i > + θ ) k(x,x_i)=tanh(\eta <x,x_i>+\theta) k(x,xi)=tanh(η<x,xi>+θ)

      • precomputed:核矩阵表示自己提前计算好核函数矩阵,这时候算法内部就不再用核函数去计算核矩阵,而是直接用你给的核矩阵。

    • degree :int 类型,默认为3
      多项式poly函数的阶数n,选择其他核函数时会被忽略。

    • gamma :float 类型,默认为auto代表其值为样本特征数的倒数,即1/n_features
      核函数系数,只对rbf,poly,sigmod有效。

    • coef0 :float 类型,默认为0.0
      核函数的常数项,对于poly和 sigmoid代表其中的参数c

    其他参数:

    • probability :bool类型,默认为False
      是否采用概率估计,需要在训练fit()模型时加上这个参数,之后才能用相关的方法:predict_proba和predict_log_proba
    • shrinking :bool类型,默认为True
      是否采用shrinking heuristic()启发式收缩方式
    • tol :float类型,默认为1e-3
      svm停止训练的误差值大小
    • cache_size :float类型,默认为200(MB)
      指定训练所需要的内存,以MB为单位
    • class_weight :字典类型或’balance’字符串,默认为None
      类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)
    • verbose :bool类型,默认为False
      是否启用详细输出。 此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。一般情况都设为False,不用管它。
    • max_iter :int类型, 默认为-1
      最大迭代次数。-1为无限制。
    • decision_function_shape :str类型,默认为’ovr’
      ovo’, ‘ovr’, default=’ovr’,是否将形状(n_samples,n_classes)的one-rest-rest(‘ovr’)决策函数作为所有其他分类器返回,或者返回具有形状的libsvm的原始one-vs-one(‘ovo’)决策函数(n_samples) ,n_classes *(n_classes - 1)/ 2)。
      通俗解释:ovr即为one v rest 一个类别分别与其他类别进行划分,ovo为one v one,类别两两之间划分,用二分类的方法模拟多分类的结果
    • random_state :int类型,默认为None
      伪随机数发生器的种子,在混洗数据时用于概率估计。

    SVM预测模型的通用步骤

    • 选择使用的SVM类
    • 用数据训练模型
    • 检查验证误差并作为基准线
    • 为SVM参数尝试不同的值
    • 检查验证误差是否改进
    • 再次使用最优参数的数据来训练模型

    示例代码

    from sklearn.svm import SVC
    import numpy as np
    X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])  # 特征样本
    y = np.array([1, 1, 2, 2])  # 分类标记
    clf = SVC(kernel='sigmoid')  # 线性核函数
    clf.fit(X, y)  # 训练模型,自动分类
    
    print(clf.fit(X, y))  # svc训练函数参数
    print(clf.predict([[-0.8, -1]]))  # 测试,新样本分类
    print(clf.support_vectors_)  # 支持向量点 
    print(clf.support_)  # 支持向量点的索引 
    print(clf.n_support_)  # 每个class有几个支持向量点 
    

    10重交叉验证

    start = time.time()
    clf = svm.SVC(kernel='sigmoid')
    scores = cross_val_score(clf, X, Y, cv=10, scoring='accuracy')
    print '用时%f 秒!' % (time.time() - start)
    print 'svm10重交叉验证评分:', scores
    print 'svm10重交叉验证平均分:', scores.mean()
    
    展开全文
  • sklearn-SVC(svm)

    2021-10-18 10:12:48
    (sklearn为包名) ★fit()方法:用于训练SVM,具体参数已经在定义SVC对象的时候给出了,这时候只需要给出数据集XX对应的标签y即可。 ★predict()方法:基于以上的训练,对预测样本T进行类别预测,因此只需要接收...

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    fit原义指的是安装、使适合的意思

    是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。(目前可以简单理解为:fit获取了关于数据的有效信息,transform利用fit提供的有效信息进行特征转换

    kernel: str参数 默认为‘rbf’

    算法中采用的核函数类型,可选参数有:

    ‘linear’:线性核函数

    ‘poly’:多项式核函数

    ‘rbf’:径像核函数/高斯核

    ‘sigmod’:sigmod核函数

    ‘precomputed’:核矩阵

    import numpy as np
     X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]]) #数据特征
     y = np.array([1, 1, 2, 2])  # 数据对应的标签
     from sklearn.svm import SVC  # 导入svm的svc类(支持向量分类)
     clf = SVC()  # 创建分类器对象
     clf.fit(X, y)  # 用训练数据拟合分类器模型
     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)
     clf.predict([[-0.8, -1]])  # 用训练好的分类器去预测[-0.8, -1]数据的标签[1]

    NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 [1]


    含    义:Python的一种开源的科学计算库。

    内    容:提供和处理N维数组对象Array。

    用    途:科学计算,数据分析。

    sklearn是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。在实战使用scikit-learn中可以极大的节省我们编写代码的时间以及减少我们的代码量,使我们有更多的精力去分析数据分布,调整模型和修改超参。(sklearn为包名

    fit()方法:用于训练SVM,具体参数已经在定义SVC对象的时候给出了,这时候只需要给出数据集X和X对应的标签y即可。

    predict()方法:基于以上的训练,对预测样本T进行类别预测,因此只需要接收一个测试集T,该函数返回一个数组表示个测试样本的类别。

    这个函数也是基于libsvm实现的,所以在参数设置上有很多相似的地方
    (PS: libsvm中的二次规划问题的解决算法是SMO)。

    参数: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)

    l  C:C-SVC的惩罚参数C?默认值是1.0

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

    l  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)

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

    l  gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features

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

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

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

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

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

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

    l  verbose :允许冗余输出?

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

    l  decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3

    l  random_state :数据洗牌时的种子值,int值

    主要调节的参数有:C、kernel、degree、gamma、coef0。


    前言

    提示:这里可以添加本文要记录的大概内容:
    例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、pandas是什么?

    示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

    二、使用步骤

    1.引入库

    代码如下(示例):

    import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context = ssl._create_unverified_context 

    2.读入数据

    代码如下(示例):

    data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head()) 

    该处使用的url网络请求的数据。


    总结

    提示:这里对文章进行总结:
    例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

    展开全文
  • SVM基本概要与sklearn.svm.svc 参数说明

    万次阅读 多人点赞 2017-07-12 13:28:53
    SVM的基本概念先介绍一些简单的基本概念:分隔超平面:将数据集分割开来的直线叫做分隔超平面。超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策边界。...
  • SVM-SVC分类

    万次阅读 2018-12-06 01:21:09
    SVM优点: 用于二元多元分类器、回归新奇性检测 良好的预测生成器,提供了鲁棒的过拟合、噪声数据异常点处理 成功处理了涉及到很多变量的场景 当变量比样本还多是依旧有效 快速,即使样本量大于1万 自动...
  • 【机器学习】svm.SVC参数详解

    万次阅读 多人点赞 2019-06-20 21:48:17
    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_s...
  • sklearn.svm.LinearSVC与sklearn.svm.SVC区别

    千次阅读 2020-04-02 22:05:06
    1.LinearSVC与SVC区别 LinearSVC 基于liblinear库实现 有多种惩罚参数损失函数可供选择 训练集实例数量大(大于1万)时也可以很好地进行归一化 既支持稠密输入矩阵也支持稀疏输入矩阵 多分类问题采用one-vs-...
  • sklearn.svm.SVC()函数解析(最清晰的解释)

    万次阅读 多人点赞 2019-08-15 19:17:13
    sklearn.svm.SVC()函数全称为C-支持向量分类器。 class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, probability=False, tol=0.001, ...
  • 这篇文章是讲解sklearn库中SVM部分中SVC这一API. 关于实战部分可以参考这篇文章(有源码,可直接运行):【Sklearn】【实战】【SVM】乳腺癌检测,模拟线上部署(1) 这里是官方说明文档传送门:sklearn.svm.SVC 2. ...
  • 这一章节我们能学到SVC作为分类器的简单使用。 先来看看对数据进行标准化的方式 标准化的目的与归一化一样,都是为了避免某个特征的重要程度过大或过小。 标准化的优点:受异常点的影响较小。 适用于繁杂大数据。 ...
  • python SVM 案例,sklearn.svm.SVC 参数说明

    万次阅读 多人点赞 2018-03-09 17:02:59
    sklearn.svm.SVC 参数说明 经常用到sklearn中的SVC函数,这里把文档中的参数翻译了一些,以备不时之需。 本身这个函数也是基于libsvm实现的,所以在参数设置上有很多相似的地方。(PS: libsvm中的二次规划问题的...
  • Python -机器学习 -svm.SVC分类

    千次阅读 2020-06-24 13:28:38
    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, ...
  • sklearn中的svm.SVC

    千次阅读 2017-12-11 09:50:14
    svm是sklearn中一个关于支持向量机的包,比较常用,在使用过程中若是不熟悉各个参数的意义,总以默认参数进行机器学习,则不能做到最优化使用SVM,这就是一个较为遗憾的...以svm中的支持向量分类SVC作为介绍,所有参数
  • sklearn.svm.SVC()函数解析

    千次阅读 2021-07-31 00:43:24
    sklearn.svm.SVC()函数解析 class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None,...
  • 我有一个sklearn.svm.svc(RBF核)模型训练在两个类上,每个类包含140个样本。当我试图预测时,概率设置为true,这两个类的预测概率是不同的。在对于某些测试样本,它给出的概率大于1其他不到一个例如:“样品1”:1....
  • 具有线性内核的支持向量机(SVM) 随机梯度下降(SGD) 要求 $ pip install matplotlib numpy scikit-learn $ pip install "torch>=0.4.0" 例子 python main.py --c 0.01 --batchsize 1 硬边际c = 0,批处理大小= ...
  • python机器学习之sklearn.svm.SVC详解

    千次阅读 2020-06-21 11:11:09
    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_...
  • Scikit-learn 中svm概要以及SVC相关说明

    千次阅读 2018-08-23 16:29:22
    SVM的基本概念 先介绍一些简单的基本概念: 分隔超平面:将数据集分割开来的直线叫做分隔超平面。 超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策...
  • 文章目录运用特征脸(eigenface)sklearn.svm.SVC进行人脸识别。第一步,import导入实验所用到的包第二步,下载人脸数据第三步,特征提取第四步,建立SVM分类模型第五步, 模型评估第六步,预测结果可视化完整代码...
  • svm.SVC API说明

    千次阅读 2019-05-20 16:04:26
    svm.SVC API说明: 功能:使用SVM分类器进行模型构建 # 参数说明: # C: 误差项的惩罚系数,默认为1.0;一般为大于0的一个数字,C越大表示在训练过程中对于总误差的关注度越高,也就是说当C越大的时候,对于训练集的...
  • sklearn.svm.svc参数解析

    2018-11-25 16:49:38
    ... sklearn.svm.SVC 参数说明: 本身这个函数也是基于libsvm实现的,所以在参数设置上有很多相似的地方。(PS: libsvm中的二次规划问题的解决算法是SMO)。 sklearn.svm.SVC(C=1.0, kernel...
  • SVM.SVC参数说明

    千次阅读 2018-07-27 14:11:44
    写在前面的话:本人刚刚学sklearn,很多参数也不是很懂,英语又比较low,只能求助...Sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto’, coef0=0.0, shrinking=True, probability=False,tol=...
  • 一维支持向量机SVM代码(MATLAB),包括支持向量机分类支持向量机回归SVC&SVR;。另外还包括与BP神经网络的比较结果。
  • sklearn.svm.SVC()

    2021-12-04 16:23:41
    sklearn中的SVC函数是基于libsvm实现的,所以在参数设置上有很多相似的地方。(PS: libsvm中的二次规划问题的解决算法是SMO)。 对于SVC函数的参数解释如下:(主要翻译的sklearn 文档) 参数 C: float参数 ...
  • sklearn.svm.SVC中kernel参数说明

    千次阅读 2020-08-07 11:04:02
    sklearn.svm.SVC中kernel参数说明 常用核函数 线性核函数kernel='linear' 多项式核函数kernel='poly' 径向基核函数kernel='rbf' sigmod核函数kernel='sigmod' 常用核函数 线性核函数kernel=‘linear’...
  • sklearn.svm.SVC

    千次阅读 2019-07-18 01:09:49
    sklearn.svm.SVC class sklearn.svm.SVC(C = 1.0,kernel ='rbf', degree = 3,gamma ='auto_deprecated', coef0 = 0.0,shrinking = True, probability = False,tol = 0.001, cache_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,746
精华内容 8,698
关键字:

svc和svm的区别