3

我需要测试我的 Gap Statistics 算法(它应该告诉我数据集的最佳 k),为此我需要生成一个易于聚类的大数据集,以便我先验地知道最佳聚类数。你知道有什么快速的方法吗?

4

1 回答 1

3

这在很大程度上取决于您期望什么样的数据集 - 1D、2D、3D、正态分布、稀疏等?“大”有多大?数千、数百万、数十亿的观察?

无论如何,我创建易于识别的集群的一般方法是将具有不同偏移和扩展的随机数的顺序向量连接起来:

DataSet = [5*randn(1000,1);20+3*randn(1,1000);120+25*randn(1,1000)];
Groups = [1*ones(1000,1);2*ones(1000,1);3*ones(1000,1)];

这可以通过使用例如扩展到 N 个特征

randn(1000,5)

或水平连接

DataSet1 = [5*randn(1000,1);20+3*randn(1,1000);120+25*randn(1,1000)];
DataSet2 = [-100+7*randn(1000,1);1+0.1*randn(1,1000);20+3*randn(1,1000)];
DataSet = [DataSet1 DataSet2];

等等。

randn 还接受多维输入,例如

randn(1000,10,3);

用于查看更高维的集群。

如果您没有关于这将应用于哪种数据集的详细信息,您应该查找这些。

于 2013-06-11T17:29:54.867 回答