【发布时间】:2017-04-21 11:15:02
【问题描述】:
我正在尝试将高斯混合模型拟合到 python 中的一维数组。我在 Python 中使用 Sklearn 库中的“混合”。
我的样本数组包含来自单个正态分布的 437 个样本,均值 = 70.2,方差 = 11.8,我在其中添加了一些噪声而不会丢失正常形状。
在 Python 中,我的数组,即 v,如下所示: v = 数组([ 87.37658674, 80.46544429, .... ,80.8180536])
我正在使用如下混合高斯函数来拟合样本集。
g=mixture.GaussianMixture(n_components=1) g.fit(np.array(np.split(v,v.shape[0])))
供您参考,“np.array(np.split(v,v.shape[0]))”的形状为: (437, 1)
意思是我有 437 个例子和一个维度。
拟合均值后得到正确值,但方差远大于样本方差(得到 139.61,而真实方差应该在 11.8 左右)。
有谁知道我做错了什么?
【问题讨论】:
-
看起来您将“11.8”视为标准差而不是方差。 11.8 的平方约为 139.61。
标签: scikit-learn gaussian data-fitting mixture-model