我有一组向量。向量分为三个不同的类别,即。A、B 和 C。现在,我需要根据以下标准对它们进行聚类:
- 每个集群中应该有最少 1 个和最多 3 个向量。
- 每个集群中的所有向量都应该属于不同的类型。.ie,一个簇不应包含 2 个或多个相同类型 A、B 或 C 的向量。
- 如果这里是一个包含一组向量的簇,那么任何两个向量之间的距离(比如说欧几里德距离)都小于预定义的阈值 T。
- 如果有一个包含 2 个或更多向量的簇(当然最多 3 个),那么这些向量中的一个必须是 A 类型。
是否有任何现有的算法来执行这种类型的聚类?假设我需要从头开始,那么根据上述条件对向量进行聚类需要遵循哪些步骤?