algorithm - 自定义聚类算法

标签 algorithm math optimization machine-learning

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

  1. 每个簇中应至少有 1 个向量,最多有 3 个向量。
  2. 每个簇中的所有向量都应该属于不同的类型。 .即,一个簇不应包含 2 个或更多相同类型 A、B 或 C 的向量。
  3. 如果这是一个包含一组向量的聚类,那么任意两个向量之间的距离(假设为欧几里得距离)小于预定义的阈值 T。
  4. 如果有一个簇包含 2 个或更多向量(当然最多 3 个),则这些向量之一必须是 A 类型。

是否有任何现有算法可以执行此类聚类?假设我需要从头做起,那么根据上述条件对向量进行聚类需要遵循哪些步骤?

最佳答案

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

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

choco 并不是独一无二的 - 还有很多 - google recently packaged some .

关于algorithm - 自定义聚类算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10123089/

相关文章:

algorithm - 找到满足给定 f 的属性的最大 f 在其参数中是非递减的

algorithm - 开始时缓慢增加而结束时快速增加的数学函数

algorithm - 推荐关联项目的推荐算法

python - 为标签预测项目提取特征

在整数数组中查找其和相等的一对数字的算法

mysql - 优化SQL以获取1天的数据

php - MySQL 查询优化?

algorithm - 如何使用非标量输入数据/属性实现 Kohonen 映射 (SOM)

python - 如何压缩一定范围内的数据帧?

sql-server - 动态查询优化