统计学习方法 学习笔记(五):支持向量机(下)

通过支持向量机(上)和支持向量机(中)的介绍,对支持向量机应该有点感性的认识啦!在这个学习笔记中,来继续探寻带核函数的支持向量机(解决如下图所示的问题)

对解线性分类问题,线性分类支持向量机是一种非常有效的方法。但是,有时分类问题是非线性的,这时可以使用非线性支持向量机。

 

核技巧:

    如上图所示,设原空间为$\mathcal{X} \subset R^2, x = (x^{(1)},x^{(2)})^T \in \mathcal{X}$,新空间为$\mathcal{Z} \subset R^2, z = (z^{(1)},z^{(2)})^T \in \mathcal{Z}$,定义从原空间到新空间的变换(映射):

$$z = \phi (x) = ((x^{(1)})^2,(x^{(2)})^2)^T$$

经过变换$z=\phi (x)$,原空间$ \mathcal{X} \subset R^2 $变换为新空间$ \mathcal{Z} \subset R^2$,原空间中的点相应地变换为新空间中的点,原空间中的椭圆:

$$w_{1}(x^{(1)})^2 +w_{2}(x^{(2)})^2 + b = 0$$

变换成为新空间中的直线:

$$w_{1}z^{(1)} + w_{2}z^{(2)} + b = 0 $$

在变换后的新空间里,直线$w_{1}z^{(1)} + w_{2}z^{(2)} + b = 0$可以将变换后的正负实例点正确分开。这样,原空间的非线性可分问题就变成了新空间的线性可分问题。

    上面的例子说明,用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。

    核技巧应用到支持向量机,其基本想法就是通过一个非线性变换将输入空间对应一个特征空间,使得在输入空间$R^n$中的超曲面模型对应于特征空间$\mathcal{H}$中的超平面模型(支持向量机)。这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。

    核函数的定义

    设$\mathcal{X}$是输入空间(欧式空间$R^n$的子集或离散集合),又设$\mathcal{H}$为特征空间(希尔伯特空间),如果存在一个从$\mathcal{X}$到$\mathcal{H}$的映射:

$$\phi (x): \mathcal{X} \rightarrow \mathcal{H}$$

使得对所有$x,z \in \mathcal{X}$,函数$K(x,z)$满足条件:

$$K(x,z) = \phi (x)\cdot \phi (z)$$

则称$K(x,z)$为核函数,$\phi (x)$为映射函数,式中$\phi (x)\cdot \phi (z) $为$\phi (x)$和$\phi (z)$的内积。

    核技巧的想法是,在学习与预测中只定义核函数$K(x,z)$,而不显示地定义映射函数$\phi$。通常,直接计算$K(x,z)$比较容易,而通过$\phi (x)$和$\phi (z)$计算$K(x,z)$并不容易。注意,$\phi$是输入空间$R^n$到特征空间$\mathcal{H}$的映射,特征空间$\mathcal{H}$一般是高维的,甚至是无穷维的。

核技巧在支持向量机中的应用:

    在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积。在对偶问题的目标函数中内积$x_i\cdot x_j$可以用核函数$K(x_i,x_j) = \phi (x_i) \cdot \phi (x_j)$ 来代替。此时对偶问题:

$$W(\alpha) = \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum_{i=1}^{N}\alpha_i$$

同样,分类决策函数中的内积也可以用核函数代替,而分类决策函数式为:

$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_i\phi (x_i)\cdot \phi (x) + b^{*}) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_iK(x_i,x) + b^{*})$$

这等价于经过映射函数$\phi$将原来的输入空间变换到一个新的特征空间,将输入空间中的内积$x_i\cdot x_j$变换为特征空间中的内积$\phi (x_i)\cdot \phi (x_j)$,在新的特征空间里从训练样本中学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。

    也就是说,在核函数$K(x,z)$给定的条件下,可以利用线性分类问题的方法求解非线性分类问题的支持向量机。学习是隐式地在特征空间进行的,不需要显示地定义特征空间和映射函数。这样的技巧称为核技巧,它是巧妙地利用线性分类学习方法与核函数解决非线性问题的技术。在实际应用中,往往依赖领域知识直接选择核函数。下面介绍两种核函数:

