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

如何仅缩小正态分布中心区域大小同时保持整体范围?

可行解决方案

标准的径向正态分布中,sigma_p同时控制了峰的宽窄和尾部延伸范围,单纯调整sigma_p无法实现「范围不变、中心高概率区缩小」的需求。下面提供两种直接修改分布公式的实现方式:

方案一:使用广义正态分布

广义正态分布引入了形状参数$\beta$,可以独立控制峰的陡峭程度,同时通过调整尺度参数$\alpha$保持尾部范围和原分布一致。当$\beta>2$时,分布会比标准正态分布更尖峰(中心高概率区更集中),且尾部延伸范围可匹配原分布。

修改后的概率计算代码片段:

import scipy.special as sps

sigma_p = 0.7
# 形状参数:数值越大,中心高概率区越窄
beta = 4
# 尺度参数:确保尾部范围和原正态分布一致
alpha = sigma_p * np.sqrt(2) / (sps.gamma(1/beta) / sps.gamma(3/beta))**0.5

# 计算到起点的径向距离
r = np.sqrt((X1 - pathNormDf.x[0])**2 + (X2 - pathNormDf.y[0])**2)
# 径向对称的广义正态分布PDF
path_pdf = (beta / (2 * alpha * sps.gamma(1/beta))) * np.exp(-(r / alpha)**beta)

你可以通过调整$\beta$的数值(比如4、6),精准控制中心黄色区域的大小,同时整体分布范围和原效果一致。

方案二:分段混合正态分布

这种方式更直观,对中心区域和尾部区域使用不同的$\sigma$参数:

  • 中心区域(距离起点小于阈值$d$):使用更小的$\sigma$,让概率衰减更快,缩小高概率区
  • 尾部区域(距离起点大于等于$d$):保留原$\sigma_p$,确保整体范围不变

代码示例:

sigma_p = 0.7
# 中心区域的小sigma,数值越小中心区越窄
sigma_center = 0.3
# 划分中心/尾部的距离阈值
d = 0.5

# 计算径向距离
r = np.sqrt((X1 - pathNormDf.x[0])**2 + (X2 - pathNormDf.y[0])**2)

# 分段计算PDF
pdf_center = (1 / (np.sqrt(2 * np.pi) * sigma_center)) * np.exp(-0.5 * (r / sigma_center)**2)
pdf_tail = (1 / (np.sqrt(2 * np.pi) * sigma_p)) * np.exp(-0.5 * (r / sigma_p)**2)

# 合并两个区域的PDF,可选:调整系数让整体概率和接近1
path_pdf = np.where(r < d, pdf_center, pdf_tail)
path_pdf = path_pdf / path_pdf.sum() * (np.sqrt(2*np.pi)*sigma_p)

这种方法可以精确控制中心区域的边界,完全保留原分布的尾部覆盖范围。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:30:19