【发布时间】:2012-04-24 18:29:22
【问题描述】:
我有一组向量。向量分为三个不同的类别,即。 A、B 和 C。现在,我需要根据以下标准对它们进行聚类:
- 每个集群中应该有最少 1 个和最多 3 个向量。
- 每个簇中的所有向量都应该是不同的类型。 .即,一个簇不应包含 2 个或多个相同类型 A、B 或 C 的向量。
- 如果这里是一个包含一组向量的集群,那么任何两个向量之间的距离(比如说欧几里德距离)都小于预定义的阈值 T。
- 如果一个簇包含 2 个或更多向量(当然最多 3 个),那么这些向量中的一个必须是 A 类型。
是否有任何现有的算法来执行这种类型的聚类?假设我需要从头开始,那么根据上述条件对向量进行聚类需要遵循哪些步骤?
【问题讨论】:
-
我认为您必须有一个未说明的标准,因为您可以通过将每个向量放在单独的集群中来满足简单给出的标准。你只是想尽量减少集群的数量吗?还有,总共有多少个向量?
-
将每个向量放在不同的集群中?你能帮我澄清一下吗?我总共有大约 5000、10000 和 12000 个 A、B 和 C 类型的向量。
-
使用给定的数字,拥有 27000 个集群即可满足您的条件。 5000个有一个A,10000个有一个B,12000个有一个C。
-
如果 A 类向量和 B 类向量之间的欧式距离小于“T”,则这两个向量属于一个簇。因此它将是 26999 个集群。这就是我的意思:)(抱歉,如果没有表达清楚)。向量需要根据它们的欧几里德距离进行分组——条件是如果一个簇中有 2 个或多个向量,那么簇中应该有一个类型为 A 的主向量。在我的用例中,这个主向量实际上是某种参考/父向量,B 和 C 类型的其他向量与之配对。希望现在很清楚。
标签: algorithm math optimization machine-learning