当前位置: 首页 > news >正文

什么是SVM算法?硬间隔和软间隔的分类问题

SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。

SVM能够执行线性或⾮线性分类、回归,甚至是异常值检测任务。它是机器学习领域最受欢迎的模型之一。SVM特别适用于中小型复杂数据集的分类。

1662543937323_6.png

超平面最大间隔

超平面最大间隔

上左图显示了三种可能的线性分类器的决策边界:虚线所代表的模型表现非常糟糕,甚至都无法正确实现分类。其余两个模型在这个训练集上表现堪称完美,但是它们的决策边界与实例过于接近,导致在面对新实例时,表现可能不会太好。

右图中的实线代表SVM分类器的决策边界,不仅分离了两个类别,且尽可能远离最近的训练实例。

硬间隔分类

在上面我们使用超平面进行分割数据的过程中,如果我们严格地让所有实例都不在最大=大间隔之间,并且位于正确的一边,这就是硬间隔分类。

硬间隔分类有两个问题,首先,它只在数据是线性可分离的时候才有效;其次,它对异常值非常敏感。

当有一个额外异常值的鸢尾花数据:左图的数据根本找不出硬间隔,而右图最终显示的决策边界与我们之前所看到的无异常值时的决策边界也大不相同,可能无法很好地泛化。

1662544014623_8.png

软间隔分类

要避免这些问题,最好使用更灵活的模型。目标是尽可能在保持最大间隔宽阔和限制间隔违例(即位于最大间隔之上,甚至在错误的一边的实例)之间找到良好的平衡,这就是软间隔分类。

要避免这些问题,最好使用更灵活的模型。目标是尽可能在保持间隔宽阔和限制间隔违例之间找到良好的平衡,这就是软间隔分类。

软间隔分类

在Scikit-Learn的SVM类中,可以通过超参数C来控制这个平衡:C值越小,则间隔越宽,但是间隔违例也会越多。上图 显示了在一个非线性可分离数据集上,两个软间隔SVM分类器各自的决策边界和间隔。

左边使用了高C值,分类器的错误样本(间隔违例)较少,但是间隔也较小。

右边使用了低C值,间隔大了很多,但是位于间隔上的实例也更多。看起来第二个分类器的泛化效果更好,因为大多数间隔违例实际上都位于决策边界正确的一边,所以即便是在该训练集上,它做出的错误预测也会更少。

http://www.lryc.cn/news/96870.html

相关文章:

  • Normalization(BN and LN) in NN
  • opencv-22 图像几何变换01-缩放-cv2.resize()(图像增强,图像变形,图像拼接)
  • python机器学习(五)逻辑回归、决策边界、代价函数、梯度下降法实现线性和非线性逻辑回归
  • 聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法
  • 【机器学习】机器学习中的“本体”概念
  • ChatGPT是否能够进行对话中的参考和指代解析?
  • 网红项目AutoGPT源码内幕及综合案例实战(三)
  • 第八章:list类
  • VUE声音-报警-实现方式
  • 【Coppeliasim C++】焊接机械臂仿真
  • 【LeetCode】94.二叉树的中序遍历
  • AWS IAM介绍
  • MySQL碎片清理
  • elasticsearch操作(API方式)
  • Vue2.0 使用 echarts
  • 企业微信,阿里钉钉告警群机器人
  • linux下的tomcat
  • Vue源码学习 - new Vue初始化都做了什么?
  • 新零售数字化商业模式如何建立?新零售数字化营销怎么做?
  • C++语法(26)--- 特殊类设计
  • YAML+PyYAML笔记 2 | YAML缩进、分离、注释简单使用
  • Array(20) 和 Array.apply(null, {length: 20})
  • Mind+积木编程控制小水泵给宠物喂水
  • 【Linux从入门到精通】进程的控制(进程替换)
  • rancher平台上强制删除pod服务操作
  • 【Docker】Docker的通信安全
  • c# 函数中可选参数太多,想设置最后一个参数,又不想修改前面默认参数
  • openvino资料(1)
  • 第71篇:某银行外网打点到内网核心区红队评估复盘
  • 网络安全 Day21-数据库知识