核岭回归(KRR)和高斯回归(GPR)都通过在内部采用“内核技巧”来学习目标函数。KRR学习使用相应核函数(该核函数对应于原始空间中的非线性函数)将目标函数映射到内核空间中的线性函数,然后基于具有岭正则化的均方误差损失来选择内核空间中的线性函数。GPR使用内核定义目标函数的先验分布的协方差,并使用观察到的训练数据来定义似然函数,基于贝叶斯定理,定义了目标函数的(高斯)后验分布,其均值用于预测。 两者主要区别在于,GPR可以基于边际似然函数的梯度上升来选择核函数的超参数,而KRR需要对交叉验证的损失函数(均方误差损失)执行网格搜索。另一个不同之处是,GPR学习了目标函数的生成概率模型,因此可以提供有意义的置信区间和后验样本以及预测结果,而KRR仅提供预测结果。 本示例使用了人工数据集,该数据集由正弦目标函数和强噪声组成。下图比较了基于ExpSineSquared内核的KRR和GPR的学习模型,该模型适合于学习周期性函数。核函数的超参数控制核函数的平滑度(l)和周期性(p),而且GPR通过核函数中的其他WhiteKernel组件和KRR的正则化参数alpha来显式地学习数据的噪声水平。 该图显示两种方法都学习了目标函数的合理模型。GPR正确地将函数的周期性标识为2 * pi(6.28),而KRR选择了两倍的周期性4 * pi。除此之外,GPR在预测上提供了合理的置信范围,该预测对于KRR而言是不可用的。两种方法之间的主要区别是拟合和预测所需的时间:虽然拟合KRR原则上是快速的,但针对超参数优化的网格搜索会随着超参数的数量(“维数灾难”)成倍增长。GPR中基于梯度的参数优化不受此指数缩放的影响,因此在具有3维超参数空间的示例中,速度明显加快且预测时间相似,
高斯拟合 vc++代码_使用python+sklearn实现核岭回归和高斯回归的比较
最新推荐文章于 2023-02-28 11:00:45 发布