zoukankan      html  css  js  c++  java
  • SVM从入门到精通

    参考:https://blog.csdn.net/v_july_v/article/details/7624837

    SVM定义

    支持向量机,是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

    分类标准的起源:Logistic回归

    Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。

    假设函数:

    其中x是n维特征向量,函数g就是logistic函数,取值范围(0,1)

    对新的特征做预测时,只需要求h(x),如果大于0.5就是y=1的类,反之就是y=0

    h(x)只跟 $ heta^Tx$有关,$ heta^Tx$>0, 那么h(x)>0.5, g(z)只是用来映射的,真实的类别决定权还在于$ heta^Tx$.

    当$ heta^Tx>>0$,h(x)=1,  Logistic回归就是要学习得到$ heta$,使得正例的特征远大于0,负例的特征远小于0,而且要在全部训练实例上达到这个目标

    其中$ heta^Tx$中有一项是$ heta_0$,就等价于线性分类器中的b

    除了y由y=0变成y=-1外,线性分类函数跟logistic回归的形式化表示没区别。

    线性分类器

    当f(x) = 0, 表示x是位于超平面上的点,当f(x)>0 的点对应于y=1的数据点, f(x)<0的点对应于y=-1的点

    换言之,在进行分类的时候,遇到一个新的数据点x,将x代入f(x) 中,如果f(x)小于0则将x的类别赋为-1,如果f(x)大于0则将x的类别赋为1。

     接下来的问题是,如何确定这个超平面呢?从直观上而言,这个超平面应该是最适合分开两类数据的直线。而判定“最适合”的标准就是这条直线离直线两边的数据的间隔最大。所以,得寻找有着最大间隔的超平面。

    函数间隔Functional margin与几何间隔Geometrical margin

    函数间隔定义

    $gamma=y(w^Tx+b)=yf(x)$这是对于单个样本到超平面的函数间隔

    总体函数间隔定义如下:

    $hat{gamma}=min gamma_i$   所以样本点中离超平面最近的距离作为最终的函数间隔

    但是这样定义有问题,如果成比例改变W,b,比如扩大为2倍,那么函数间隔也将扩大2倍(此时超平面没有改变)、

    所以我们要对法向量w加些约束条件,从而引出真正定义点到超平面的距离--几何间隔

  • 相关阅读:
    java getEnv不区分大小写 getProperty区分大小写
    spring 解析配置文件问题
    (转载)Java里快如闪电的线程间通讯
    quartz中关键类
    HTTP中缓存相关
    (转载)javascript函数作用域和提前声明
    (转载)ETL利器Kettle实战应用解析系列一【Kettle使用介绍】
    rcnn 理解笔记
    打乱图片顺序,按一定比例分别存放
    Python 批量读取文件夹下的图片,并保存在文档下
  • 原文地址:https://www.cnblogs.com/lainey/p/8661944.html
Copyright © 2011-2022 走看看