假设我们有一个64dim矩阵来聚类,让我们说矩阵数据集是dt = 64x150。
从vl_feat的库中使用其kmeans功能,我将我的数据集聚集到20个中心:
[centers, assignments] = vl_kmeans(dt, 20);
centers
是64x20矩阵。
assignments
是1x150矩阵,其中包含值。
根据手册:矢量分配包含输入数据到集群的(硬)分配。
我仍然无法理解矩阵assignments
中的那些数字是什么意思。我根本得不到它。有人介意帮我一点吗?一个例子或一些东西会很棒。这些值代表什么呢?
答案 0 :(得分:8)
在k-means中,您要解决的问题是将150
点聚类为20个群集的问题。每个点都是64维点,因此由大小为64的向量表示。因此,在您的情况下,dt
是点集,每列都是64维向量。
运行算法后,您会获得centers
和assignments
。 centers
是64维度空间中集群中心的20个位置,如果您想要将其可视化,测量点和集群之间的距离等,另一方面,“分配”包含每个的实际分配。 dt
中的64点暗淡点。因此,如果assignments[7]
为15
,则表示dt
中的第7个向量属于第15个群集。
例如,您可以在此处看到许多2d
点的聚类,让我们说1000
成为3
个聚类。在这种情况下,dt
将为2x1000
,centers
将为2x3
,作业将为1x1000
,并且保留的数字范围为1
到{ {1}}(或3
至0
,如果您使用2
)
修改的: 生成此图像的代码位于:http://pypr.sourceforge.net/kmeans.html#k-means-example以及有关pyPR的kmeans教程。
答案 1 :(得分:0)
在openCV中,它是每个输入点所属的簇的编号