Sklearn Gaussian Mixture predict_proba:难以理解结果概率

问题描述 投票:0回答:0

我们有两个二维的、可分离的簇,如下图所示:

在该数据集上运行 sklearns GMM:

import numpy as np
from sklearn.mixture import GaussianMixture

gm = GaussianMixture(n_components=2, random_state=42, n_init= 100, init_params='random_from_data').fit(simpleblobs)

它学习两个适合/对应于我们数据集的“质心”的高斯分布:

gm.means_

array([[11.70833308, 13.83333333],
       [29.52666641, 36.19      ]])

到目前为止,它似乎已经学会了应该学习的东西。

然而,如果我们添加一个大致位于两个集群之间之间的对象,事情就会变得有趣:

middle_guy = (25,25)
天真地我会期望这个中间人(那不是训练数据的一部分,它基本上是一个新样本)的概率大约是 [0.5,0.5],表明它被分配到两个集群的概率大致相等,或同样低的概率。

然而,在调用(我认为是的)预期函数后我们得到的是:

gm.predict_proba([middle_guy]) array([[1.00000000e+00, 8.36394939e-66]])
这表明这个“中间”对象被分配到左下角的概率为 1,并且分配给右上角的概率接近于零。

此时我的问题是:为什么结果显示的结果与我预期的不同?我监督或误解了什么?

感谢您的帮助!

scikit-learn cluster-analysis gaussian gmm
© www.soinside.com 2019 - 2024. All rights reserved.