如何检查数据点是否在群集的边界内

时间:2016-03-16 14:06:00

标签: machine-learning cluster-analysis k-means

假设我已经完成了聚类(使用3个功能)并获得了4个集群,对一组数据点进行了培训。

现在正在制作中,我将获得一组不同的数据点,并根据该数据点的功能值,我需要知道它是否属于我之前制作的预定义群集。这不是集群,而是查找点是否属于预定义的集群。

如何确定该点是否在群集中?

我是否需要运行线性回归来找到覆盖群集的边界方程?

1 个答案:

答案 0 :(得分:0)

您的问题没有一般性答案。将新点分配给群集的方式是群集本身的属性。因此,至关重要的是“首先使用的聚类程序是什么”。每个定义良好的聚类方法(在数学意义上)为您提供整个输入空间分区,而不仅仅是有限训练集。这些技术包括k-means,GMM,......

但是,也有例外 - 聚类方法只是启发式方法,而不是有效的优化问题。例如,如果您使用层次聚类,则不会对空间进行分区,因此您无法正确地将新点分配给任何cluser,并且您将获得许多同样正确的启发式方法,这些方法可以执行某些操作 - 但您无法说明哪一个是正确。这些启发式方法包括:

  • “最近点启发式”,这相当于在群集上训练1-NN
  • “构建一个有效的模型启发式”,这是上述的一般化,您可以使用某个分类器(您选择)来模拟原始聚类(并通过交叉验证选择其超参数)。
  • “如果我重新运行群集会发生什么情况”,如果您可以从之前的解决方案重新运行群集,则只需检查它所属的群集,并将之前的群集作为起点。
  • ...