2016-12-06 13 views
0

私はガウス混合モデルをpythonの1次元配列に収めようとしています。私はPythonのSklearnライブラリから "混合"を使用しています。ガウスPythonの混合

私のサンプル配列には、mean = 70.2とvariance = 11.8の単一正規分布からの437サンプルが含まれており、通常の形状を失うことなくノイズを追加しました。

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の例と1つの次元を持っています。

平均値が正しい値を取得した後、分散はサンプル分散よりも大きくなります(実際の分散は約11.8ですが、139.61になります)。

私は間違っていると誰が知っていますか?

+1

「11.8」を分散ではなく標準偏差として扱っているように見えます。 11.8平方は約139.61である。 –

答えて

0

標準偏差またはシグマとして11.8を使用していると思われます。したがって、対応する分散はシグマ*シグマまたは11.8 * 11.8で、およそ139.61となります。

下記のコードを参照してください。

import os 
import numpy as np 
import math 
from sklearn import mixture 



def main(): 
    np.random.seed(42) 
    sigma=11.8 
    mu=70.2 
    obs1 = np.random.randn(437, 1) * sigma + mu 
    g = mixture.GMM(n_components=1) 
    g_gmm = g.fit(obs1) 

    print "%r" % g_gmm 
    print "%r" % g.weights_ 
    print "%r" % g.means_ 
    print "%r" % g.covars_ 
    pass 
関連する問題