You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Scipy QMC模块生成的二维Sobol点异常,求排查

解答

核心问题有两个:

  1. 未跳过Sobol序列的初始点
    Sobol序列的前若干个点(通常前10~20个)低差异特性表现很差,分布会显得杂乱。维基百科的示例图一般展示的是跳过初始点后,序列进入稳定填充模式的状态。

  2. 绘图未体现序列的生成顺序
    维基百科的Sobol序列图通常会标记点的生成顺序(比如颜色渐变),能直观看到序列逐区域填充空间的模式。你直接绘制所有点,只能看到最终分布,看不到顺序特征,自然和示例图观感差异大。

修改后的代码:

from scipy import qmc
import torch
import matplotlib.pyplot as plt

# 初始化采样器,关闭打乱
sampler = qmc.Sobol(d=2, scramble=False)
# 跳过前10个初始点,让序列进入稳定分布状态
sampler.fast_forward(10)
# 生成2^10=1024个点
sample = sampler.random_base2(10)
points = torch.tensor(sample).numpy()

# 按生成顺序用颜色渐变绘制,直观展示填充模式
plt.scatter(points[:, 0], points[:, 1], c=range(len(points)), s=0.2, cmap='viridis')
plt.colorbar(label='点的生成顺序')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

补充说明:

Scipy的Sobol实现采用标准方向向量集,和维基百科示例的核心低差异特性一致,只是初始点的差异导致观感不同。跳过初始点并展示生成顺序后,分布会和典型的Sobol序列图匹配。

内容的提问来源于stack exchange,提问作者BBB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:37:17