需要在MATLAB中生成k维空间中的点簇

时间:2012-04-19 16:00:11

标签: matlab cluster-analysis

生成的点应该是这样的 -

21   32   34   54   76   34
23   55   67   45   75   23.322
54   23   45   76   85.1 32   

上面的例子是当k = 6时。 如何生成这样一个大约1000个点的簇,并改变k的值和簇的半径。

是否有任何内置功能可以为我做到这一点?如果需要,我可以使用任何其他工具。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

看看ELKI。它带有一个非常灵活的数据生成器,用于聚类数据集,维基上有一个640d子空间聚类示例。

考虑使用d作为维度,就像在谈论集群时k通常是指集群的数量(想想k-means ......)

答案 1 :(得分:0)

我认为您需要为此编写自己的代码。假设您的中心位于原点,您必须按顺序选择 k 数字,每一步都有约束,所有数字的平方和不得超过(包括)超球面的半径平方。也就是说, k th数字的平方必须小于或等于半径的平方减去所有先前选取的数字的平方和。

答案 2 :(得分:0)

如果您拥有统计工具箱,这很容易

http://www.mathworks.co.uk/help/toolbox/stats/kmeans.html

否则,您可以使用Lloyds算法轻松编写代码。