相关向量机的MATLAB代码
2015-08-07 11:10
288 查看
相关向量机的MATLAB代码,经过验证是正确的,很实用
推荐相关向量机(Relevance vector machine,简称RVM)是Tipping在2001年在贝叶斯框架的基础上提出的,它有着与支持向量机(Support vector machine,简称SVM)一样的函数形式,与SVM一样基于核函数映射将低维空间非线性问题转化为高维空间的线性问题。
RVM原理步骤
RVM通过最大化后验概率(MAP)求解相关向量的权重。对于给定的训练样本集{tn,xn},类似于SVM , RVM 的模型输出定义为
y(x;w)=∑Ni=1wiK(X,Xi)+w0
其 中wi为权重, K(X,Xi)为核函。因此对于, tn=y(xn,w)+εn,假设噪声εn 服从均值为0 , 方差为σ2 的高斯分布,则p ( tn | ω,σ2 ) = N ( y ( xi ,ωi ) ,σ2 ) ,设tn 独立同分布,则整个训练样本的似然函数可以表示出来。对w 与σ2的求解如果直接使用最大似然法,结果通常使w 中的元素大部分都不是0,从而导致过学习。在RVM 中我们想要避免这个现像,因此我们为w 加上先决条件:它们的机率分布是落在0 周围的正态分布: p(wi|αi) = N(wi|0,
α?1i ),于是对w的求解转化为对α的求解,当α趋于无穷大的时候,w趋于0.
RVM的步骤可以归结为下面几步:
1. 选择适当的核函数,将特征向量映射到高维空间。虽然理论上讲RVM可以使用任意的核函数,但是在很多应用问题中,大部分人还是选择了常用的几种核函 数,RBF核函数,Laplace核函数,多项式核函数等。尤其以高斯核函数应用最为广泛。可能于高斯和核函数的非线性有关。选择高斯核函数最重要的是带 宽参数的选择,带宽过小,则导致过学习,带宽过大,又导致过平滑,都会引起分类或回归能力的下降
2. 初始化α,σ2。在RVM中α,σ2是通过迭代求解的,所以需要初始化。初始化对结果影响不大。
3. 迭代求解最优的权重分布。
4. 预测新数据。
点击打开链接
相关文章推荐
- Matlab 文本处理
- matlab基础学习笔记
- MATLAB连接MYSQL搞数据
- matlab+java在web应用程序上实现人脸匹配功能
- Matlab--文件操作
- 如何用matlab批量新建和删除文件夹?
- Matlab关联m文件与m文件关联设置
- SDM For Face Alignment流程介绍及Matlab代码实现之测试篇
- SDM For Face Alignment 流程介绍及Matlab代码实现之训练篇
- SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
- 最大熵阈值分割——opencv与matlab实现
- Python 之 Python与MATLAB 作图小结
- 一维最大熵阈值分割——opencv与matlab实现
- Python 之 Python与MATLAB 矩阵操作小结
- OFDM之卷积编码(matlab仿真)
- matlab常用2
- matlab 按颜色画网格bar3 不同于surf,pcolor(儿子的papa)
- Matlab--随机机数的产生
- Matlab 之meshgrid, interp, griddata 用法和实例
- Matlab & C++ 混合编程mex文件的编写与调试