常用核函数:

(1)多项式核函数(polynomial kernel function):

$$K(x,z) = (x\cdot z + 1)^p$$

对应的支持向量机是一个$p$次多项式分类器。在此情形下,分类决策函数成为:

$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_i(x_i\cdot x + 1)^p + b^{*})$$

(2)高斯核函数(Gaussian kernel function)

$$K(x,z) = exp(- \frac{||x-z||^2{2\sigma^{2}}})$$

对应的支持向量机是高斯径向基函数(radial basis function)分类器。在此情形下,分类决策函数成为:

$$f(x) = sign(\sum_{i=1}^{N_s}\alpha_{i}^{*}y_iexp(- \frac{||x-z||^2}{2\sigma^{2}}) + b^*)$$

 

非线性支持向量机学习算法:

    输入:训练数据集$T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}$,其中$x_i \in \mathcal{X} = R^n, y_i \in \mathcal{Y} = {-1,+1},i=1,2,...,N$;

    输出:分类决策函数

    (1)选取适当的核函数$K(x,z)$和适当的参数$C$,构造并求解最优化问题:

$$\min_{\alpha} \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum_{i=1}^{N}\alpha_i$$

$$s.t.    \sum_{i=1}^{N}\alpha_iy_i = 0$$

$$ 0 \leq \alpha_i \leq C, i=1,2,...,N$$

求得最优解$\alpha^{*} = (\alpha_{1}^{*},\alpha_{2}^{*},...,\alpha_{N}^{*})^T$

    (2)选择$\alpha^{*}$的一个正分量$0<\alpha_{j}^{*}<C$,计算

$$b^{*} = y_j - \sum_{i=1}^{N}\alpha_{i}^{*}y_iK(x_i\cdot x_j)$$

    (3)构造决策函数:

$$f(x) = sign(\sum_{i=1}^{N}\alpha_{i}^{*}y_iK(x\cdot x_i) + b^{*})$$

当$K(x,z)$是正定核函数时,上述目标函数是凸二次规划问题,解是存在的。对偶算法的实现请参考序列最小最优化算法。

转载于:https://www.cnblogs.com/double-lin/p/10420515.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

是先设计mysql表再进行php代码_PHP与RBAC设计思路,数据表设计与源码讲解

权限系统模块对于互联网产品是一个非常重要的功能&#xff0c;可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用权限控制有哪些模型ACLRBAC 基于角色的访问控制从上图我们可以看出&#xff0c;ACL是用户和权限直接关系的&#xff0c;而RBAC则是通过角色间接关联用…

SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串

自定义取出第几个分割字符前的字符串&#xff0c;默认位置&#xff08;0&#xff09;格式&#xff1a;dbo.split(字段名,分隔字符,取出的第几个字符串)如果没有分隔的字符&#xff0c;则返回整个字符串。如果取出的位置字符串的位置超出Index则返回空。CREATE FUNCTION [dbo].[…

判断页面关闭的方法 UNLOAD/onbeforeunload

最近一个朋友做在线统计&#xff0c;问我怎么判断用户登陆和离开。获得用户登陆不用说了&#xff0c;大家都知道&#xff0c;判断离开的话就有一点问题了&#xff0c;如果说用户都是按照设计者的规定的范围触发退出事件离开的话那就没什么难度了&#xff0c;但是用户的离开方式…

mysql 第几周 时间戳_php时间戳函数实现计算第几周,以及当天所在周的具体日期范围...

