如何获得属于特定集群的样本的概率/接近度?

数据挖掘 分类 聚类 无监督学习 k-均值 余弦距离
2022-02-25 16:43:08

我是新手,所以如果我的比较逻辑不正确cosine similarity,请告诉我k-means

我得到了一套,4 clusters现在k-means我对Cluster No. 1. 对于这个集群,我把average of all values for each column它放在一边。

现在,我有一个测试样本,我运行它k-means prediction并得到输出1,这意味着它属于哪个对我有好处,但我的用例Cluster No. 1计算即使该样本不属于Cluster 1它落入那个Cluster No. 1

因此,为了解决这个问题,我想cosine similarity在我的测试样本和我拿的样本之间做一个average of all values for each column现在,在这种情况下,我得到的相似性只是5%

我不确定,对于我的用例i.e. (Getting the probability/closeness of a sample belonging to a specific cluster),哪个对我来说是更好的解释?

我知道我可以将集群标签用作y变量并制作multi-class classification model,但我想尽可能地保留它un-supervised请指导

1个回答

尝试高斯混合模型 (GMM),因为它类似于 KMeans,但在一些方面有所不同。简而言之,将 KMeans 视为一种硬聚类模型,其中每个样本仅分配给一个聚类,而 GMM 是一种软聚类技术,用于计算包含数据的每个高斯混合(可被视为聚类)的密度(概率)有问题的点。您可以从模型中获得标签和概率分数。试试看它是否对您有帮助。它可从 SciKit Learn 库中获得。

如果您必须坚持使用 KMeans,另一种方法可能是:

  1. 从 KMeans 模型中获取聚类中心。
  2. 获取您的测试样本向量并将这些作为参数传递给 softmax 函数,以获得每个样本的所有聚类中心的概率分数。