自定义聚类算法

时间:2012-04-12 11:56:54

标签: algorithm math optimization machine-learning

我有一组矢量。向量有三种不同的类别即。 A,B和C.现在,我需要根据以下标准对这些进行聚类:

  1. 每个群集中至少应有1个,最多3个向量。
  2. 每个群集中的所有向量应该是不同的类型。 .i.e,群集不应包含2个或更多相同类型A,B或C的载体。
  3. 如果这是一个包含一组向量的聚类,则任意两个向量之间的距离(比如说Eucledian Distance)小于预定义的阈值T.
  4. 如果有一个包含2个或更多向量的聚类(当然最多3个),那么这些向量中的一个必须是A类。
  5. 是否有任何现有算法可以执行此类群集?假设我需要从头开始,然后根据上述条件需要遵循哪些步骤来聚类向量?

1 个答案:

答案 0 :(得分:1)

你可以使用约束引擎解决这类问题。像choco这样的东西包括对你列出的所有约束的支持(以及优化,因为我猜你是否有歧义你想要最少数量的聚类?)。

我不是choco的专家,但是如果有任何帮助,我在学习的过程中notes(这些都是约束解决方案,但我昨晚进行了优化工作,很快就会增加更多)。有一个确定的学习曲线,但对于这个复杂的东西,我认为你不会花费更多的时间来学习而不是自己编写一个解决方案(然后在将来你会有一个新的通用工具,而不是一堆非常具体的代码)

并且choco不是唯一的 - 还有更多这些 - google recently packaged some