精华内容
下载资源
问答
  • 支持向量机分类

    千次阅读 2011-04-08 16:25:00
     分类机里的机实为一种算法,扩展为机器学习,通过训练样本,计算样本属性特征,得到一种算法。...  对于非线性划分,支持向量机分类算法引入了最大间隔原则和核技巧,核技巧把原空间需要用吵曲面分化的分

         分类机里的机实为一种算法,扩展为机器学习,通过训练样本,计算样本属性特征,得到一种算法。

         向量机的性质 从狭义上来说,分类方法可分为支持向量机和不支持向量机,支持向量机在于待分样本在向量空间的可分性。支持向量有以下性质:1界内的支持向量一定位于自间隔边界上的正确分区;2支持向量不会出现在间隔意外的正确划分分区。3非支持向量一定位于带有间隔的正确分区。

         对于非线性划分,支持向量机分类算法引入了最大间隔原则和核技巧,核技巧把原空间需要用吵曲面分化的分类问题转化为用超平面划分的问题,把非线性空间转化为线性空间,从而降低分类的难度。

         多类分类问题:支持向量机的分类大多倾向于两类分类问题,对于于遥感图像的分类问题来说,两类分类是比较少见的,更多的时候我们面对的是多类分类问题。对于多类分类机,通常的思路是构造一系列两类分类机,其中的每一个分类机都把其中的一类同余下的各类划分开,然后据此推断某个输入x的归属。

      

    展开全文
  • 一维支持向量机SVM代码(MATLAB),包括支持向量机分类和支持向量机回归SVC&SVR;。另外还包括与BP神经网络的比较结果。
  • 支持向量机分类识别代码支持向量机分类识别代码支持向量机分类识别代码支持向量机分类识别代码支持向量机分类识别代码支持向量机分类识别代码支持向量机分类识别代码
  • SVM支持向量机分类

    2018-05-31 17:18:45
    用matlab编程实现支持向量机分类,核函数选取,超平面建立等
  • L2-损失双支持向量机分类
  • 支持向量机分类程序

    2013-07-08 09:56:03
    支持向量机分类matlab程序,适用于svm学习和仿真。
  • 主要介绍了Python 支持向量机分类器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 基于结构信息的双超球支持向量机分类
  • 支持向量机分类

    千次阅读 2018-02-01 22:00:00
    1 支持向量机分类器  根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个。  本文是利用支持向量机进行手写体数字图像的分类任务。 2 实验代码及结果截图 #coding:utf-8 #支持向量机分类器 #...

    1 支持向量机分类器

        根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个。

       本文是利用支持向量机进行手写体数字图像的分类任务。

    2 实验代码及结果截图

    #coding:utf-8
    #支持向量机分类器

    #手写体数据读取
    #从slearn.datasets里导入手写数字加载器
    from sklearn.datasets import load_digits
    #获取图像数据并出储存在digits变量中
    digits=load_digits()
    #检视数据规模和特征维度
    print '数据规模:',digits.data.shape[0]
    print '特征维度:',digits.data.shape[1]

    #手写体数据分割
    #从sklearn.cross_validation中导入train_test_split用于数据分割
    from sklearn.cross_validation import train_test_split
    #随机75%的训练样本,25%的测试样本
    X_train,X_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)
    print '训练数据规模:',y_train.shape[0]

    print '测试数据规模:',y_test.shape[0]


    #使用支持向量机(分类)对手写体数字图像进行识别
    #从sklearn.preprocessing里导入数据标准化模块
    from sklearn.preprocessing import StandardScaler
    #从sklearn.svm中导入基于线性假设的支持向量机分类器LinearSVC
    from sklearn.svm import LinearSVC
    #标准化数据
    ss=StandardScaler()
    X_train=ss.fit_transform(X_train)
    X_test=ss.transform(X_test)
    #初始化LinearSVC
    lsvc=LinearSVC()
    #进行模型训练
    lsvc.fit(X_train, y_train)
    #进行预测
    y_predict=lsvc.predict(X_test)
    #准确性测评
    print 'The Accuracy of LinearSVC is:',lsvc.score(X_test,y_test)
    #预测结果的详细分析
    from sklearn.metrics import classification_report
    print classification_report(y_test,y_predict,target_names=digits.target_names.astype(str))  



    展开全文
  • 介绍了支持向量机理论、常用的支持向量机内积核函数以及最小二乘支持向量机算法.采用最小二乘法实现了支持向量机分类算法.数字仿真结果表明,该算法的识别正确率可达100%.
  • 高光谱影像分类中噪声影响的研究—支持向量机分类性能评价,王小美,杜培军,近年来支持向量机在高光谱影像分类中得到较多应用,体现出明显的优越性。为了验证噪声对支持向量机分类器性能的影响,对“SVM可以
  • 有监督分类:支持向量机分类

    千次阅读 2017-06-12 16:22:28
    1.前言 上一篇主要研究了《最小二乘用于分类》也实现了模式识别。然而,虽然与错误分类率对应的0/1...本文更偏重于介绍支持向量机分类器中所使用的损失概念,并且讨论支持向量机分类器向鲁棒学习进行拓展的方法。 2

    1.前言

    上一篇主要研究了《最小二乘用于分类》也实现了模式识别。然而,虽然与错误分类率对应的0/1损失的间隔函数是单调非增的,但是L2损失并不是单调非增的,所以使用最小二乘学习法进行模式识别还是有些不自然。这里,再次综述一下支持向量机分类器,关于SVM的话题已经写了近10篇文章了。本文更偏重于介绍支持向量机分类器中所使用的损失概念,并且讨论支持向量机分类器向鲁棒学习进行拓展的方法。

    2.间隔最大化分类

    这里将对基于间隔最大化原理的支持向量机分类器算法做详细分析。
    首先从线性的2分类问题进行说明。

    w为把正样本与负样本隔离开的超平面的法线,γ为截距,如下图所示:

    w是分类超平面的法线,γ是截距
    只要能够对各个训练样本的间隔:

    为正时的w和γ进行学习,就可以利用这个模型对所有的训练样本进行正确地分类了:

    像上式那样没有等号的开集约束条件,在数学上坑你比较难以处理,所以这里利用参数w和γ的值可以任意决定的性质,将其变换为如下别这样包含等号的闭集约束条件:

    当存在满足这样条件的w和γ时,我们称这样的训练样本为线性可分样本

    2.1 硬间隔支持向量机分类器

    对于线性可分的训练样本,可以把所有的训练样本都正确分类的解有无数个。这里一般选取能够最充裕地把正样本和负样本进行分离的超平面做为最优解、这个最充裕的概念,是与正则化后的间隔的最小值相对应的:

    从几何上讲,间隔为两端的两个超平面wTx+γ=+1 和 wTx+γ=-1的间距的一半。使这个间隔最大(间隔的倒数平方最小)的超平面对应的分类器,称为硬间隔支持向量机分类器。如下图所示:

    硬间隔支持向量机分类器的分类超平面,从正样本和负样本的中间通过。
    对于任何正样本x+,都有wTx+γ=+1,对于任意的负样本x-,都有wTx+γ=-1

    硬间隔支持向量机分类器假定训练样本是线性可分的。但是在实际应用中,这种情形并不多见,大部分情况训练样本都线性不可分的。因此,下面还将介绍与这个假定相对应的软间隔支持向量机分类器

    2.2 软间隔支持向量机分类器

    软间隔支持向量机分类器的基本思路是:允许在间隔的计算中出现少许的误差(松弛变量) e=(e1,e2,...,en):

    C>0是调整误差允许范围内的参数(惩罚系数)。C越大,e=(e1,e2,...,en)越趋近于零,软间隔支持向量机分类器越接近硬间隔支持向量机分类器。如图所示:

    软间隔支持向量机分类器允许间隔的计算出现少量误差

    3.支持向量机分类器的求解方法

    支持向量机分类器的最优化问题:

    是目标函数为二次函数,约束条件为线性的典型的二次规划问题。目前已经开发出很多求解二次规划问题的的优秀算法,因此可以使用这些算法对支持向量机分类器进行求解。

    3.1 二次规划问题综述

    二次规划问题时域矩阵F/G以及向量f/g相对应的,由下式定义的最优化问题:

    这里把向量不等式GΘ≤g分解,表示各个元素的不等式:

    假定矩阵F是正定的(也就是说所有的固有值都是正的),当天件不充分、数值不稳定的时候,为F的对角元素加上一个特别小的正值,从未使其稳定性得以提高。

    3.2 求解思路

    最原始的d维线性分类器中,只包含d+1个w和γ变量,而最优化问题中除了w和γ以外,还必须对松弛变量e=(e1,e2,...,en)求解。因此,需要最优化的变量就增加为d+1+n个。计算时间也会相应的增加。
    拉格朗日继续登上舞台:

    并考虑其最优化问题的等价表现形式,也就是拉格朗日对偶问题:


    根据上述优化进行偏导求解:

    带入原式,拉格朗日对偶问题就可以用下式表示:

    这个最优化问题,利用只有n个最优变量的二次规划问题,实现比原始最优化问题更搞笑的求解过程。其解为:
        
    这一块主要目的是介绍基于二次规划的拉格朗日对偶问题的指向hi想来那估计分类器求解方法。其实,这一段时间,关于如何高效地求解支持向量机分类器的研究非常热门。
    对于无法使用最小二乘学习很好进行分类的数据,采用SVM可以获得非常完美的结果:

    线性支持向量机分类实例(200个对偶参数,197个变为0,只有3个参数样本非零)
    这里我们会发现,支持向量机的对偶参数解非常的系数,下面进行详细探讨。

    4.稀疏性

    之前谈过,采用L1范数约束求得的节为稀疏性,但是根据上节,我们也会发现,用支持向量机分类器对对偶解进行求解时,即是没有使用L1约束,也得到了倾向于稀疏的解。
    为了对此进行说明,首先研究一下a’的最优条件,也就是KKT条件。对偶变量和约束条件应该满足如下的互补条件:

    在上式中,mi=(wTxi+γ)yi表示的是间隔;根据上面求偏导的结论:

    将上式加以组合,对偶变量ai和间隔mi之间可以得到如下关系式:

    也就是说:ai等于0的时候,训练样本xi位于间隔边界上或间隔边界内侧,可以充裕地进行分类。当0<ai<C时,xi恰好位于分割边界上,可正确分类。当ai=C时,xi位于间隔边界上或者边界外侧,如果间隔误差(松弛变量大于1),则间隔为负,训练样本xi就不恒正确分类。
    实际中,与ai>0相对应的训练样本xi称为支持向量

    5.使用核映射的非线性模型

    前面介绍的是对与线性可分模型的支持向量机分类器的学习方法。本节主要探讨SVM如何应用于非线性模型。
    具体而言,首先使用非线性函数,对训练输入样本的特征空间进行描述,适用于线性SVN。通过这种方式得到的特征空间内为线性分类器,而原始的输入空间是非线性分类器。
    如果选择笔原始的输入维度d维度更高的控件作为特征空间,则训练样本为线性可分的可能性就比较高,然而,如果特征空间的维度过大的话,计算时间夜会相应增加。

    核映射实现非线性的支持向量机分类器
    这种情况下,最常用的就是核函数映射的方法。在SVM学习算法中,训练输入样本只存在xiTxj=<xi,xj>这种内积形式。同样,在非线性的支持向量机分类器中,特征空间中的训练输入样本只存在<f(x),f(x)>这种內积的形式。
    通过采用核映射方法,如果核函数的值与特征空间的维度无关、相互独立的话,非线性支持向量机的全体学习时间就完全不依赖特征空间的维数了。像这样的核函数有很多,比如多项式核函数、高斯核函数:


    下图展示的就是利用高斯核函数的非线性支持向量机分类器的例子:

    高斯核函数的支持向量机分类器的例子
    通过上例,我们能够发现:利用非线性的支持向量机分类器,即使非常复杂的数据也得到了正确的分类。
    展开全文
  • 该文在建立支持向量机分类器分类性能评价函数基础上,分析了支持向量机参数对分类性能的影响,提出了一种基于共享函数小生境遗传算法的支持向量机分类器参数优化方法。该方法利用支持向量机分类性能评价函数评价支持...
  • 它是一种二分类模型,当采用核技巧之后,支持向量机可以用于非线性分类。 划分超平面:能将训练集在样本空间中将不同类的样本划分开的超平面,划分超平面可以用wTx+b=0表示,w为法向量,b为超平面相对...

    一、SVM的基本概念

    1、总览:

    在之前的机器学习基本知识中,总结了支持向量机的相关基础概念。
    支持向量机(Support Vector Machine, SVM)是定义在特征空间上间隔最大的线性分类器。它是一种二分类模型,当采用核技巧之后,支持向量机可以用于非线性分类。
    划分超平面:能将训练集在样本空间中将不同类的样本划分开的超平面,划分超平面可以用wTx+b=0表示,w为法向量,b为超平面相对于原点的位移项,就是距离。该划分超平面由法向量w和位移b确定。
    支持向量:划分超平面由法向量w和位移b确定。这时我们可知任一点x到超平面(w,b)的距离。对于二分类,若超平面可以将训练样本正确分类,如式子中显示,且那些离超平面最近的几个训练样本可以使用式子中的等号成立,这些样本就称为支持向量。
    分类间隔:两个异类支持向量到超平面的距离之和就是间隔
    优化目标:优化目标是最大化分类间隔,找到能满足不等式约束的w和b参数,从而得出支持向量机的基本型。上式为一凸二次规划问题,可以转化为最小化的形式,我们使用拉格朗日对偶算法求解。
    核函数:前面的假设训练样本是线性可分的,现实中大部分不是。这时我们可将样本从原始空间映射到一个更高维的特征空间。找到合适的划分超平面,一定存在一个高位空间使样本可划分。高维向量的内积很难,使用核函数计算的是样本映射到特征空间之后的内积。核函数的合适的选择很重要,若不合适就会映射到一个不合适的特征空间里。
    问题:即使恰好找到某个核函数使得训练集在特征空间线性可分,也难以确定这个结果不是由于过拟合造成的。可以让SVM在一些样本上出错,引入了软间隔的概念。
    硬间隔:所有样本完全满足约束。当C无穷大时,为硬间隔。
    软间隔:就是有一些样本不满足约束,可见软间隔的损失函数。当C为有限值时,允许一些样本不满足约束。
    软间隔的替代损失函数:通常是凸的连续函数,如图所示。比如采用hinge损失,还可引入松弛变量,松弛比那里表示某样本不满足约束的程度。如果采用对数损失,几乎得到的就是对数几率回归模型。
    软间隔的目标函数:使用替代损失函数后得到的模型的优化目标函数,第一项都是描述划分超平面的间隔大小,第二项表述训练集上的误差。前者称为结构风险,描述模型f的性质,后者为经验风险,描述模型与训练数据的契合程度。C对二者进行折中。从经验风险最小化的角度看,前一项为正则化项,其智能和称为正则化项,C为正则化常数。正则化项常有以下几种:Lp范数是常用的正则化项,L2范数||w||2倾向w的分量取值尽量均衡,即非零分量个数尽可能稠密,L0和L1倾向w尽可能系数,非零分量尽可能少。
    因此软间隔SVM优化目标为最小化:分类间隔与(C乘以松弛变量之和)的和,C为λ的倒数,它是SVM中的约定,减小C相当于增大正则化强度,惩罚不严格,增大C,我们要施加大的惩罚力度。通过C,从而控制对错误变量的惩罚度。
    支持向量回归:与传统的回归损失的计算不同,它SVR假设最大有e的偏差,当输出值和真实值差别绝对值大于e的时候才计算损失,f(x)为模型输出,可表示为超平面,以f(x)为中心,构建一个2e的间隔带,落在其中(在误差范围内)样本则认为是被正确预测的。
    核方法:若不考虑偏移项b,则无论SVM还是SVR,学得的模型总能表示成核函数的线性组合形式。对于一般的损失函数和正则化项,优化问题的最优解可表示为核函数的线性组合。一系列基于核函数的学习方法,统称为“核方法”,最常见的是通过核化,将线性学习器拓展为非线性学习器。
    在这里插入图片描述
    因此SVM优化目标为最小化:分类间隔与(C乘以松弛变量之和)的和,C为λ的倒数,它是SVM中的约定,减小C相当于增大正则化强度,惩罚不严格,增大C,我们要施加大的惩罚力度。通过C,从而控制对错误变量的惩罚度。
    我们可以运用不同类型的支持向量机解决不同的问题
    (1)线性可分支持向量机(也称为硬间隔支持向量机):当训练数据线性可分时,通过硬间隔最大化,学得一个线性可分支持向量机。
    (2)线性支持向量机(也称为软间隔支持向量机):当训练数据近似线性可分时,通过软间隔最大化,学得一个线性支持向量机。
    (3)非线性支持向量机:当训练数据不可分时,通过核技巧以及软间隔最大化,学得一个非线性支持向量机。核方法:使用SVM解决非线性问题:通过映射函数,将样本的原始特征映射到一个使样本到可分的更高维空间去,在新的特征空间上训练一个线性SVM模型。最常用的是高斯核,可见核是一对样本之间的映射函数。
    下面是数学理解
    在这里插入图片描述

    二、sklearn支持向量机学习

    中文文档英文文档

    1、SVM的用途

    支持向量机 (SVMs) 可用于以下监督学习算法: 分类, 回归 和 异常检测.。
    支持向量机的优点:(1)在高维空间中非常高效,即使在数据维度比样本数量大的情况下仍然有效;(2)在决策函数(称为支持向量)中使用训练集的子集,因此它也是高效利用内存的;(3)通用性: 不同的核函数与特定的决策函数一一对应,常见的 kernel 已经提供,也可以指定定制的内核;
    支持向量机的缺点:(1)如果特征数量比样本数量大得多,在选择核函数 核函数 时要避免过拟合, 而且正则化项是非常重要的;(2)支持向量机不直接提供概率估计,这些都是使用昂贵的五次交叉验算计算的。

    2、支持向量机分类

    2.1。基本分类

    SVCNuSVCLinearSVC 能在数据集中实现多元分类。
    (1)异同:SVC 和 NuSVC 是相似的方法, 接受稍许不同的参数设置并且有不同的数学方程。LinearSVC 是另一个实现线性核函数的支持向量分类.。 LinearSVC 不接受关键词 kernel, 因为它被假设为线性的。它也缺少一些 SVC 和 NuSVC 的成员(members) 比如 support_ 。
    (2)输入类型:和其他分类器一样, 将两个数组作为输入:X是[n_samples, n_features] 大小的数组 ,作为训练样本;y是 [n_samples] 大小的数组,作为类别标签(字符串或者整数)。
    以SCV为例:SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=‘ovr’, degree=3, gamma=‘scale’, kernel=‘rbf’,max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)

    >>> from sklearn import svm
    >>> X = [[0, 0], [1, 1]]
    >>> y = [0, 1]
    >>> clf = svm.SVC(gamma='scale')
    >>> clf.fit(X, y)  
    >>> clf.predict([[2., 2.]])
    

    (3)获取支持向量特性:SVMs 决策函数取决于训练集的一些子集, 称作支持向量. 这些支持向量的部分特性可以通过 support_vectors_, support_ 和 n_support 获得。

    2.2、得分与概率

    得分:decision_function,SVC和NuSVC的 decision_function方法: 给出样例在每个类别分值(scores)(或者二分类中每个样例的一个分值)。
    概率:probability,当 probability 设置为 True 的时候, 类成员概率评估方法开启。(predict_proba 和 predict_log_proba 方法)。 在二分类中,概率使用 Platt scaling 进行标定:将模型输出转化为基于类别的概率分布, 它是在 SVM 分数上的逻辑回归,在训练集上用额外的交叉验证来训练。
    使用建议: 对于大数据集来说,在 Platt scaling 中进行交叉验证是一项昂贵的操作。 另外,概率预测可能与 scores 不一致,因为 scores 的 “argmax” 得到的也许不是概率。 (例如,在二元分类中,一个样本可能通过预测predict被标记某一类,根据predict_proba得到属于该类的概率却小于0.5。.) Platt 的方法也有理论问题. 如果 confidence scores 必要,但是这些没必要是概率, 那么建议设置 probability=False ,并使用 decision_function 而不是 predict_proba。

    2.3、非均衡问题

    很多问题中,期望给予某一类或某个别样例提高权重(importance),这时可以使用的关键字class_weight 和 sample_weight。
    类权重:SVC (而不是 NuSVC) 在 fit 方法中生成了一个关键词 class_weight.。它是形如 {class_label : value} 的字典, value 是大于 0 的浮点数。把参数 C 设置为 C * value即可。

    样本权重:SVC, NuSVC, SVR, NuSVR 和 OneClassSVM,在 fit 方法中通过关键词 sample_weight 为个体样例实现进行权重。与 class_weight 相似,把参数 C 换成 C * sample_weight[i]。也就是fit(sample_weight=sample_weight_last_ten)。sample_weight_last_ten为预定义的权重列表。

    2.4、数据类型

    如果是样本特征值(x)的话是没有限制的,离散、连续的都可以。如果是样本标号值(y)的话,一般是取离散型的,如两类问题一般是{1,-1}。视情况而定,数据是否需要规范化。

    展开全文
  • 为提高多类支持向量机的分类效率,提出了一种基于混合二叉树结构的多类支持向量机分类算法。该混合二叉树中的每个内部结点对应一个分割超平面,该超平面通过计算两个距离最远的类的质心而获得,即该超平面为连接两...
  • matlab源码集锦-基于matlab的支持向量机分类、回归问题
  • 为了使支持向量机具有更好的泛化性能,利用松弛变量的无穷范数度量经验风险,根据结构风险最小化原则,提出了L无穷范数软间隔支持向量机分类模型(L-infinity SVC)。利用La-grange对偶理论,导出其对偶问题,给出...
  • SVM支持向量机分类鸢尾花数据集iris及代码,数据集有Excel、data、txt文件格式,代码有data、txt格式演示
  • 监督分类-支持向量机分类

    千次阅读 2020-06-19 23:41:47
    在经过多次摸索后,决定使用监督分类中的SVM(支持向量机分类法)分类,效果很不错。在之后的数据就使用这个算法。 监督分类(Supervised Classification)又称训练场地法,它基于训练样本以概率统计理论为基础,即在...
  • matlab支持向量机分类实例(十分详细)附数据
  • 支持向量机同样采用分离超平面(或超曲面)来分离正负样本,故支持向量机是二分类分类器。支持向量机是一个非常广泛的领域,不是一两篇博客就能说清楚的,本文简单说下支持向量机分类原理。支持向量机按简单到复杂...
  • 基于改进LBP算子和支持向量机分类的人脸识别方法.pdf
  • 最小二乘支持向量机分类器1.支持向量机分类2.最小二乘支持向量机3.LSSVM的Python实现 在这篇文章中,我们讨论支持向量机(SVM)分类器的最小二乘版本。由于公式中的相等类型约束。解是由解一组线性方程得出的。而不是...
  • 支持向量机分类器(I) 定义:根据训练样本的分布,搜索可能的线性分类器中最优的分类器。 决策关键:空间间隔最小的两个不同类数据点——“支持向量” 代码:使用支持向量机进行识别: #从sklearn....
  • 在在这篇论文中,我们提出了一种新颖的计算机化舌头基于支持向量机的检测方法(支持向量机)。 一、两种量化特征, 颜色和纹理的措施,是从使用流行的图像处理技术制作舌头图像技术。 然后,支持向量机和贝叶斯网络...
  • 最优解对应的分类器即硬间隔支持向量机分类器 2.用于线性模型的支持向量机分类器 硬间隔&软间隔 硬间隔支持向量机分类器:适用于样本线性可分的情况 软间隔支持向量机分类器:适用于样本线性不可分的情况,...
  • 为了在标记样本数目有限时尽可能地提高支持向量机的分类精度, 提出了一种基于聚类核的半监督支持向量机分类方法。该算法依据聚类假设, 即属于同一类的样本点在聚类中被分为同一类的可能性较大的原则去对核函数进行...
  • 自己做的模式识别课程设计,设计并实现了支持向量机分类
  • 支持向量机分类——基于乳腺组织电阻抗特性的乳腺癌诊断的Matlab程序代码 本资源仅供学习交流,侵删

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,006
精华内容 4,402
关键字:

支持向量机分类