热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

支持向量机(SVM)在机器学习中的应用与学习心得

支持向量机(SVM)是一种高效的二分类模型,其核心目标是通过寻找最优超平面来区分不同类别的数据点。在实际应用中,SVM能够有效地处理高维数据,并通过核技巧扩展到非线性分类问题。当新的数据点输入时,SVM会根据其相对于超平面的位置来判定其所属类别。训练过程中,SVM通过最大化间隔来确定最优超平面,从而提高模型的泛化能力。本文总结了SVM在机器学习中的应用及其学习心得,探讨了其在实际问题中的优势和局限性。
  支持向量机是一种二分类算法,算法目的是找到一个最佳超平面将属于不同种类的数据分隔开。当有新数据输入时,判断该数据在超平面的哪一侧,继而决定其类别。 具体实现思路:

  训练过程即找到最佳的分隔超平面的过程。当数据特征数是2时,超平面就是一条直线;当数据的特征数是3时,超平面就是一个平面;当数据特征数为1024时,就需要一个2013维的超平面来对其分类。分隔超平面的形式可以写为:wTx+b

  最佳超平面的判断依据是,希望离超平面最近的点离超平面尽可能远。支持向量就是指那些离超平面最近的点。

  分类函数:

  使用单位跃阶函数作用到wTx+b上得到f(wTx+b),当wTx+b大于0时函数输出为1,反之为-1,而不是像LR之类算法输出1或0。使用这个函数的好处是当计算数据点到分隔超平面的距离来确定超平面的位置时,间隔通过label*(wTx+b)来计算,那么不管是正分类还是负分类的数据点,其间隔都是正数。

  优化目标函数:

  ——公式(1)

  上式为优化的目标函数。是点到分割面的函数间隔,当wT和b等比例放大时,函数间隔的值可以随之变大,因此不具有优化价值。所以优化目标函数中使用点到分割面的几何间隔

  直接对公式(1)进行求解十分困难,因此考虑固定一个因子而最大化其它因子。令支持向量的函数间隔为1,最大化1/||w||来求得最终解。因为除支持向量外的其他点的函数间隔都大于1,所以约束条件是,所以可以得到新的目标函数(最小化||w||2和最大化1/||w||是一样的,y就是x对应的label):

——公式(2)

  拉格朗日对偶:

  目标函数公式(2)的求解可以用拉格朗日对偶思想进行优化。首先定义广义拉格朗日函数为:

  

  然后令:

  ,其中

  当所有约束条件均满足,即时,α均为0时取得最大值,此时

  所以目标函数变为

  

  当函数在满足KKT条件时,可以转化为其对偶问题,即上式可以转化为

  ——公式(3)

  做对偶化的原因是这样可以简化求解过程,且经过验证本问题中的函数满足KKT条件。至于KKT条件是什么,这里就不详细介绍了,反正就是一个数学条件。

  至此,我们求最优间隔面的问题成功地转化为了公式(3)。

 

  目标函数求解:

  首先固定αi ,让L取得关于w和b的最小值。分别对w和b求偏导数(这可能就是进行拉格朗日对偶化的原因吧),并令导数为0可得:

  

   

  将上面两个式子代入公式(3),化简得到目标函数为(因为有两个w,所以alpha、x、y的下标用 i 和 j 来区分):

  ——公式(4)

  此时决策规则变为:

  若,则样本u为正分类样本。

  而b可以用wT*x+b=0来求,所以现在的问题就只剩下求解满足公式(4)的alpha。

  SMO算法:

  SMO算法是将大优化问题分解为多个小优化问题来求解。

  其工作原理是:每次循环选择两个α进行优化处理。一旦找到一对合适的α,就增大其中一个同时减小另一个。

  SMO算法能求出一系列alpha,一旦求出了这些alpha,就很容易计算出权重向量w和b并得到分隔超平面。

核函数——将低维数据映射到高维空间:

  当遇到数据集线性不可分的情况时,就无法在本维度进行求解。但利用核函数将数据映射到高维空间,就有可能成为线性可分的数据集。根据公式6可知需要求极值的L函数只与 xi 和 xj 的点积有关,所以核函数需要做的只是提供空间变换后两向量的点积,我们甚至不需要知道这个空间变换是什么。常用的核函数有线性核函数和指数核函数:

——线性核函数

——指数核函数

 


推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 概述SVM(支持向量机)是一个二分类的模型,它的主要思想就是间隔最大化,那么问题来了,什么是间隔最大化&#x ... [详细]
  • 机器学习算法常见面试题目总结,Go语言社区,Golang程序员人脉社 ... [详细]
  •   作为一种编程语言,Python比C#,Java,C和C++更具吸引力。它被称为“胶水语言”,它也被喜欢它的程序员誉为“美丽”的编程语言。从云计算,客户端到物联网终端,Pytho ... [详细]
  • 圣诞节到了,智能菌想送你一份礼物
    关注网易智能,聚焦AI大事件,读懂下一个大时代!(机器学习算法地图见文末)圣诞节的赠书活动来了! ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 支持向量机训练集多少个_25道题检测你对支持向量机算法的掌握程度
    介绍在我们学习机器算法的时候,可以将机器学习算法视为包含刀枪剑戟斧钺钩叉的一个军械库。你可以使用各种各样的兵器,但你要明白这些兵器是需要在合适的时间合理 ... [详细]
  • 机器学习之数据均衡算法种类大全+Python代码一文详解
    目录前言一、为什么要做数据均衡?二、数据场景1.大数据分布不均衡2.小数据分布不均衡三、均衡算法类型1.过采样2.欠采样3.组合采样四、算法具体种类1 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 计算机图形学基础:辐照度学原理与应用综述
    辐照度(irradiance)是指单位面积上接收到的电磁辐射功率,可视为入射点处的能量密度。在计算机图形学领域,辐照度计算是确定场景中每个位置光照效果的关键步骤。通过对辐照度的精确建模,可以实现更加逼真的光照渲染,提升视觉效果的真实感和沉浸感。本文综述了辐照度的基本原理及其在计算机图形学中的多种应用,探讨了当前研究的热点和技术挑战。 ... [详细]
  • PRML读书会第十四章 Combining Models(committees,Boosting,AdaBoost,决策树,条件混合模型)...
    主讲人网神(新浪微博:豆角茄子麻酱凉面)网神(66707180)18:57:18大家好,今天我们讲一下第14章combiningmodel ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
author-avatar
手机用户2602938483
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有