根据现有数据生成随机数据

Generate random data based on existing data

python有没有办法根据现有数据的分布生成随机数据?

以下是我的数据集的统计参数:

Data
count   209.000000
mean    1.280144
std     0.374602
min     0.880000
25%     1.060000
50%     1.150000
75%     1.400000
max     4.140000

因为它不是正态分布所以不可能用 np.random.normal 来做。有什么想法吗?

谢谢。

编辑:执行 KDE:

from sklearn.neighbors import KernelDensity
# Gaussian KDE
kde = KernelDensity(kernel='gaussian', bandwidth=0.525566).fit(data['y'].to_numpy().reshape(-1, 1))
sns.distplot(kde.sample(2400))

一般来说,真实世界的数据并不完全遵循 "nice" 分布,如正态分布或 Weibull 分布。

与机器学习类似,从数据点分布中抽样通常有两个步骤:

  • 拟合数据模型。

  • 然后,在随机性的帮助下,预测一个新的数据点。

有几种方法可以根据该估计来估计数据和样本的分布:

  • 核密度估计。
  • 高斯混合模型。
  • 直方图。
  • 回归模型。
  • 其他机器学习模型。

此外,最大似然估计等方法可以将已知分布(如正态分布)拟合到数据中,但估计的分布通常比使用核密度估计或其他机器学习模型。

另请参阅我的部分“Random Numbers from a Distribution of Data Points”。