4

変換されたデータのログに 3 つの正規分布の混合物を当てはめようとしていますが、その方法が少しわかりません。scikit Learn python の gmm 関数を試しましたが、正しく動作しないようです。

g = mixture.GMM(n_components=3)
g.fit(lines)  
f1 = arange(0, 13, 0.01)   
f2 = arange(0, 13, 0.01)    
f3 = arange(0, 13, 0.01)    
f = arange(0, 13, 0.01)

for x in arange(0, 13, 0.01):       
    f1[x] = numpy.round(g.weights_[0],5) * numpy.exp(-numpy.power(x - means[0], 2) / 2 *  numpy.power(covars[0], 2)) * (1 / (covars[0] * numpy.power(2 * pi, 0.5)))    
    f2[x] = numpy.round(g.weights_[1],5) * numpy.exp(-numpy.power(x - means[1], 2) / 2 * numpy.power(covars[1], 2)) * (1 / (covars[1] * numpy.power(2 * pi, 0.5)))    
    f3[x] = numpy.round(g.weights_[2],5) * numpy.exp(-numpy.power(x - means[2], 2) / 2 * numpy.power(covars[2], 2)) * (1 / (covars[2] * numpy.power(2 * pi, 0.5)))

f=f1+f2+f3   
plt.plot(f)   
plt.show()

最後に、3 つのコンポーネント、つまり f=f1+f2+f3 の pdf プロットを取得したいと考えています。しかし、うまくいきません。

法線の混合物を対数法線データに当てはめようとしているからですか?

私の間違いを説明してください、および/または対数正規分布の混合をフィッティングするために使用されるパッケージについてアドバイスしていただけますか?

4

1 に答える 1