生成的点应该是这样的 -
21 32 34 54 76 34
23 55 67 45 75 23.322
54 23 45 76 85.1 32
上面的例子是k=6的时候。我怎样才能生成这样一个大约 1000 个点的集群并改变 k 的值和集群的半径。
是否有任何内置功能可以为我做到这一点?如果需要,我可以使用任何其他工具。
任何帮助,将不胜感激。
生成的点应该是这样的 -
21 32 34 54 76 34
23 55 67 45 75 23.322
54 23 45 76 85.1 32
上面的例子是k=6的时候。我怎样才能生成这样一个大约 1000 个点的集群并改变 k 的值和集群的半径。
是否有任何内置功能可以为我做到这一点?如果需要,我可以使用任何其他工具。
任何帮助,将不胜感激。
看看埃尔基。它带有一个用于聚类数据集的非常灵活的数据生成器,并且在 wiki 上的某处有一个 640d 子空间聚类示例。
考虑使用d
维度,因为当您谈论集群时,k
通常指的是集群的数量(想想 k-means ...)
我认为您需要为此编写自己的代码。假设你的中心在原点,你必须按顺序选择k个数字,每一步都有约束,所有数字的平方和(包括)不能超过超球面平方的半径。也就是说,第k个数字的平方必须小于或等于半径平方减去所有先前选择的数字的平方和。
如果你有统计工具箱,这很容易
http://www.mathworks.co.uk/help/toolbox/stats/kmeans.html
否则,您可以很容易地使用 Lloyds 算法自己编写代码。