• 机器学习——支持向量机原理


    Support Vector Machine

            要解决的问题:什么样的决策边界才是最好的呢?

            决策边界:选出来离两个类别的距离最远的决策边界

    点到平面的距离的计算         

             

    数据标签定义 

    数据集:(X1,Y1)(X2,Y2)… (Xn,Yn)
    Y为样本的类别: 当X为正例时候 Y = +1 当X为负例时候 Y = -1
    决策方程:

    优化的目标 

    通俗解释:找到一个条线(w和b),使得离该线最近的点能够最远
    将点到直线的距离化简得:

     

    目标函数 

    放缩变换:对于决策方程(w,b)可以通过放缩使得其结果值|Y|>= 1

     (之前我们认为恒大于0,现在严格了些)

    优化目标:

     

    因为后面最小值为1

     常规套路:将求解极大值问题转换成极小值问题:

     如何求解:应用拉格朗日乘子法求解

    拉格朗日乘子法

            带约束的优化问题:  

             原式转换:

             我们的式子:

             (约束条件不要忘:

            分别对w和b求偏导,分别得到两个条件(由于对偶性质) 

            

             对w求偏导:

             对b求偏导:

    SVM求解

            带入原始: 

            其中           

     

     

    完成了第一步求解 

     继续对ɑ求极大值:

    条件: 

     极大值转换成求极小值:

    条件: 

    SVM求解实例

            数据:3个点,其中正例 X1(3,3) ,X2(4,3) ,负例X3(1,1)

            求解: 

             约束条件:

     

     原式:

    由于:  

    化简可得:  

    分别对ɑ1和ɑ2求偏导,偏导等于0可得: 

     (并不满足约束条件,所以解应在边界上)

    最小值在(0.25,0,0.25)处取得

    将ɑ结果带入求解 

     

    平面方程为: 

     支持向量:真正发挥作用的数据点,ɑ值不为0的点,即边界点,非边界点的ɑ值必定为0

    soft-margin 

    软间隔:有时候数据中有一些噪音点,如果考虑它们咱们的线就不太好

    之前的方法要求要把两类点完全分得开,这个要求有点过于严格
    为了解决该问题,引入松弛因子

     

    新的目标函数: 

    当C趋近于很大时:意味着分类严格不能有错误

    当C趋近于很小时:意味着可以有更大的错误容忍

    C是我们需要指定的一个超参数

    拉格朗日乘子法:

    约束:  

     

    同样的解法:

    低维不可分问题

            核变换:既然低维的时候不可分,那我给它映射到高维呢?

             低维不可分问题

    目标:找到一种变换的方法,也就是 \o (𝑋)

    实例:

     高斯核函数:

    线性核函数
    高斯核函数

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    sql注入学习笔记
    Java:java版结巴分词:jieba-analysis
    一文带你学会Vue3基本语法
    黑客技术(网络安全)自学2024
    IE URL传参问题
    这6点建议,助你解决海外客户的视频验厂!
    【Python大数据笔记_day09_hive函数和调优】
    基于springboot+vue的养老院管理系统 前后端分离项目
    使用 Redis 实现分布式锁,解决分布式锁原子性、死锁、误删、可重入、自动续期等问题(使用SpringBoot环境实现)
    Oracle创建索引
  • 原文地址:https://blog.csdn.net/qq_52053775/article/details/126083064