利用最小二乘法的策略进行线性拟合时往往会因为过拟合现象而使测试结果误差偏大,尽管我们可以利用正则化手段加以约束,但我们也可以通过贝叶斯概率进行线性拟合来解决这个问题。
简单来说,其基本思想就是利用贝叶斯的后验概率思想,通过观察到的数据点对参数w进行推测(极大似然估计)。接下来我们将通过R语言来测试该方法的性能。
首先我们需要下载 BLR 包,然后加载:
library(BLR)
为了测试方便我们将生成20个数据点:
# we decide to generate about 20 points for test
permN=20
# all x coordinates of these points follow the
# uniform distribution
ox<-runif(permN,0,10)
# this is used for plotting line
lx <- seq(0, 10 , .1)
# all target values are contaminated with error
# and the target is X^2 + 2X + 3 + err
oy<-ox*ox+2*ox+3+rnorm(permN)
所有的数据 x 区间为 0 - 10,服从均匀分布;y 则由