matlab中kmeans质心计算的误差
我得到了一个在matlab中实现的kMeans的奇怪输出。 我的输入矩阵F中维度d x n的所有条目都在0和1之间。当我使用下面的matlab命令运行kmeans算法时,它创建了50个集群matlab中kmeans质心计算的误差,matlab,k-means,Matlab,K Means,我得到了一个在matlab中实现的kMeans的奇怪输出。 我的输入矩阵F中维度d x n的所有条目都在0和1之间。当我使用下面的matlab命令运行kmeans算法时,它创建了50个集群 [IDX, B] = kmeans(F,50,'MaxIter',1000,'EmptyAction','singleton') 这里IDX是返回的标签,B是创建的集群的质心。由于所有数据点都在[0,1]^d中,因此计算出的质心也在[0,1]^d中,其中d是点的尺寸 然而,我在多次不同的初始化之后从kmea
[IDX, B] = kmeans(F,50,'MaxIter',1000,'EmptyAction','singleton')
这里IDX是返回的标签,B是创建的集群的质心。由于所有数据点都在[0,1]^d中,因此计算出的质心也在[0,1]^d中,其中d是点的尺寸
然而,我在多次不同的初始化之后从kmeans得到的结果质心包含负值
有人能告诉我原因吗?如果没有实际的数据矩阵“F”,我真的无法回答你的问题。然而,我注意到,如果大小(F)=[d,n],那么代码
[IDX, B] = kmeans(F,50,'MaxIter',1000,'EmptyAction','singleton')
将F视为一组d点,每个点都是n个变量。所以所有的d点都属于[0,1]^n
也
我无法用
F=rand(1000,5)重现负值代码>。给我们代码来复制它。你解决问题了吗?你能回答这些问题吗?