首页 > 解决方案 > 使用贝叶斯优化时 Cholesky 分解的错误

问题描述

因此,我一直在使用贝叶斯优化 ( rBayesianOptimization ) 来调整基于交叉验证性能指标的机器学习模型的超参数。经过几次贝叶斯优化迭代后,我时不时地遇到以下错误:

Error in chol.default(x = Sig): the leading minor of order XXX is not positive definite.

不幸的是,我无法共享我的数据集以获得可重现的示例,并且问题的发生有些不规律(我还没有查明究竟是什么导致了问题)。看来,在这些情况下,协方差矩阵产生了我为高斯过程指定的核,导致它不是正定的。

这是什么原因造成的,如何处理?

标签: rmachine-learningoptimizationhyperparameters

解决方案


此错误似乎是在拟合高斯过程时引起的,该过程是贝叶斯优化的基础。问题是使用指定内核生成的协方差矩阵不是正定的。我很想知道在哪些情况下会发生这种情况(我观察到这是在一组类似的参数连续测试几次之后发生的)。我可以通过从默认内核(指数)切换到母体来避免这个错误,这可以通过在贝叶斯优化调用中添加以下参数来完成:

kernel = list(type = "matern", nu = 5/2)

推荐阅读