集群数据分为好坏

时间:2016-02-29 20:26:30

标签: cluster-analysis hierarchical-clustering

我需要将数据点划分为彼此相似的数据点("好的"点)和其他所有人("坏"点)。

它看起来像某种聚类问题,我该怎么做:

我假设至少有两个"好"点。

  1. 查找所有类型点之间的成对距离。
  2. 找到最小距离(minDist)。
  3. 为所有点进行分层聚类。
  4. 在5 * minDist的高度进行切割。
  5. 假设与minDist在同一群集中的所有点以及在该切割下的所有点属于所需的"好"群集。
  6. 这很有效,但如果有两个点非常接近。 minDist非常小,这个5 * minDist切割也很小=>只有这两个点在期望的"好"群集。

    我认为我需要完全改变这种方法,这里是问题1:

    [1]"有哪些方法可以将类似点与其他人分开?"

    或者我需要将这个5 * minDist修改为minDist的其他一些功能。问题是:

    [2]"我可以选择什么作为5 * minDist的合理替代品?"

    弗拉基米尔

1 个答案:

答案 0 :(得分:0)

您希望进行异常值检测。而不是进行群集。

有很多算法(参见大型集合的ELKI)。一些非常基本的方法可以解决您的问题:

  1. 半径为r的邻居数。如果+ i<阈值,该点是异常值。

  2. 距离k最近邻居的距离。选择k> 1以避免您看到的这两个元素群集。

  3. 此外,DBSCAN群集可能对您有用。考虑所有集群是好的,只有 noise 是坏的!