如何生成适合每个类中正态分布的数据?

时间:2014-06-28 17:37:28

标签: numpy machine-learning statistics

使用numpy,我需要为机器学习问题生成培训和测试数据。该模型能够预测三个不同的类别(X,Y,Z)。这些类别代表多个临床试验中的患者类型,该模型应能够根据收集的患者数据(如血液分析和血压,既往病史等)预测患者类型。

从之前的一项研究中我们知道,总的来说,按照每次试验患者总数的百分比,这些分类用以下分布表示:

X - u=7.2, s=5.3 
Y - u=83.7, s=15.2 
Z - u=9.1, s=2.3
u / s描述了每个类别的N(u,s)分布(因此,对于所有研究的试验,X类平均值为7.2,方差为5.3)。不幸的是,该研究的数据集不可用。

如何在所有类和每个类中重新创建一个遵循相同分布的数据集,受每个记录的X + Y + Z = 100约束。

很容易生成一个遵循整体分布的数据集(u值),但是如何获得每个类具有相同分布的数据集?

1 个答案:

答案 0 :(得分:2)

您说的问题是从混合物分布中取样。混合物分布只是许多组分分布,每个都有一个重量,使得重量是非负的并且总和为1.您的混合物有3个组分。每个都是高斯分布,你给出的均值和sd。假设混合权重是群体中每个类别的比例是合理的。要从混合物中取样,首先使用权重作为离散分布的概率选择一个组件。然后从组件中取样。我假设您知道如何从高斯分布中进行采样。