相关向量机(RVM)
相关向量机的MATLAB代码
2.1版本,31日- 8月- 2021
电子邮件:iqiukp@outlook.com
主要特点
- RVM模型二元分类(RVC)或回归(RVR)
- 多个类型的内核函数(线性、高斯、多项式、乙状结肠、拉普拉斯算子)
- 混合核函数(K = w1×K1 + w2×K2 +…+ wn×Kn)
- 使用贝叶斯优化参数优化、遗传算法和粒子群优化
通知
- 这个版本的代码不兼容的版本低于R2016b。
- 详细的应用程序请参见示威。
- 这段代码仅供参考。
引用
@article {tipping2001sparse标题={稀疏贝叶斯学习和相关向量机},作者={引爆,Michael E},杂志={《机器学习研究},体积={1}={6},页面={211 - 244}年= {2001}}
@article {qiu2021soft标题={软传感器开发基于内核的动态时间扭曲和相关向量机unequal-length间歇过程},作者={王健林和艘邱,磕碰,Wang Wang乳通和郭,Yongqi和赵Liqiang},杂志={专家系统与应用程序},体积={182},页面={115223}={2021},出版商={爱思唯尔}}
如何使用
01。分类使用数位视讯(RVC)
一个演示使用区进行分类
clc清晰的所有关闭所有目录(genpath(松材线虫病))%使用fisheriris数据集负载fisheriris第1=~比较字符串(物种,”setosa”);data_=量(第1,3:4);label_=物种(第1);cvIndices=crossvalind(”坚持”,长度(data_),0.3);trainData=data_(cvIndices,:);trainLabel=label_(cvIndices,:);testData=data_(~cvIndices,:);testLabel=label_(~cvIndices,:);%核函数内核=内核(”类型”,”高斯”,”γ”,0.2);%参数参数=结构体(”显示”,”在”,……”类型”,”RVC”,……”kernelFunc”,内核);数位视讯=BaseRVM(参数);%RVM模型训练、测试和可视化数位视讯。火车(trainData,trainLabel);结果=数位视讯。测试(testData,testLabel);数位视讯。画(结果)
结果:
* * *数位视讯模型(分类)火车完成了* * *运行时间= 0.1604秒迭代=20.数量样本= 70数量的旅游房车= 2比的旅游房车= 2.8571%精度=94.2857%* * *数位视讯模型(分类)测试完成了* * *运行时间= 0.0197秒数量样本= 30精度=96.6667%
02。回归使用数位视讯(RVR)
回归利用RVM的演示
clc清晰的所有关闭所有目录(genpath(松材线虫病))%sinc函数负载sinc_datatrainData=x;trainLabel=y;testData=xt;testLabel=欧美;%核函数内核=内核(”类型”,”高斯”,”γ”,0.1);%参数参数=结构体(”显示”,”在”,……”类型”,”视程”,……”kernelFunc”,内核);数位视讯=BaseRVM(参数);%RVM模型训练、测试和可视化数位视讯。火车(trainData,trainLabel);结果=数位视讯。测试(testData,testLabel);数位视讯。画(结果)
结果:
* * *数位视讯模型(回归)火车完成了* * *运行时间= 0.1757秒迭代=76年数量样本= 100数量的旅游房车= 6比的旅游房车= 6.0000%RMSE=0.1260R2=0.8821美=0.0999* * *数位视讯模型(回归)测试完成了* * *运行时间= 0.0026秒数量样本= 50RMSE=0.1424R2=0.8553美=0.1106
03。内核函数
一个类命名内核定义计算核函数矩阵。
% {类型,线性:k (x, y) y = x”*多项式:k (x, y) =(γ* x ' * y + c) ^ d高斯:k (x, y) = exp(-γ* | | x - y | | ^ 2)乙状结肠:k (x, y) =双曲正切(γ* x ' * y + c)拉普拉斯算子:k (x, y) = exp(-γ* | | x - y | |)度- d抵消- cγ-γ%}内核=内核(”类型”,”高斯”,”γ”,价值);内核=内核(”类型”,”多项式”,”学位”,价值);内核=内核(”类型”,”线性”);内核=内核(”类型”,”乙状结肠”,”γ”,价值);内核=内核(”类型”,”拉普拉斯算子”,”γ”,价值);
例如,计算内核之间的矩阵X和Y
X=兰德(5,2);Y=兰德(3,2);内核=内核(”类型”,”高斯”,”γ”,2);kernelMatrix=内核。computeMatrix(X,Y);> >kernelMatrixkernelMatrix=0.56840.56070.40070.46510.83830.50910.83920.71160.98340.47310.88160.80520.50340.98070.7274
04。混合的内核
回归用RVM hybrid_kernel演示(K = w1×K1 + w2×K2 +…+ wn×Kn)
clc清晰的所有关闭所有目录(genpath(松材线虫病))%sinc函数负载sinc_datatrainData=x;trainLabel=y;testData=xt;testLabel=欧美;%核函数kernel_1=内核(”类型”,”高斯”,”γ”,0.3);kernel_2=内核(”类型”,”多项式”,”学位”,2);kernelWeight=(0.5,0.5];%参数参数=结构体(”显示”,”在”,……”类型”,”视程”,……”kernelFunc”,(kernel_1,kernel_2),…”kernelWeight”,kernelWeight);数位视讯=BaseRVM(参数);%RVM模型训练、测试和可视化数位视讯。火车(trainData,trainLabel);结果=数位视讯。测试(testData,testLabel);数位视讯。画(结果)
05。参数优化single-kernel-RVM
一个演示RVM模型与参数优化
clc清晰的所有关闭所有目录(genpath(松材线虫病))%使用fisheriris数据集负载fisheriris第1=~比较字符串(物种,”setosa”);data_=量(第1,3:4);label_=物种(第1);cvIndices=crossvalind(”坚持”,长度(data_),0.3);trainData=data_(cvIndices,:);trainLabel=label_(cvIndices,:);testData=data_(~cvIndices,:);testLabel=label_(~cvIndices,:);%核函数内核=内核(”类型”,”高斯”,”γ”,5);%参数优化opt.method=”贝叶斯”;%贝叶斯、ga算法opt.display=”在”;opt.iteration=20.;%参数参数=结构体(”显示”,”在”,……”类型”,”RVC”,……”kernelFunc”,内核,……”优化”,选择);数位视讯=BaseRVM(参数);%RVM模型训练、测试和可视化数位视讯。火车(trainData,trainLabel);结果=数位视讯。测试(trainData,trainLabel);数位视讯。画(结果)
结果:
* * *数位视讯模型(分类)火车完成了* * *运行时间= 13.3356秒迭代=88年数量样本= 70数量的旅游房车= 4比的旅游房车= 5.7143%精度=97.1429%优化参数表gaussian_gamma是_____________7.8261* * *数位视讯模型(分类)测试完成了* * *运行时间= 0.0195秒数量样本= 70精度=97.1429%
06。参数优化hybrid-kernel-RVM
一个演示RVM模型与参数优化
% {的演示hybrid-kernel RVM模型与参数优化%}clc清晰的所有关闭所有目录(genpath(松材线虫病))%数据负载UCI_datatrainData=x;trainLabel=y;testData=xt;testLabel=欧美;%核函数kernel_1=内核(”类型”,”高斯”,”γ”,0.5);kernel_2=内核(”类型”,”多项式”,”学位”,2);%参数优化opt.method=”贝叶斯”;%贝叶斯、ga算法opt.display=”在”;opt.iteration=30.;%参数参数=结构体(”显示”,”在”,……”类型”,”视程”,……”kernelFunc”,(kernel_1,kernel_2),…”优化”,选择);数位视讯=BaseRVM(参数);%RVM模型训练、测试和可视化数位视讯。火车(trainData,trainLabel);结果=数位视讯。测试(testData,testLabel);数位视讯。画(结果)
结果:
* * *数位视讯模型(回归)火车完成了* * *运行时间= 24.4042秒迭代=377年数量样本= 264数量旅游房车= 22比的旅游房车= 8.3333%RMSE=0.4864R2=0.7719美=0.3736优化参数表1×6gaussian_gammapolynomial_gamma polynomial_offset polynomial_degree gaussian_weight polynomial_weight是________________________ _________________ _________________售予_________________22.31513.59544.8360.0420580.95794* * *数位视讯模型(回归)测试完成了* * *运行时间= 0.0008秒数量样本= 112RMSE=0.7400R2=0.6668美=0.4867
07年。交叉验证
在这段代码中,支持两种交叉验证方法:“K-Folds”和“抵抗”。万博1manbetx例如,5倍交叉验证的
参数=结构体(”显示”,”在”,……”类型”,”RVC”,……”kernelFunc”,内核,……”KFold”,5);
例如,抵抗的交叉验证方法比率为0.3
参数=结构体(”显示”,”在”,……”类型”,”RVC”,……”kernelFunc”,内核,……”坚持”,0.3);
08年。其他选择
% %自定义优化选项% {opt.method = '贝叶斯;%贝叶斯、ga算法opt.display = '在';opt.iteration = 20;opt.point = 10;%高斯核函数opt.gaussian。参数Name = {'gamma'};opt.gaussian。参数Type = {'real'};opt.gaussian。下界= 2 ^ 6;opt.gaussian。upperBound = 2 ^ 6;%拉普拉斯算子的核函数opt.laplacian。参数Name = {'gamma'};opt.laplacian。参数Type = {'real'};opt.laplacian。下界= 2 ^ 6;opt.laplacian。upperBound = 2 ^ 6;%多项式核函数opt.polynomial。参数Name = {'gamma'; 'offset'; 'degree'};opt.polynomial。参数Type = {'real'; 'real'; 'integer'};opt.polynomial。下界= [2 ^ 6;2 ^ 6;1);opt.polynomial。upperBound = [2 ^ 6;2 ^ 6;7);% s形的核函数opt.sigmoid。参数Name = {'gamma'; 'offset'};opt.sigmoid。参数Type = {'real'; 'real'};opt.sigmoid。下界= [2 ^ 6;2 ^ 6];opt.sigmoid。upperBound = [2 ^ 6;2 ^ 6];%}% %RVM模型参数% {“显示”:“上”、“下”“类型”:“RVR”、“RVC”“kernelFunc”:内核函数“KFolds”:交叉验证,例如,5“坚持”:交叉验证,例如,0.3“freeBasis”:“上”、“下”“麦克斯特”:马克斯迭代,例如,1000%}
引用作为
@article {tipping2001sparse标题={稀疏贝叶斯学习和相关向量机},作者={引爆,Michael E},杂志={《机器学习研究},体积={1}={6},页面={211 - 244}年= {2001}}
@article {qiu2021soft标题={软传感器开发基于内核的动态时间扭曲和相关向量机unequal-length间歇过程},作者={王健林和艘邱,磕碰,Wang Wang乳通和郭,Yongqi和赵Liqiang},杂志={专家系统与应用程序},体积={182},页面={115223}={2021},出版商={爱思唯尔}}
RvmModel
SB2_Release_200
问题在这个视图或报告GitHub插件,参观GitHub库。
问题在这个视图或报告GitHub插件,参观GitHub库。