Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中kmeans质心计算的误差_Matlab_K Means - Fatal编程技术网

matlab中kmeans质心计算的误差

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

我得到了一个在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是点的尺寸

然而,我在多次不同的初始化之后从kmeans得到的结果质心包含负值


有人能告诉我原因吗?

如果没有实际的数据矩阵“F”,我真的无法回答你的问题。然而,我注意到,如果大小(F)=[d,n],那么代码

[IDX, B] = kmeans(F,50,'MaxIter',1000,'EmptyAction','singleton')
将F视为一组d点,每个点都是n个变量。所以所有的d点都属于[0,1]^n

  • 您真的需要可选参数吗?如果移除它们会发生什么
  • 如果减少输入矩阵F中数据点的数量会发生什么
  • 如果你减少集群的数量,比如说10个,而不是50个,会发生什么
    我无法用
    F=rand(1000,5)重现负值。给我们代码来复制它。你解决问题了吗?你能回答这些问题吗?