首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BayesSearchCV中对数均匀参数分布加0

BayesSearchCV中对数均匀参数分布加0
EN

Stack Overflow用户
提问于 2020-08-08 19:09:44
回答 1查看 119关注 0票数 1

我正在使用scikit optimize在我的RandomForestClassifier超参数空间中执行BayesSearchCV。假设一个超参数也是0(零),同时具有对数均匀分布:

代码语言:javascript
复制
ccp_alpha = Real(min(ccp_alpha), max(ccp_alpha), prior='log-uniform')

由于log(0)是无法计算的,因此显然不可能让参数在某个时刻取值为0。

因此,将抛出以下错误:

代码语言:javascript
复制
ValueError: Not all points are within the bounds of the space.

有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-15 20:05:43

请注意,从对数均匀分布中获得0并没有很好地定义。你将如何使这种分布正态化,或者换句话说,绘制0的几率是多少?

最简单的方法是生成一个值列表,以尝试使用指定的分布。由于此列表中的值将被均匀采样,因此您可以使用您喜欢的任何分布。例如,使用列表

代码语言:javascript
复制
reals = [0,0,0,0,x1,x2,x3,x4] 

我们这里的x1到x4是对数均匀分布的,你可以得到4/8的赔率为0,和4/8的赔率为对数均匀分布的值。

如果您真的想这样做,您还可以实现一个名为MyReal的类(可能是从Real派生的子类),它实现一个rvs方法,从而生成您想要的发行版。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63314689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档