【发布时间】:2021-09-17 13:56:42
【问题描述】:
我想在param_grid 内创建介于 (0.2, 0.3) 之间的浮点数。我有代码
test_size = (0.2, 0.3)
param_iters = 2
param_grid = {
"test_size": uniform(test_size[0], test_size[1]),
}
sampler = list(ParameterSampler(param_grid, n_iter=param_iters))
args = [Namespace(**{**args, **dict(params=params)}) for params in sampler]
但是我发现 train_size 是0.3897422919229748 和0.4852142919229748。这意味着我正在超出范围 (0.2, 0.3)
我也尝试使用下面的代码
param_grid = {
"test_size": round(random.uniform(test_size[0], test_size[1]), 2),
}
但在下一行出现错误
Parameter value is not iterable or distribution (key='test_size', value=0.24)
如何将 train_size 限制在 param_grid 内的 (0.2, 0.3) 之间?
【问题讨论】:
-
为什么是
numpy标签? -
@hpaulj 我使用了
numpy,因为我们可以使用numpy创建一个随机数 -
@hpaulj 不,这个
rand(random.uniform), 2)代表stats。但是,我试过了,np.random.uniform(test_size[0], test_size[1]),我得到了同样的错误Parameter value is not iterable or distribution -
你需要把imports和tags搞清楚。否则我们会(或者至少我)会假设
uniform来自np.random或pythonrandom。无论哪种情况,它都会产生一个随机数。总体而言,您的代码不可重现。
标签: python python-3.x numpy random