簡體   English   中英

從 GMM 模型繪制高斯子種群

[英]Plot gaussian sub-populations from GMM model

我使用 scikit learn on python 創建了一個 GMM 模型,如下所述:

x = df1['DNA_2']
y = df1['DNA_1']
X = np.column_stack((x, y)) # create a 2D array from the two lists
mod2 = GaussianMixture(n_components=5, covariance_type='tied', random_state=2) # build the gmm
mod2.fit(X)

然后我使用這個模型進行預測,然后繪制:

df1['pred2'] = labels
fig, ax = plt.subplots(1,1)
ax.scatter(x, y, c=df1['pred2'].apply(lambda x: colors[x]), s = 0.5, alpha=0.2)
H,X,Y = density_estimation(x,y)
ax.contour(H, X, Y, 8, linewidths=0.5, cmap='viridis')

要得到:

陰謀

我想知道如何繪制 5 個種群的高斯曲線。 我知道我可以使用mod1.means_獲得均值,使用mod1.covariances_ (均為 2D)獲得方差但我如何繪制它以獲得每個種群的曲線?

希望得到類似的東西: 在此處輸入圖片說明

如果是如圖所示的 2D GMM,唯一的方法是繪制 2D 密度圖,例如: https ://pythonmachinelearning.pro/clustering-with-gaussian-mixture-models/三個組成部分。 要繪制此圖,您需要繪制每個集群/組的概率密度分量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM