基于相关向量机RVM的分类算法

文章目录

  • 基于相关向量机RVM的分类算法
    • 1.RVM原理
    • 2.算法实验与结果
    • 3.参考文献:
    • 4.MATLAB代码

摘要:本文主要介绍相关向量机RVM的基本原理,以及在分类问题中的应用。

1.RVM原理

RVM算法是一种基于贝叶斯框架的机器学习模型 ,通过最大化边际似然得到相关向量和权重。

设{x}u=1N\{x\}_{u=1}^N{x}u=1N​​和{t}u=1N\{t\}_{u=1}^N{t}u=1N​​分别是输入向量和输出向量,目标ttt​可采用如式(1)所示的回归模型获得:
t=y(x)+ξn(1)t =y(x)+\xi_n \tag{1} t=y(x)+ξn​(1)
式中: ξn\xi_nξn​为零均值、方差 σ2σ^2σ2的噪声,y(x)y(x)y(x) 定义为:
y(x)=∑u=1NwuK(x,xu)+w0(2)y(x)=\sum_{u=1}^Nw_uK(x,x_u)+w_0 \tag{2} y(x)=u=1∑N​wu​K(x,xu​)+w0​(2)
式中: K(x,xu)K(x,x_u)K(x,xu​) 是核函数,wuw_uwu​ 是权重向量,w0w_0w0​是偏差。设ttt​是独立的,其概率定义为:
p(t∣w,σ2)=(2πσ2)−N/2exp(−∣∣t−wφ∣∣22σ2)(3)p(t|w,\sigma^2)=(2\pi\sigma^2)^{-N/2}exp(-\frac{||t-w\varphi||^2}{2\sigma^2})\tag{3} p(t∣w,σ2)=(2πσ2)−N/2exp(−2σ2∣∣t−wφ∣∣2​)(3)
式中:t=(t1,t2,...,tN)T,w=(w0,w1,...,wn)Tt=(t_1,t_2,...,t_N)^T,w=(w_0,w_1,...,w_n)^Tt=(t1​,t2​,...,tN​)T,w=(w0​,w1​,...,wn​)T,φ\varphiφ是N(N+1)N(N+1)N(N+1)​的矩阵。

式(3)中的 www 和 σσσ最大似然估计会导致过拟合,为约束参数,定义一个零均值高斯先验概率分布:
p(w∣α)=∏u=0NN(wu∣0,αu−1)(4)p(w|\alpha)=\prod_{u=0}^NN(w_u|0,\alpha_u^{-1})\tag{4} p(w∣α)=u=0∏N​N(wu​∣0,αu−1​)(4)
式中: ααα 是 N+1N +1N+1 维的超参数向量。

依据贝叶斯公式,未知参数的后验概率为:
p(w,α,σ2∣t)=p(w∣α,σ2,t)p(α,σ2∣t)(5)p(w,\alpha,\sigma^2|t)=p(w|\alpha,\sigma^2,t)p(\alpha,\sigma^2|t)\tag{5} p(w,α,σ2∣t)=p(w∣α,σ2,t)p(α,σ2∣t)(5)
后验分布的权重被描述为:
p(w∣t,α,σ2)=(2π)−(N+1)/2∣Σ∣−1/Nexp(−12(w−u)TΣ−1(w−u))(6)p(w|t,\alpha,\sigma^2)=(2\pi)^{-(N+1)/2}|\Sigma|^{-1/N}exp(-\frac{1}{2}(w-u)^T\Sigma ^{-1}(w-u))\tag{6} p(w∣t,α,σ2)=(2π)−(N+1)/2∣Σ∣−1/Nexp(−21​(w−u)TΣ−1(w−u))(6)
式中:后验均值u=σ−2ΣφTtu=\sigma^{-2}\Sigma\varphi^Ttu=σ−2ΣφTt,协方差Σ=(σ−2φTφ+A)−1\Sigma=(\sigma^{-2}\varphi^T\varphi+A)^{-1}Σ=(σ−2φTφ+A)−1,A=diag(α0,α1,...,αN)A=diag(\alpha_0,\alpha_1,...,\alpha_N)A=diag(α0​,α1​,...,αN​)​。

为了实现统一的超参数,​做出如下定义:
p(t∣α,σ2)=∫p(t∣w,σ2)p(w,α)dw=(2π)−N/2∣σ2I+φA−1φT∣exp(−12tT(σ2I+φA−1φT)−1t)(7)p(t|\alpha,\sigma^2)=\int p(t|w,\sigma^2)p(w,\alpha)dw =(2\pi)^{-N/2}|\sigma^2I+\varphi A^{-1}\varphi^T|exp(-\frac{1}{2}t^T(\sigma^2I + \varphi A^{-1}\varphi^T)^{-1}t)\tag{7} p(t∣α,σ2)=∫p(t∣w,σ2)p(w,α)dw=(2π)−N/2∣σ2I+φA−1φT∣exp(−21​tT(σ2I+φA−1φT)−1t)(7)
高斯径向基函数具有较强的非线性处理能力,被用作核函数,其定义如下:
K(x,xu)=exp(−(x−xu)22γ2)(7)K(x,x_u)=exp(-\frac{(x-x_u)^2}{2\gamma^2})\tag{7} K(x,xu​)=exp(−2γ2(x−xu​)2​)(7)
式中: γγγ 为宽度因子,对模型的精度有极大的影响,需要预先设定。

