一文彻底理解机器学习高斯核函数和基函数
本文介绍了高斯核函数的感性理解,以及从线性代数角度求解、推导高斯核函数、基函数的公式,并用pyhon实现了其函数以及图像绘制。
如何理解高斯核函数呢?我建议从用途入手。
作为机器学习中的一种算法,在解决分类问题中,高斯核函数便可发挥用途,当数据集不是线性可分的时候,需要利用核函数将数据集映射到高维空间,使其线性可分。
举个简单的例子:
在一维的线上,类似一条绳子上,有 红 红 蓝 蓝 红 红 串了六个小球,怎样才能用切一刀把原本的绳子切的只剩蓝色小球?
显然一刀是无法完成,我们需要用二维的思想来解决一维的问题,就需要把绳子映射到二维平面。此时再横着切一刀,就可以分类出蓝色小球。这就是高斯核函数解决问题的思想。
深入理解首先看定义
高斯核函数 (Gaussian kernel),也称 径向基 (RBF) 函数,是某种沿径向对称的标量函数,用于 将有限维数据映射到高维空间。形式如下:
PRML教材公式(6.23)
简而言之x’为核函数中心,||x-x'||为任意一点x到某一中心点x'之间的欧式距离(L2范数),我们选中一个中心点,假设蓝色小球之间的点,就会发现蓝色小球到中心的距离与红色小球到中心的距离是不同的,这可以在一定程度上解释径向基函数构建L2范数的原因。
上面的例子仅仅是一维到二维上的展示,那么样本的特征如果有n个,高斯核函数能不能解决呢?为了进行映射,我们要证明高斯核函数可以在无穷维度上应用:
如果样本点总共有P个,就要进行p次处理,如果x有m个特征,则Φ(x)基函数要展开到m维度。
各基函数形式为如下,参数为L2范数:
由于距离是径向同性的,因此称为径向基函数。由基函数表示的高斯核函数为:
或者写成我们教材定义的形式
画图结果和代码如下:(下图分别为基函数和核函数)
基函数、核函数以及画图的python代码如下
from re import X
import matplotlib.pyplot as plt
import numpy as np
import numpy.linalg as la
def factorial(n):if n == 0 or n == 1:return 1else:return (n*factorial(n-1))def gaussiankernel(sigma,x,x0):y=[]for i in x:y0=np.exp(-(la.norm(i-x0)**2) / (2 * sigma ** 2))y.append(y0)return y
def gaussianji(sigma,x,n,x_di):y=[]for i in range(0,n):x_new=(x-x_di[i])y0=(np.exp(-(x_new**2)))#*((x_new/sigma)**i)*np.sqrt((2**i)/factorial(i))y.append(y0)y=np.array(y)return yN=11
x_di=np.linspace(-1,1,N)
x=np.linspace(-1,1,N)
j=-10
color=['red', 'black', 'blue', 'brown', 'green','red', 'black', 'blue', 'brown', 'green','red', 'black', 'blue', 'brown', 'green']
plt.subplot(2,3,2)
for k in x:y=gaussianji(1,k,N,x_di)plt.plot(x_di,y,linewidth=0.5,color=color[abs(j)])j=j+1
plt.subplot(2,3,5)
y=gaussiankernel(1,x,0)
plt.plot(x,y,linewidth=0.5,color='blue')plt.show()
一文彻底理解机器学习高斯核函数和基函数相关推荐
- 透彻理解高斯核函数背后的哲学思想与数学思想
https://www.toutiao.com/a6653427986718523917/ 数据点转换到高维空间后,原始特征无关紧要.仅仅计算测试数据与支持向量的点积,支持向量由SVM优化算法选择的特 ...
- 支持向量机中高斯核函数的直观理解
这一文章主要讲述高斯核函数的直观理解,并不会涉及支持向量机代价函数及最优化的问题. 什么是高斯核函数? 在支持向量机中它是一个用来构造非线性边界的核函数. 高斯核函数的定义: 这个函数说白了,就是点X ...
- 机器学习笔记(二十八):高斯核函数
凌云时刻 · 技术 导读:核函数是机器学习算法中一个重要的概念.简单来讲,核函数就是样本数据点的转换函数.这一节我们来看看应用非常广泛的一个核函数,高斯核函数. 作者 | 计缘 来源 | 凌云时刻(微 ...
- 机器学习--SVM(支持向量机)核函数原理以及高斯核函数
最近小小地研究了一下SVM,发现这个算法还是相当有意思,今天来给大家讲讲其原理. 首先假设每个样本的特征值为X1.X2...到Xn,即有n个特征值.θ1.θ2.θ3...θn为对应权值. 那么要将上图 ...
- 【机器学习】核函数的理解与常见核函数
在一个二维空间中,具有特征空间X和特征空间Y,当其中一个点(x, y)在这个二维平面中,如果想把它映射高维空间中,那么就需要用到核函数. 关于核函数的定义是:设XXX是输入空间,YYY是特征空间.如果 ...
- 机器学习之支持向量机实例,线性核函数 多项式核函数 RBF高斯核函数 sigmoid核函数
文章目录 支持向量机实例 1.线性核函数 2.多项式核函数 3.RBF高斯核函数 4.sigmoid核函数 代码: 结果: 支持向量机实例 1.线性核函数 def test_SVC_linear(): ...
- 一文读懂支持向量积核函数(附公式)
来源:jerrylead 本文长度为1783字,建议阅读4分钟 本文通过多个例子为你介绍支持向量积核函数,助你更好地理解. 核函数(Kernels) 考虑我们最初在"线性回归"中提 ...
- SVM(核函数、高斯核函数RBF)
转载自博客园:https://www.cnblogs.com/volcao/p/9465214.html SVM(核函数.高斯核函数RBF) 一.核函数(Kernel Function) 1)格式 K ...
- 【图解】算法原理!通俗理解机器学习算法
机器之心报道 机器之心编辑部 算法公式挺费神,机器学习太伤人.任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到.但其实,如果有通俗易懂的图解,理解机器学习的原理就会非常容易.本文整理了一 ...
最新文章
- 【yii2】 yii框架如果控制器和方法都是多个单词组成应该怎样写请求链接
- Redis架构图-1
- 关于NSArray使用时用strong修饰还是copy修饰问题测试
- 计算机系统资源分配最小单位,在操作系统中,什么是资源分配最小单位
- ubuntu13.04中把ibus中的中文拼音输入设为默认
- Redis多线程执行 -- 过程分析
- poj Risk 1603 floyd基础题!!
- python爬取有道翻译的代码_有道翻译的爬取
- dubbo消费者调用报错Unsupported protocol rest in notified url
- 爬取京东图书价格信息分析
- 基于codesys开发的多轴运动控制程序框架,将逻辑与运动控制分离,将单轴控制封装成功能块,对该功能块的操作包含了所有的单轴控制
- 独立IP和共享IP、网络地址转换NAT
- mysql查询某字段包含手机号
- 【论文翻译笔记】Test Roll: Profit-Maximizing A/B Tests
- 繁华落幕,空余一地苍凉
- java-php-python-超市自助结账系统的设计与实现计算机毕业设计
- Java Service Wrapper 使用经验总结
- 美颜sdk磨皮算法代码解析
- 基于遗传算法改进的BP神经网络电网负荷预测,GA-BP神经网络电网负荷预测,1000案例之14
- 2020年全球SDDC市场将达到1390亿美元
热门文章
- React基于monaco editor的在线代码编辑器开发
- C++ web框架drogon 使用对象关系映射ORM(Object Relational Mapping)模式
- CLO-为云服务器配置vnc远程桌面
- 飞机大战(easyx版)
- [计算机毕设]基于java的项目管理平台系统设计与实现(项目报告+答辩PPT+源代码+数据库)
- 计算机二级基础知识 文库,计算机二级--公共基础知识(第1章)
- 虚拟主机php提速,速度提升两倍!西部数码虚拟主机率先支持php 7.0!
- 牛顿-莱布尼茨公式求积分例题
- 通过css样式禁用NG-ZORRO中Calendar日历组件头部下拉框的选择事件
- 微众银行2020校园招聘数据分析岗(风险管理方向)一面(2019.9.24)