根据现有数据生成随机数据
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”。
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”。