确定ak最近邻居的最佳k

jam*_*esh 6 language-agnostic algorithm complexity-theory artificial-intelligence cluster-analysis

我需要对一组二维数据进行一些聚类分析(我可能会在此过程中添加额外的维度).

分析本身将构成输入可视化的数据的一部分,而不是输入到另一个过程(例如径向基函数网络).

为此,我想找到一组主要"看起来正确"的集群,而不是阐明一些隐藏的模式.

我的直觉是k-means对于这个来说是一个很好的起点,但找到正确数量的聚类来运行算法会有问题.

我要问的问题是:

如何确定 k 的"最佳"值,使得形成的簇是稳定的并且在视觉上可验证

问题:

  • 假设这不是NP完全的,那么找到一个好的k的时间复杂度是多少.(可能以运行k-means算法的次数报告).
  • k-means是这类问题的一个很好的起点?如果是这样,您会推荐其他方法.一个具体的例子,由轶事/经验支持将是最大的.
  • 您建议使用哪些快捷方式/近似值来提高性能.

tom*_*m10 5

对于具有未知数量的聚类的问题,聚合分层聚类通常是比k均值更好的路径.

凝聚聚类产生树形结构,离树干越近,聚类数越少,因此可以轻松扫描所有数量的聚类.该算法首先将每个点分配给它自己的簇,然后重复分组两个最接近的质心.跟踪分组序列可以为任意数量的可能群集创建即时快照.因此,当你不知道你想要多少组时,通常最好使用这种技术而不是k-means.

还有其他层次聚类方法(参见Imran评论中提出的论文).凝聚方法的主要优点是有许多实现,现成的供您使用.


Ale*_*lds 1

您可以查看有关集群验证的论文。这是涉及微阵列分析的论文中引用的一个,其中涉及对具有相关表达水平的基因进行聚类。

其中一种技术是轮廓测量,它评估标记点与其质心的接近程度。一般的想法是,如果一个点被分配给一个质心但仍然接近其他质心,则可能它被分配给了错误的质心。通过对训练集中的这些事件进行计数并查看各种k均值聚类,人们可以寻找k以使标记点总体落入“最佳”或最小模糊排列。

应该说,聚类更多的是一种数据可视化和探索技术。可能很难确定地阐明一种聚类是否能够正确解释数据(尤其是其他聚类)。最好将您的聚类与其他相关信息合并。您的数据是否有一些功能性或其他信息,以便您知道某些聚类是不可能的?这可以大大减少您的解决方案空间。