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

一起学西瓜书06支持向量机(基本概念+间隔)

一起学西瓜书06支持向量机这部分内容是我以前接触比较少的,接下来将从线性分类器开始介绍支持向量机SVM推荐一个支持向量机的理解视频:支持向量机最清晰简单的解释一看就懂Maxim
一起学西瓜书06 支持向量机

这部分内容是我以前接触比较少的,接下来将从线性分类器开始介绍支持向量机SVM
推荐一个支持向量机的理解视频:支持向量机@最清晰简单的解释@一看就懂

Maximal margin classifier

对于一组一维的数据,线性分类器的目的就是找到一个超平面(阈值),也就是图中橙色的那条线把它们分成2类
而我们之后的数据如果落在阈值左边就判断它属于红色那类的,如果落在阈值右边就属于绿色那类
在这里插入图片描述
在最普通的情况下,我们所选择的阈值的是红和绿的两个边界点的中间位置
而边界点到阈值的举例之和,也就是绿色的虚线和红色的虚线之和称为margin,可能在一维的数据里看的不太清楚,但是在二维空间中,我们就可以很清晰的看到margin的大小,而Maximal margin classifier 顾名思义就是margin取最大值的时候来确定阈值的方法
在这里插入图片描述
当然这个方法对异常值过于敏感,如下图所示,异常值会让它的分类不够准确在这里插入图片描述
为了解决Maximal margin classifier的异常值敏感问题,Soft Margin就随之诞生了

Soft Margin

Soft Margin允许存在异常点,如下图,是它在异常点存在时的选择
在这里插入图片描述
那么它是如何在异常点存在的时候决定选择哪两个点作为衡量阈值标准的呢?
视频里说到它使用了交叉验证的方法(后文会介绍)来衡量如何确定两个点作为边界点
在这里插入图片描述
而在这两个确定下来的点中间的那些数据就称为Support Vectors 支持向量在这里插入图片描述
下面展示不同维度的数据

一维数据

在这里插入图片描述

三维数据

在这里插入图片描述

局限性

我们可以看到下面的这组数据如果用上面的办法是无法得到一个较好的阈值的,这个时候便需要引入SVM的概念
在这里插入图片描述
下面就进入SVM的介绍

Support Vector Machines 支持向量机

对上面的数据,我们可以将它升维到二维,用二维的手段处理一维的数据,如下图
在这里插入图片描述
就很容易的可以找到我们想要的那个超平面在这里插入图片描述

1.间隔与支持向量

书上的D={(x1,y1),...}D=\{(x_1,y_1),...\}D={(x1,y1),...}
首先,这里y的取值要么是1要么是-1,也就是一个二分类的问题
x1x_1x1代表的一个向量(x11,x12,x13…)它不是一个数

划分超平面

这段话该如何理解呢,他将我们所求的那个阈值(超平面)转化为一个通用的表达式,下面我举几个例子来说明
在这里插入图片描述
对于一维的数据来说,阈值其实就是x = 一个值
对于二维的数据来说,阈值是一条直线
由下图我们可以看出,阈值(划分超平面)可以由法向量w和b来决定

在这里插入图片描述

距离公式

在这里插入图片描述
在这里插入图片描述

间隔

根据上面的公式,我们已经确认出了划分超平面,在此基础上,下图给出了间隔的定义
在这里插入图片描述
我们首先看图,很好看出,对于直线上方的点,我们都把它划分为正类,对直线下方的点,我们都把它分为负类,而我们认为距离划分超平面直线最近的那两个点为 +1/-1 也就是图中圈出的三个点,其他的样本点都大于1或者小于-1
而间隔的定义就是两个临界点到划分超平面的距离
在这里插入图片描述
距离公式已经给出了,而临界点(也就是距离超平面最近的训练样本点).它们的wx+b=1/-1,所以我们很好看出,间隔的值就是两倍的r
r=2∣∣w∣∣r = \frac{2}{||w||}r=w2
我们的目的是使间隔最大,间隔刚刚我们已经求了是r=2∣∣w∣∣r = \frac{2}{||w||}r=w2,下图中将其倒数了一下,就变成了求r=∣∣w∣∣2r = \frac{||w||}{2}r=2w的最小值
公式中满足的条件是
在这里插入图片描述
很显然,因为yi要么是1要么是-1,而wx+b的最小值是-1,最大值是1,所以这个条件的意思就是符合之前图中的超平面划分
在这里插入图片描述


推荐阅读
  • svm 高斯核为什么惩罚项越大_SVM分类、核函数、损失函数
    1、支持向量机:支持向量机(SupportVectorMachine,SVM)是一类按监督学习(supervisedlear ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
蘑菇-2166_315
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有