【发布时间】:2020-11-04 09:57:05
【问题描述】:
我有 136 个数字,它们具有 8 个高斯分布的重叠分布。我想找到它的平均值,以及每个高斯分布的方差!你能发现我的代码有什么错误吗?
file = open("1.txt",'r') #data is in 1.txt like 0,0,0,0,0,0,1,0,0,1,4,4,6,14,25,43,71,93,123,194...
y=[int (i) for i in list((file.read()).split(','))] # I want to make list which element is above data
x=list(range(1,len(y)+1)) # it is x values
z=list(zip(x,y)) # z elements consist as (1, 0), (2, 0), ...
因此,通过上述过程,对于xy平面上以第一个给定数据为y值的136个点(x,y),得到了以此为元素的列表z。 现在我想获得每个高斯分布的均值,方差。此时,基本假设是给定数据由重叠的 8 个高斯分布组成。
import numpy as np
from sklearn.mixture import GaussianMixture
data = np.array(z).reshape(-1,1)
model = GaussianMixture(n_components=8).fit(data)
print(model.means_)
file.close()
实际上,我不知道如何编写代码来打印 8 种均值和方差...任何人都可以帮助我吗?
【问题讨论】: