Kernel Methods (1) 从简单的例子开始
一个简单的分类问题, 如图左半部分所示. 很明显, 我们需要一个决策边界为椭圆形的非线性分类器.

我们可以利用原来的特征构造新的特征: \((x_1, x_2) \to (x_1^2, \sqrt 2 x_1x_2, x_2^2)\), 如此一来, 原来的数据从二维空间被映射到了三维. 这个时候, 原来线性不可分的数据已经线性可分了:
\[\frac {x_1^2}{a^2} + 0*\sqrt 2 x_1x_2 + \frac {x_2^2}{b^2} = 1\]
在二维空间里, 它是一个椭圆;在三维空间里它是一个平面: \(A x + Bz = 1\), 其中\(A = \frac 1{a^2}, B = \frac 1{b^2}\).
为方便描述, 现在我们来给出一些要用到的定义:
- 原始输入(raw input): 直接输入分类器的特征数据:\(x = (x_1, x_2, \dots, x_n)\). 它们所在的空间被称为输入空间(input space): \(\chi \in R^n\)
- 特征映射函数\(\Phi\):\(R^n \to R^d\), \(\Phi(x) = z = (z_1, z_2, \dots, z_d)\), 它将原始输入映射到一个\(d\)维空间, 称为特征空间(feature space):\(H \in R^d\). \(d\)一般要大于\(n\)
再看一个例子. 这个特征空间\(H\)是一个二维空间, 数据样本是线性可分的. 现在我们根据一种简单的分类原则来求出一个线性分类器.

分类原则如下:
- 特征空间中有正(+)负(o)两类样本, 它的中心点分别为\(c_+ = \frac {1}{m_+}\sum_{y_i = 1}z_i\), \(c_- = \frac {1}{m_-}\sum_{y_i = -1}z_i\), \(m_+, m_-\)分别为正负样本的个数.
- \(c_+, c_-\)两点的中点为\(c = \frac {c_+ + c_-}{2}\)
- 测试样本\(x\)在特征中空间中的表达为\(z=\Phi(x)\).
- 若向量\(z - c\)与向量\(c_+ - c_-\)之间的夹角小于\(90^\circ\), 则\(z\)为正类, 否则为负类.
Kernel Methods (1) 从简单的例子开始的更多相关文章
- PRML读书会第六章 Kernel Methods(核函数,线性回归的Dual Representations,高斯过程 ,Gaussian Processes)
主讲人 网络上的尼采 (新浪微博:@Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:16:05 今天的主要内容:Kernel的基本知识,高斯过程.边思考边打字,有点慢, ...
- Kernel Methods - An conclusion
Kernel Methods理论的几个要点: 隐藏的特征映射函数\(\Phi\) 核函数\(\kappa\): 条件: 对称, 正半定; 合法的每个kernel function都能找到对应的\(\P ...
- Kernel methods on spike train space for neuroscience: a tutorial
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 时序点过程:http://www.tensorinfinity.com/paper_154.html Abstract 在过去的十年中,人 ...
- Kernel Methods (2) Kernel function
几个重要的问题 现在已经知道了kernel function的定义, 以及使用kernel后可以将非线性问题转换成一个线性问题. 在使用kernel 方法时, 如果稍微思考一下的话, 就会遇到以下几个 ...
- 核方法(Kernel Methods)
核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- CSharpGL(1)从最简单的例子开始使用CSharpGL
CSharpGL(1)从最简单的例子开始使用CSharpGL 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo ...
- Kernel Methods (4) Kernel SVM
(本文假设你已经知道了hard margin SVM的基本知识.) 如果要为Kernel methods找一个最好搭档, 那肯定是SVM. SVM从90年代开始流行, 直至2012年被deep lea ...
- 用一个简单的例子来理解python高阶函数
============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...
随机推荐
- save(),saveorupdate()还有marqe()
所有这三个方法,也就是save().saveOrUpdate()和persist()都是用于将对象保存到数据库中的方法,但其中有些细微的差别.例如,save()只能INSERT记录,但是saveOrU ...
- 游戏/APP的多语言系统设计
多语言需求 游戏或者APP中可以根据不同地区显示不同语言,那么这是怎么实现的呢?要如何处理应用中的图片呢? 思路分析 系统设计 字体翻译显示 多语言收集工具 图例解释 把界面上出现的文字,翻译到多语言 ...
- u3d_shader_surface_shader_6
主题:1.膨胀效果:2.surface shader实际生成的代码: o(︶︿︶)o 粘贴复制代码易,理解透彻代码难... 一:膨胀效果 1.在#pragma 编译指令里添加vertex:vert以 ...
- poj[1185]炮兵阵地
Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用&quo ...
- cocos 锚点、包围盒
cocos中,setPosition就是设置一个sprite的锚点在父级元素的坐标 默认锚点是sprite矩形的中点 可以用getBoundingBox返回一个sprite所占矩形范围.范围用Rect ...
- document.readyState等属性
document.readyState:判断文档是否加载完成.firefox不支持. 这个属性是只读的,传回值有以下的可能: 0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载. ...
- NPM 如何升级?
- 部署Linux下的man慢查询中文帮助手册环境
对于Linux运维工作者来说,man查询手册绝对是一个好东西.当我们对一些命令或参数有些许模糊时,可以通过man查询手册来寻求帮助.其实Linux之所以强大, 就在于其强大的命令行, 面对如此繁杂的命 ...
- 关于调试日志Log
__VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参数的个数为0时,这里的## ...
- [转]Gson过滤字段
原文地址:http://my.oschina.net/orgsky/blog/368768 摘要 Gson过滤字段 Gson过滤字段 Gson 过滤 字段 属性 目录[-] 最简单的用法 方法1:排除 ...