楼主: iqiukp

[我分享] 相关向量机 (Relevance Vector Machine, RVM) 训练和预测的实现

  [复制链接]

入门

166 麦片

财富积分


50500


9

主题

187

帖子

0

最佳答案
  • 关注者: 61
 楼主| 发表于 2019-6-5 17:42:19 | 显示全部楼层
Hamlet'ssmile 发表于 2019-6-5 16:40
训练输入为18*3,输出为18*1,均未归一化。在rvm_train.m中 ,在 = ...
    SparseBayes('Gaussian', B ...


出现该问题的原因是sigma的取值问题。因为sigma的取值越大,相关向量的个数越少,当SparseBayes.m在迭代结束后仍然没有找到满足条件的相关向量,会导致返回结果都是空集合。
目前你可以尝试将sigma的取值减小。

这个问题会在后面的版本中给出解决方案。
回复此楼 已获打赏: 0 积分

举报

新手

11 麦片

财富积分


050


4

主题

14

帖子

0

最佳答案
发表于 2019-6-10 21:09:46 | 显示全部楼层
请问下楼主,根据RVM的预测结果可以计算预测集的协方差矩阵吗?
回复此楼 已获打赏: 0 积分

举报

入门

166 麦片

财富积分


50500


9

主题

187

帖子

0

最佳答案
  • 关注者: 61
 楼主| 发表于 2019-6-12 14:15:36 | 显示全部楼层
Jacksonic 发表于 2019-6-10 21:09
请问下楼主,根据RVM的预测结果可以计算预测集的协方差矩阵吗?

你好。预测集实际上是一个单维度的向量,而协方差矩阵计算的是样本数据不同维度(特征、属性等等)之间的协方差,所以RVM的预测结果应该没法计算协方差矩阵,因为其预测值只有一个维度。
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2019-6-12 20:39:54 | 显示全部楼层
感谢博主分享
小白请教一下 这个怎么用多项式核 来训练和预测数据
比如一组数据 800*15的数据 用前400训练 后400预测分类
回复此楼 已获打赏: 0 积分

举报

入门

166 麦片

财富积分


50500


9

主题

187

帖子

0

最佳答案
  • 关注者: 61
 楼主| 发表于 2019-6-12 21:15:26 | 显示全部楼层
920071025 发表于 2019-6-12 20:39
感谢博主分享
小白请教一下 这个怎么用多项式核 来训练和预测数据
比如一组数据 800*15的数据 用前400训练  ...

1. 多项式核。只需更改computeKM.m函数:
  1. function [K] = computeKM(x,y,c,d)
  2. K = (x*y'+c).^d;
复制代码
同时在demo.m和rvm_train.m对应的地方修改过来就行。

2. 训练和预测。

修改demo.m中的
  1. % Train RVM model
  2. model = rvm_train(Xtrain,Ytrain,'sigma',5.5,'bias',1);

  3. % Test RVM model
  4. [y_mu,y_var] = rvm_test(model,Xtest);
复制代码
Xtrain改为你的训练数据(前400个,400*15),Ytrain为对应的输出(400*1);Xtest为你的测试数据(后400个,400*15)。

多变量数据(包括训练数据和测试数据)应该要做预处理,可以用自带的zscore函数或者mapminmax函数,这两个函数的用法网上资料很多,这里就不赘述了。



回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2019-6-12 21:56:59 | 显示全部楼层
iqiukp 发表于 2019-6-12 21:15
1. 多项式核。只需更改computeKM.m函数:同时在demo.m和rvm_train.m对应的地方修改过来就行。

2. 训练和 ...

非常感谢老师,请问老师有没有qq或者什么,我想加您,还有问题请教,万分感谢
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
发表于 2019-6-13 15:54:59 | 显示全部楼层
您好,我确定Xtrain的维度是N×M Ytrain的维度是N×1 在训练的时候还是报了维度的错误。这个该如何解决,感谢。
QQ图片20190613165420.png
回复此楼 已获打赏: 0 积分

举报

入门

166 麦片

财富积分


50500


9

主题

187

帖子

0

最佳答案
  • 关注者: 61
 楼主| 发表于 2019-6-13 16:07:39 | 显示全部楼层
wx_azhfe1jq 发表于 2019-6-13 15:54
您好,我确定Xtrain的维度是N×M Ytrain的维度是N×1 在训练的时候还是报了维度的错误。这个该如何解决,感 ...

出现该问题的原因在41楼的回帖中说明了。暂时的解决方法可以把sigma的取值变小一点。
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
发表于 2019-6-13 16:26:13 | 显示全部楼层
iqiukp 发表于 2019-6-13 16:07
出现该问题的原因在41楼的回帖中说明了。暂时的解决方法可以把sigma的取值变小一点。 ...

好的,的确如此。谢谢
回复此楼 已获打赏: 0 积分

举报

入门

166 麦片

财富积分


50500


9

主题

187

帖子

0

最佳答案
  • 关注者: 61
 楼主| 发表于 2019-7-5 22:04:51 | 显示全部楼层
本帖最后由 iqiukp 于 2019-7-5 22:08 编辑

2019.7.5 更新 (V1.2)

RVM_V1.2.zip (1.25 MB, 下载次数: 124)
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表