【发布时间】:2022-01-10 04:52:17
【问题描述】:
我正在研究数据驱动的稳健优化方法。在数值结果部分,我需要使用样本数据验证方法。我使用 np.random.multivariate_normal 来生成我给出协方差矩阵和均值向量的数据,如下所示:
mean = [-1000, 1,1,1]
cov = [[200,0,0,0],[0,0.001,0,0],[0,0,0.001,0],[0,0,0,0.001]]
生成数据后,样本的第一个分量并不分布在区间 [-1200,-800] 中,而是属于更小的区间(例如 [-1003,-997])。我需要生成样本数据,其第一个组件在区间 [-1200,-800] 中分布更广泛。我使用的代码如下:
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import multivariate_normal
# First 2D gaussian:
n=50 #number of samples
mean = [-1000, 1,1,1]
cov = [[200,0,0,0],[0,0.001,0,0],[0,0,0.001,0],[0,0,0,0.001]]
Samples = np.random.multivariate_normal(mean, cov, n).T
我不知道我哪里错了。
【问题讨论】:
-
在问题的开头,你说你给协方差矩阵为
cov = [[200,0,0,0], ...,但在实际代码中你有cov = [[1,0,0,0],...。尝试修复代码。 -
@WarrenWeckesser 对不起,沃伦,我把 1 改成了 200。
标签: python numpy optimization normal-distribution pyomo