gpt4 book ai didi

opencv - 使用Kmeans功能的输出中心对数据进行聚类

转载 作者:行者123 更新时间:2023-12-02 17:51:56 29 4
gpt4 key购买 nike

嗨,我用kmeans函数对一些数据进行了聚类,并存储了它作为输出产生的聚类中心。现在,我在Mat对象中有了一组新的 vector ,并且想知道每个 vector 所属的簇。是否有简单的方法做到这一点?或者我应该只计算每个 vector 在所有中心的欧几里得距离,然后选择最接近的群集。

如果我应该选择第二种方法,是否有任何效率方面的考虑才能使其快速发展?

最佳答案

您似乎有兴趣使用在初始数据集上运行K-Means的结果来执行某种类型的集群分配,对吗?

您可以将新观察值分配给最接近的均值。不幸的是,使用K均值,您对每个群集的形状或大小一无所知。例如,考虑一种情况,其中新 vector 与两个均值等距(或大致等距)。在这种情况下您要做什么?您是否对其中一个集群进行了艰苦的分配?

在这种情况下,最好查看组成每个群集的原始数据,并进行某种类型的K最近邻居分配(http://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)。例如,可能会发现,尽管新 vector 与两个不同的聚类中心大致等距,但它更接近于一个聚类中的数据(表明它可能属于该聚类)。

作为K-Means的替代方法,如果您使用诸如高斯混合与EM混合之类的方法,则不仅会拥有一组聚类中心(就像对K-Means所做的那样),而且还会有一个方差,描述了聚类的大小。对于每个新观察值,您都可以计算出它属于每个簇的概率,而无需重新访问每个簇中的数据(因为将其烘焙到MoG EM模型中)。

关于opencv - 使用Kmeans功能的输出中心对数据进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18246319/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com