如何解决拉丁超立方采样
LHS 方法提供 0 到 1 之间的采样值。如果我想设置边界,例如,对于一维值应该是 -0 到 15?我怎样才能在 pydoe python 中做到这一点?
from pydoe import *
n = 2
samples = 50
d = lhs(n,samples,criterion='center')
x1 = d[:,0]
x2 = d[:,1]
我的 x1 值应该在 -10 到 10 之间,而 x2 应该是 1 到 20。
解决方法
将 x1(或 x2)中的每个数据点乘以您的边界范围,例如10 - (-10) 即。 20,并将其添加到下界。
x1_new = [None for i in range(len(x1))]
for i,j in enumerate(x1):
x1_new[i] = -10 + 20*j
...我觉得?
,我发现了
import pyDOE as pyd
bounds = np.array([[-10,10],[1,20]]) #[Bounds]
# print(xbounds)
X = pyd.lhs(2,100,criterion='centermaximin')
X[:,0] = (X[:,0]*(bounds[0,1]-bounds[0,0])+bounds[0,0])
X[:,1] = (X[:,1]*(bounds[1,1]-bounds[1,0])+bounds[1,0])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。