如何在贝叶斯优化中提取超参数

6次浏览(最近30天)
工厂
工厂 2019年3月1日
评论道: epic 2019年3月4日
你好,
我是新的使用bayesopt Matlab函数,我试图在一个玩具问题上测试它。
我意识到bayesopt使用“ardmatern52”内核函数,它允许多个超参数的不同长度尺度,我想要访问由贝叶斯优化函数产生的超参数的估计。在我的理解中,这些估计是由fitrgp函数的值产生的;然而,当呼叫bayesopt时,他们似乎莫名其妙地迷路了。知道如何在贝叶斯优化的最后访问这些估计吗?
目前正在与R2016b工作
谢谢,
工厂

接受的答案

epic
epic 2019年3月1日
bayesopt返回的bayesanoptimization对象中有许多隐藏的属性。其中一个是ObjectiveFcnGP,这是最后一个符合观测到的函数评价数据的高斯过程模型。下面是一个如何从该模型获得内核参数的示例(使用R2018b):
bayesopt运行:
负载电离层
rng默认的
num = optimizableVariable (“n”(1、30),“类型”“整数”);
dst = optimizableVariable (dst的, {“chebychev”“欧几里得”闵可夫斯基的},“类型”“分类”);
c = cvpartition (351“Kfold”5);
有趣= @ (x) kfoldLoss (fitcknn (x, Y,“CVPartition”c“NumNeighbors”x.n,...
“距离”char (x.dst),“NSMethod”“详尽”));
结果= bayesopt(有趣,(num, dst),“详细”0,...
“AcquisitionFunctionName”“expected-improvement-plus”
获得最终的GP模型:
gp =结果。ObjectiveFcnGP
获取内核参数:
全科医生。KernelInformation查看内核信息
kparams = gp.KernelInformation.KernelParameters
你可以通过这样做看到所有的属性(隐藏的,私有的或其他):
s =结构(结果)
然后你就可以得到你想要的了。
2的评论
epic
epic 2019年3月4日
这是一个函数句柄,每次迭代后都会调用它。它的参数是迭代时的BayesianOptimization对象。例如,您可以在每次调用全局变量时将其附加到该变量。

登录评论。

更多的答案(0)

s manbetx 845


释放

R2016b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!