自从见识了贝爷的手段之厉害之后,一直念念不忘,为啥效果这么好?可以参考博客,上面的代码应该也是sklearn说明文档中的例子。在使用仿真数据的情况下,利用贝叶斯回归模型得到的结果要比最小二乘结果好,不过当欠定的问题两者相差不大。于是怀着激动的心情将其应用于我实际采集的数据,结果就是期望越大失望越大。实际效果要比最小二乘法要差,而且因变量的方差不能为0,否则会有警告,出不来结果。那么自然而然就要问为什么,为什么仿真数据结果好,实际采集的数据结果就不好呢?还是从贝叶斯回归模型的原理开始吧。
开始也是搜了很多资料,说的都不是特别容易理解,说来说去都是差不多的内容,基本上也都是转来转去。直到发现这一篇博客,给出了推导过程,不过从自己的理解方式来看,还需要进行一些补充,比如:
数学上的意思是y在某种情况下服从什么样的分布,其它文章也基本上是这样写的,但是为什么会服从这样的分布呢?我们可以先不管y是否是已知的观测值,单就设定一个和X时,则y与之间的差别越小,说明y出现的概率就大,反之概率就小。举个例子,已知2和3,2×3=6的概率最大,等于5和7的概率次之。
为了求,需要先假设满足的分布密度函数,比如满足分布:
这个比较简单,就是在等于期望值的时候概率最大,但这是假设的,而且是在X和y出现之前满足的分布。在这一假设之上,回归问题解决的问题是,当出现X和y时,的分布,得到的分布后,也就是所谓的的后验分布。求得期望值就是我们需要的答案了。根据贝叶斯定理,上面两个式子相乘,并进行归一化就得到了后验分布。前面的博客有详细的推导。
最后还要对文章开头的问题进行解答,为什么真实数据的结果就比较差呢?最有可能的原因是信号的先验分布假设错误造成的。