猪猪的机器学习笔记(十二)支持向量机

支持向量机

作者:樱花猪

 

摘要

本文为七月算法(julyedu.com)12月机器学习第十二次次课在线笔记。SVM是一种常见的分类器,在很长一段时间起到了统治地位。而目前来讲SVM依然是一种非常好用的分类器,在处理少量数据的时候有非常出色的表现。

引言:

SVM是一个非常常见的分类器,在真正了解他的原理之前我们多多少少都有接触过他。本位将会详细的介绍SVM的原理、目标以及计算过程和算法步骤。我们针对线性可分数据和线性不可分数据介绍了线性支持向量机和非线性支持向量机,并在最后简单阐述非线性支持向量机的重要概念核函数。

SVM实际上就是一个求解极值凸优化的过程,想要更好的了解SVM一定要非常熟悉有关于“凸优化”的内容。当了解“凸优化”后,SVM实际上变得非常容易。

预备知识

凸优化

一、线性可分支持向量机

1、概念

给定线性可分训练数据集,通过间隔最大化得到的分离超平面为:

相应的分类决策函数:,这个决策函数成为线性可分支持向量机。

某个确定的特征空间转换函数,它的作用是将x映射到(更高的)维度。(核函数)

求解分离超平面问题可以等价为求解相应的凸二次规划问题。

分割平面:

训练集:

目标值:

新数据的分类:

2、求解方法

建立目标函数:通过等比例缩放w的方法,使得两类点的函数值都满足

原目标函数:

新目标函数:

拉格朗日乘子法可以得出:

原问题:

原始问题的对偶问题:

计算方案:

1、计算:

推导方式:目标函数的凸优化求极值,为约束最优化解。

2、求得分割超平面

3、分类决策函数

二、线性支持向量机:

若数据线性不可分,则增加松弛影子,使函数间隔加上松弛变量大于等于1,则约束条件变成:

目标函数:

求解过程类似线性可分支持向量机,但是在求的时候,有所区别(要考虑松弛因子)

实践中往往取支持向量的所有值取平均,作为b*

三、核函数

可以使用核函数,将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分。

常见的核函数:多项式核函数、高斯核函数、字符串核函数。

在实际应用中,往往依赖先验领域知识/交叉验证等方案才能选择有效的核函数。

如果有更多先验信息,则使用高斯核函数。

来自为知笔记(Wiz)

时间: 2024-10-06 00:07:14

猪猪的机器学习笔记(十二)支持向量机的相关文章

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

虚拟机VMWare学习笔记十二 - 将物理机抓取成虚拟机

1. 安装VMware vCenter Converter Standalone Client 运行虚拟机,File -- Virtualize a Physical Machine 这时如果电脑中没有VMware vCenter Converter Standalone Client ,则会进行安装. 安装过程 之后图标会出现在桌面上,双击运行 选择连接到本地服务器,登陆 点击转换计算机 这个,可以将本地计算机抓取成虚拟机,也可以将其他可以访问的计算机(需知道管理员用户名及密码)抓取成虚拟机.

swift 笔记 (十二) —— 下标

下标 swift允许我们为 类,结构体,枚举 定义下标,以更便捷的方式访问一大堆属性.比如Array和Dictionary都是结构体,swift的工程师已经为这两个类型提供好了下标操作的代码,所以,我们才可以通过 myArray[2]这种方式,读取和改写这个struct中保存的数据.而且,一个类型中可以定义多种下标访问方式(重载,关于重载,在后面的笔记中会提到,这里先不用太在意) 下标可以定义为"读写"型的,也可以定义为"只读"型,这种行为,是通过定义一组操作完成的

《Hibernate学习笔记十二》学生、课程、分数关系的设计与实现

<Hibernate学习笔记十二>学生.课程.分数关系的设计与实现 这个马士兵老师的Hibernate视频学习的一个题目,这里面要用到多对多.多对一的关联关系以及联合主键,因此觉得挺好的,自己写篇博文来记录下. 先考虑数据库表 1.学生表:为简单起见,只考虑了学生id和学生姓名,其中id为主键 2.课程表:为简单起见,只考虑了课程id和课程名称,其中id为主键 3.分数表 分数表有两种解决方案 3.1 第一种为:使用联合主键:student_id 和 course_id 3.2 第二种:不使用

laravel3学习笔记(十二)

原作者博客:ieqi.net ==================================================================================================== 请求反射 HTTP 协议本身是无状态性的,但是在应用中处理各种业务逻辑时我们必须要有状态的把控,这样,折中的办法就是将状态进行标记然后嵌入到 HTTP 协议的请求中,然后应用根据这些标记来进行状态的串联以及处理.所以我们就要对请求进行反射处理以获取请求信息, Lara

Spark机器学习实战 (十二) - 推荐系统实战

0 相关源码 将结合前述知识进行综合实战,以达到所学即所用.在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统. 1 推荐系统简介 1.1 什么是推荐系统 1.2 推荐系统的作用 1.2.1 帮助顾客快速定位需求,节省时间 1.2.2 大幅度提高销售量 1.3 推荐系统的技术思想 1.3.1 推荐系统是一种机器学习的工程应用 1.3.2 推荐系统基于知识发现原理 1.4 推荐系统的工业化实现 Apache Spa

猪猪的机器学习笔记(十八)条件随机场

条件随机场 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十八次课在线笔记.条件随机场是一种判别式概率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列. 引言: “条件随机场”被用于中文分词和词性标注等词法分析工作,一般序列分类模型常常采用隐马尔科夫模型(HMM),像基于类的中文分词.但隐马尔可夫模型中存在两个假设:输出独立性假设和马尔可夫性假设.其中,输出独立性假设要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能

java jvm学习笔记十二(访问控制器的栈校验机制)

欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们会简单的描述一下jvm访问控制器的栈校验机制. 这节课,我们还是以实践为主,什么是栈校验机制,讲一百遍不如你自己实际的代码一下然后验证一下,下面我们下把环境搭起来. 第一步,配置系统环境.(copy吧,少年) path=%JAVA_HOME%/bin JAVA_HOME=C:/Java/jdk1.6

寒假阅读笔记十二

架构之美--最终用户应用架构(二) 今天,我阅读的是<架构之美>的第十二章,这一章主要讲的是Akonadi框架,让我充分了解了Akonadi框架是什么?怎么用? kde 4.1中的Akonadi是一个以mysql为存储管理的 KDE 4 存储接口.它分为两个部分,一个称之为 Akonadi服务器,一个是为用户程序提供的和Akonadi服务器打交道的库,Akonadi服务器是单独提供的程序,属于kde的支持部分的一个软件.用户库包含在kdepimlibs之中.Akonadi目前的主要应用是做为k