<html><script language"javascript">function showdate(){c new Date(2008,1,29);//输入开学的日期.注意,月份是从0-11;comperc.getTime();//以2008年2月29日作为上半学期结束。然后记录新的开学日期var now new Date();//获取当前时间var d_nownow.ge…

java学习笔记④MySql数据库--03/04 DQL查询

03 使用DQL查询数据&#xff08;一&#xff09; 04 使用DQL查询数据&#xff08;二&#xff09; DQL 数据查询语言 select select * 方式效率低 AS 取别名 (给字段取别名,给表取别名,给计算结果取别名) as取别名时,可省略as distinct 去重 所有字段一起不重复算一条记录 selec…

2005国产空间信息系统软件测评结果揭晓

记者&#xff1a;云洲 来源&#xff1a;www.3sNews.net 责编&#xff1a;小柯 [3sNews讯]2005年12月27&#xff0c;为期两天的“地球观测与导航技术领域科技发展研讨会”于中国科技会堂胜利召开&#xff0c;备受业界关注的2005国产空间信息系统软件测评结果在会上揭晓&am…

python考试有什么用_Python有什么用?2020年学习Python的10个理由

如果你想学习 Python&#xff0c;但是不知道为什么要学习&#xff0c;那么这里有 10 个理由&#xff0c;强调了在 2020 年学习 Python 的好处。不过&#xff0c;这些问题取决于谁在问&#xff0c;也就是说&#xff0c;对于初学者来说&#xff0c;学习Python是有意义的&#xff…

NDoc修改版,支持中文注释及中文界面。

这几天正在做一个项目的开发文档&#xff0c;以前试用NDoc做开发文档时不支持中文&#xff0c;真是不爽。这几天看了源代码&#xff0c;修改了其中的一段源代码及配置文件后&#xff0c;支持中文注释及中文界面&#xff08;目前只做了Msdn2003一种&#xff09;。以下为修改后版…

sql-bench mysql_MySQL性能测试(一)——RHEL 7.1, MySQL 5.6.25, sql-bench

由于前段时间要测试全闪存阵列上运行MySQL的性能&#xff0c;因此研究了段时间&#xff0c;试验了两个工具&#xff1a;一个是MySQL自带的sql-bench&#xff0c;一个是sysbench。本过程使用的环境是Redhat Enterprise Linux 7.1, MySQL 5.6.25&#xff0c;测试工具则是mysql自带…

java面试技术问题_11个JAVA面试中常见技术问题

原标题&#xff1a;11个JAVA面试中常见技术问题大家在平常面试java的过程中都会遇到哪些难题呢&#xff1f;还有一些即将去面试java的童鞋们&#xff0c;你们想知道技术面试中会涉及到哪些点吗&#xff1f;达妹为你整理Java面试中会被问到的几个技术难题。1、一个".java&q…

Java list接口

list中的元素可以重复&#xff0c;父接口是collection&#xff0c;实现类是&#xff1a;arraylist和vector。 arraylist&#xff1a; package com.jike.list;import java.util.ArrayList; import java.util.List;public class ListDemo01 {public static void main(String[] ar…

苏州游记

已经很久没有更新这里了&#xff0c;懒哦&#xff01;上周末一干人等去了苏州的三山岛&#xff0c;很是开心&#xff0c;春天来了&#xff0c;到处都是那么的生机盎然&#xff01;三山岛是太湖上若干岛屿之一&#xff0c;离苏州城很远&#xff0c;我们乘了50分钟的火车后&#…

markdown 转义字符

\\ 反斜杠   \ 反引号   \* 星号   \_ 下划线   \{\} 大括号   \[\] 中括号   \(\) 小括号   \# 井号   \ 加号   \- 减号   \. 英文句号   \! 感叹号 转载于:https://www.cnblogs.com/willingtolove/p/10456027.html

cadence 旋转快捷键_cadence原理图快捷键

原标题&#xff1a;cadence原理图快捷键Allegro Design Entry CIS 原理图1.shift鼠标滚轮 左右移动2.Ctrl鼠标滚轮 放大缩小3.Alt鼠标滚轮 上下移动4.按下鼠标滚轮可任意方向拖动图纸(可以一直保持按下状态或者按一下松开)5.CTRL鼠标左键 &#xff1a; 元件叠选6.CTRL鼠标左键拖…

Lab 11-1

Analyze the malware found in Lab11-01.exe. Questions and Short Answers What does the malware drop to disk? A: The malware extracts and drops the file msgina32.dll onto disk from a resource section named TGAD.How does the malware achieve persistence? A: T…