zoukankan      html  css  js  c++  java
  • 支持向量机(SVM)

    1.SVM:

    SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。

    2.SVM为什么采用间隔最大化:

    1.当训练数据可分的时候,存在很多超平面可以将数据分开

    2.感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。

    3.线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最棒的,对未知实例的泛化能力最强。

    然后应该借此阐述,几何间隔,函数间隔,及从函数间隔—>求解最小化1/2 ||w||^2 时的w和b。即线性可分支持向量机学习算法—最大间隔法的由来。

    3.为什么要将求解SVM的原始问题转换为其对偶问题?

    一、是对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。)

    二、自然引入核函数,进而推广到非线性分类问题。
    4.为什么要引入SVM核函数?

    当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

    当数据是线性不可分的情况下,SVM求解分类的超平面是使用核函数。有的数据在低维空间不可分,但是映射到高维空间后它可能是线性可分的,比如,一维线上的点不线性可分,映射到二维(平方函数)就可能可以分开了。但是在映射的时候有一个问题,是一个计算问题,低维空间映射到高维空间,在高维空间上直接计算的话回产生一个维灾难的问题(2->5, 3->19...)。这个地方就引入了核函数,核函数是计算两个向量在隐式映射过后的空间中的内积的函数,通过核函数可以使数据不用在映射后的高维空间中计算,而是在原来的低维空间中计算(在原来的低维空间上做内积)。
    5.松弛变量

    松弛变量的引入也就是允许某些点离超平面的距离小于1,也即放弃了这些点的分类精度,惩罚因子决定了对离群点的重视程度,C越大,表示分错某一个点需要付出更大的代价(这个可以一定程度上缓解正负样本数量相差太大的问题)。

    6.LR和SVM的相同点和不同点:

    相同点:1.都是分类算法   2.都是线性分类器  3.都是监督学习算法 4.LR和SVM都是判别模型

    不同点:1.逻辑回归的损失函数,支持向量机的目标函数,2.支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局

    3.支持向量机改变非支持向量样本并不会引起决策面的变化 ,逻辑回归中改变任何样本都会引起决策面的变化

    4.在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。

    5.线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。

    7.SVM的损失函数就自带正则,而LR必须另外在损失函数上添加正则项。

  • 相关阅读:
    显示网页加载时间
    ASP.NET MVC使用jQuery来POST数据至数据库中
    jQuery的prop和attr方法之间区别
    jQuery动态产生的铵钮怎样实现事件处理
    上传Text文档并转换为PDF
    学习jQuery的on事件
    使用ViewBag传送数据从控制器至视图
    ASP.NET MVC读取XML并使用ViewData显示
    ASP.NET MVC铵钮Click后下载文件
    如何把Json格式字符写进text文件中
  • 原文地址:https://www.cnblogs.com/ConnorShip/p/9958361.html
Copyright © 2011-2022 走看看