Algorithm 一种自定义聚类算法

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

我有一组向量。向量分为三类,即:。A、 B和C。现在,我需要根据以下标准对它们进行聚类:

  • 每个簇中应至少有1个向量,最多有3个向量
  • 每个簇中的所有向量应为不同类型。i、 一个簇不应包含2个或更多相同类型a、B或C的向量
  • 如果这里是一个包含一组向量的簇,那么任意两个向量之间的距离(比如欧氏距离)小于预定义的阈值T
  • 如果集群包含2个或更多向量(当然最多3个),则这些向量中的一个必须为a型

  • 是否有任何现有的算法来执行这种类型的聚类?假设我需要从头开始做这件事,那么需要遵循哪些步骤来根据上述条件对向量进行聚类?

    您可以使用约束引擎解决这类问题。类似这样的东西包括对您列出的所有约束的支持(以及优化,因为我猜如果您有歧义,您想要最少数量的集群?)

    我不是choco方面的专家,但如果这对我在学习时有所帮助的话(这些都是关于约束解决的,但我昨晚进行了优化,很快就会添加更多)。有一个明确的学习曲线,但对于这种复杂的东西,我认为学习所需的时间不会比自己编写解决方案所需的时间更长(然后在将来,您将拥有一个新的通用工具,而不是一堆非常具体的代码)


    choco并不是独一无二的,还有很多这样的东西。

    您可以使用约束引擎来解决这类问题。类似这样的东西包括对您列出的所有约束的支持(以及优化,因为我猜如果您有歧义,您想要最少数量的集群?)

    我不是choco方面的专家,但如果这对我在学习时有所帮助的话(这些都是关于约束解决的,但我昨晚进行了优化,很快就会添加更多)。有一个明确的学习曲线,但对于这种复杂的东西,我认为学习所需的时间不会比自己编写解决方案所需的时间更长(然后在将来,您将拥有一个新的通用工具,而不是一堆非常具体的代码)


    choco并不是唯一的——还有很多这样的——我认为你必须有一个未说明的标准,因为你可以通过将每个向量放在一个单独的簇中来满足给定的标准。您只是想最小化集群的数量吗?还有,总共有多少个向量?将每个向量放在不同的簇中?你能帮我澄清一下吗?我总共有大约5000、10000和12000个a、B和C型向量。根据给出的数字,27000个集群满足您的标准。5000有一个a,10000有一个B,12000有一个C。如果a型向量和B型向量之间的欧氏距离小于“T”,则这两个向量属于一个簇。那么它将是26999个集群。这就是我的意思:)(对不起,如果没有表达清楚的话)。这些向量需要根据它们的欧几里德距离进行分组——条件是,如果一个簇中有2个或更多向量,那么簇中应该有一个a型主向量。在我的用例中,这个主向量实际上是一种参考/父向量,B和C类型的其他向量是成对的。我想你一定有一个未说明的标准,因为你可以通过把每个向量放在一个单独的簇中来满足给定的标准。您只是想最小化集群的数量吗?还有,总共有多少个向量?将每个向量放在不同的簇中?你能帮我澄清一下吗?我总共有大约5000、10000和12000个a、B和C型向量。根据给出的数字,27000个集群满足您的标准。5000有一个a,10000有一个B,12000有一个C。如果a型向量和B型向量之间的欧氏距离小于“T”,则这两个向量属于一个簇。那么它将是26999个集群。这就是我的意思:)(对不起,如果没有表达清楚的话)。这些向量需要根据它们的欧几里德距离进行分组——条件是,如果一个簇中有2个或更多向量,那么簇中应该有一个a型主向量。在我的用例中,这个主向量实际上是一种参考/父向量,B和C类型的其他向量是成对的。希望现在一切都清楚了。谢谢安德鲁。还有一个类似的简单问题:如果我有一组向量,我如何对它们进行聚类,使得在每个聚类中,任意两个向量之间的欧氏距离小于一个阈值?因此,在最后,可能存在不属于任何簇的向量。你知道现有的算法吗?谢谢安德鲁。还有一个类似的简单问题:如果我有一组向量,我如何对它们进行聚类,使得在每个聚类中,任意两个向量之间的欧氏距离小于一个阈值?因此,在最后,可能存在不属于任何簇的向量。你知道现有的算法吗?