用c语言实现核函数,统计学习方法:核函数(Kernel function)

阅读: 评论:0

用c语言实现核函数,统计学习方法:核函数(Kernel function)

用c语言实现核函数,统计学习方法:核函数(Kernel function)

作者:桂。

时间:2017-04-26  12:17:42

前言

之前分析的感知机、主成分分析(Principle component analysis, PCA)包括后面看的支撑向量机(Support vector machines, SVM),都有用到核函数。核函数是将信号映射到高维,而PCA一般用来降维。这里简单梳理一下核函数的知识:

1)核函数基本概念;

2)核函数的意义;

内容为自己的学习记录,其中多有参考他人,最后一并给出链接。

一、核函数基本概念

先来看看核函数的定义:

核函数:是映射关系

的内积,映射函数本身仅仅是一种映射关系,并没有增加维度的特性,不过可以利用核函数的特性,构造可以增加维度的核函数,这通常是我们希望的。

例如这样一个图:

二维映射到三维,区分就更容易了,这是聚类、分类常用核函数的原因。为什么PCA这样一个降维算法也用核函数呢?

左图为原数据,右图为映射到三维的数据,可以看出:同样是降到1维,先通过Kernel映射到(Kernel是映射的内积,不要弄乱了)三维,再投影到1维,就容易分离开,这就是Kernel在PCA降维中的应用,本质还是对原有数据增加维度。

既然核函数这么神奇,就看看它的来龙去脉。

二、核函数的意义

A-核函数常见应用

先来看看核函数几个常用的地方:

1.核感知机

在前面分析感知机时提到:

2.核聚类(Kernel Kmeans)

在前面分析核聚类时提到:

3.核PCA(kernel PCA)

具体定义可以参考wikipedia,根据前文分析的PCA步骤,有一步是利用相关矩阵的特征值分解,看看相关矩阵:

又看到了相乘的形式,自然可以用Kernel:

4.支撑向量机SVM

支撑向量机对偶形式的目标函数:

又看到了

的形式,从而得到SVM的核函数形式:

B-核函数为什么可以映射到高维?

1.为什么不用映射函数

,而用他们的内积形式,即Kernel函数?

因为(x,z)一起出现的时候,

有许多固定的形式可以调用,而不必求解或者关心

的具体形式,这大大简化了求解。

2.什么样的函数才可以叫做核函数?

直接给出条件:

具体参考:李航《统计学习方法》p120~122。

3.为什么实现数据映射到高维?

看一个例子:

这就从二维变成了三维,当然还可以更高维:

这里可以粗略理解成:多项式可以实现数据的维度扩增,而高斯核是指数形式,展开就是无穷多的多项式,所以高斯核可以将数据映射到无穷维度。

4.常用核函数

多项式核:

高斯核:

参考:

李航《统计学习方法》

核函数(kernel function)

百度百科的解释: 常用核函数: 1.线性核(Linear Kernel): 2.多项式核(Polynomial Kernel): 3.径向基核函数(Radial Basis Function),也叫高 ...

[转]核函数K(kernel function)

1 核函数K(kernel function)定义 核函数K(kernel function)就是指K(x, y) = ,其中x和y是n维的输入值,f(·) 是从n ...

统计学习方法c++实现之六 支持向量机(SVM)及SMO算法

前言 支持向量机(SVM)是一种很重要的机器学习分类算法,本身是一种线性分类算法,但是由于加入了核技巧,使得SVM也可以进行非线性数据的分类:SVM本来是一种二分类分类器,但是可以扩展到多分类,本篇不 ...

统计学习方法:KNN

作者:桂. 时间:2017-04-19  21:20:09 链接:.html 声明:欢迎被转载,不过记得注明出处哦 ...

李航《统计学习方法》CH01

CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则 ...

统计学习方法:支撑向量机(SVM)

作者:桂. 时间:2017-05-13  21:52:14 链接:.html 前言 主要记录SVM的相关知识,参考 ...

统计学习方法—SVM推导

目录 SVM 1. 定义 1.1 函数间隔和几何间隔 1.2 间隔最大化 2. 线性可分SVM 2.1 对偶问题 2.2 序列最小最优算法(SMO) 3. 线性不可分SVM 3.1 松弛变量 3.2 ...

【NLP】基于统计学习方法角度谈谈CRF(四)

基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

统计学习方法 --- 感知机模型原理及c++实现

参考博客 Liam Q博客 和李航的 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...

随机推荐

PHP判断文件或者目录是否可写

在PHP中,可用is_writable()函数来判断一个 文件/目录 是否可写,详情如下: 参考 is_writable (PHP 4, PHP 5) is_writable — 判断给定的文件名是否 ...

利用K-means聚类分类,进行特征学习

这只是老师安排的一个实验,准备过程中遇到各种问题,现在贴出来供大家参考,是Andrew Ng参与的研究, 论文依据如下,第二篇是一篇相关的论文, Learning Feature Representa ...

使用火狐的restclient发送http接口post及get请求

1.在firefox安装restclient插件,具体参照.html: —.发送pos ...

ios--集成支付宝钱包支付iOS SDK的方法与经验

文/胖花花(简书作者)原文链接:,转载请联系作者获得授权,并标注“简书作者”. 没想到,支付宝的SDK是我目前 ...

C#之 HashSet(临时笔记,未参考资料,请慎重)

HashSet是一个集合,类似于DataSet,但是其主要用途是用来存放同一种类型的元素(w.table等),如果添加的元素跟定义时初始的类型不一致,就会直接编译失败. 例如: Ha ...

js获取url参数值的两种方式

js获取url参数值的方法有很多,下面也为大家介绍两种.  方法一:正则分析法  function getQueryString(name) {  var reg = new RegExp(&quot ...

表达式:使用API创建表达式树(3)

一.DebugInfoExpression:发出或清除调试信息的序列点. 这允许调试器在调试时突出显示正确的源代码. static void Main(string[] args) { var asm ...

CocoaAsyncSocket框架的简单封装

在iOS开发中使用socket(CFNetwork),一般都是用第三方库AsyncSocket. 参考博客:? ...

Node.js进阶:5分钟入门非对称加密方法

前言 刚回答了SegmentFault上一个兄弟提的问题.这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,这里简单总结下. 非对称加密的理 ...

本文发布于:2024-02-02 09:10:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170683623942786.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   学习方法   语言   function   Kernel
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23