2.算法实验与结果

本文算法数据数量一共为250组数据,2个类别数据。其中前200组数据用训练,后50组数据用作测试数据。数据的输入维度为11维。

数据类别 数据量
训练数据 200
测试数据 50

设置RVM的核函数为高斯径向基函数,核宽度为3。得到的结果如下图所示:


训练集准确率:0.955
测试集准确率:0.84314

从结果来看,RVM在二分分类问题上表现还可以。

3.参考文献:

[1] TIPPPING M E. Sparse Bayesian learning and the relevance vector machine[J]. The journal of machine learning research,2001,1: 211-244.

4.MATLAB代码

个人资料介绍

基于相关向量机RVM的分类算法相关推荐

  1. 【RVM预测】基于相关向量机RVM实现数据预测附matlab代码

    1 简介 目前常用的一些基本的故障诊断,故障预测方法都将大样本数据作为基础,但在实际问题中常常能得到的故障数据都属于小样本类型.传统的故障诊断,故障预测方法已不适于用来解决小样本类型的故障问题.相关向 ...

  2. 【项目实战】Python实现RVM相关向量机回归模型(RVR算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 相关向量机(Relevance Vector Machine,简 ...

  3. Python机器学习16——相关向量机(RVM)

    本系列基本不讲数学原理,只从代码角度去让读者们利用最简洁的Python代码实现机器学习方法. 背景介绍 学机器学习的应该都知道支持向量机(SVM),这个方法在深度学习兴起之前算是很热门的分类方法,在机 ...

  4. 【RVM预测】基于粒子群算法优化相关向量机RVM实现数据回归预测附matlab代码

    1 简介 由于进出口贸易额波动较大,影响因素较多,一般预测算法难以得到较为准确的预测结果.针对该问题,提出基于PSO优化混合RVM模型的贸易预测方法.该方法首先找出影响进出口贸易的指标并通过主成分分析 ...

  5. 机器学习系列4---RVM(相关向量机)MATLAB实现

    上期主要介绍了相关向量机的提出及主要计算过程,本期主要介绍MATLAB实现RVM,并就相关分析结果展开讨论.相关论文及代码下载网站:miketipping.com :: Sparse Bayesian ...

  6. 基于机器学习和TFIDF的情感分类算法,详解自然语言处理

    摘要:这篇文章将详细讲解自然语言处理过程,基于机器学习和TFIDF的情感分类算法,并进行了各种分类算法(SVM.RF.LR.Boosting)对比 本文分享自华为云社区<[Python人工智能] ...

  7. 基于朴素贝叶斯的文本分类算法

    基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...

  8. c语言贝叶斯分类,基于朴素贝叶斯分类器的文本分类算法(C语言)

    基于朴素贝叶斯分类器的文本分类算法(C语言) 基于朴素贝叶斯分类器的文本分类算法(C语言).txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情.#include ...

  9. 朴素贝叶斯基于朴素贝叶斯的文本分类算法

    朴素贝叶斯 以及 基于朴素贝叶斯的文本分类算法 参考文章: https://www.cnblogs.com/jorbin/articles/1915888.html

  10. 朴素贝叶斯文本分类java_基于朴素贝叶斯的文本分类算法

    基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...

最新文章

  1. 带有Swagger的Spring Rest API –集成和配置
  2. 抽象方法,抽象类,接口
  3. 启动盘Linux windows,Linux 中创建 USB 启动盘来拯救 Windows 用户
  4. dmidecode 硬件查看
  5. oracle增量备份level0,Oracle备份类型level0、level1,增量、差异备份
  6. GA遗传算法介绍与实例
  7. 某知名网络安全公司的渗透测试工程师面试题实战汇总
  8. android恢复删除文件,如何恢复手机删除的文件
  9. 思科Cisco BGP 专题(一) BGP基本概念
  10. 如何注册阿里大于申请签名和短信模板
  11. 申城「三日谈」:言汇百家,思通以达(SDCC 2017上海站PPT集锦)
  12. XML 格式化转字符串
  13. asps英文_车用英语怎么说
  14. gridview纯图片九宫图展示
  15. texstudio使用
  16. php授权系统原理,Mysql权限系统工作原理-PHP教程,PHP基础
  17. e换电受邀参加上海电动自行车集中充电设备展示推荐会
  18. 【SpringBoot】Spring手动装配和SpringBoot自动装配
  19. 在win7下删除Windows服务的方法
  20. 关联规则Apriori算法 python简单实现

热门文章

  1. Hibernate之连接池配置
  2. docker学习记录 docker 脚本----redis,zookeeper,kafka(三)
  3. 七日杀a17服务器修改,七日杀a17作弊指令
  4. linux内存中的文件权限,理解Linux文件权限
  5. python 自动抢红包_用二十行代码实现微信自动抢红包
  6. 快速列出所有字段_【小麦课堂】快速查询明细数据的操作
  7. springmvc获取原生servletAPI
  8. linux夸分区建立软链接,Linux硬链接和软链接
  9. java和基岩怎么联机_JAVA和基岩版要同步了
  10. python编程工时计算_python 两个时间段过滤求交集(工时计算)