带约束的聚类方法有哪些?
处理特定约束需要各种技术。处理硬约束和软约束的一般原则如下:
处理硬约束 - 处理困难约束的一般方法是在聚类分配过程中严格遵守约束。给定一个数据集和一组关于示例的约束(即,必须链接或不能链接约束),我们如何开发 k-means 方法来满足这些约束?COP-kmeans 算法的工作原理如下:
为必须链接约束生成超级实例 - 它可以计算必须链接约束的传递闭包。因此,所有必须链接约束都被视为等价关系。闭包提供了一个或多个对象子集,其中子集中的某些对象应分配到一个聚类中。
它可以定义这样一个子集,它可以用均值替换子集中的某些对象。超级实例还会生成一个权重,即它定义的对象的数量。在此过程之后,必须链接约束将持续得到满足。
执行修改后的 k-means 聚类 - 在 k-means 中,对象被创建到最接近的中心。它可以尊重不能链接约束,并且它将 k-means 中的中心分配过程更改为最接近的可行中心分配。
当对象按顺序分配到中心时,在每一步它都可以确保到目前为止的分配不会破坏某些不能链接约束。将对象分配到最接近的中心,以便分配尊重某些不能链接约束。
因为 COP-k-means 规定在每一步都不违反任何约束,所以它不需要任何回溯。它是一种用于创建满足所有约束的聚类的贪婪算法,前提是约束之间不存在冲突。
处理软约束 - 带软约束的聚类是一个优化问题。当聚类破坏软约束时,需要对聚类进行惩罚。因此,聚类的优化目标包括两个部分,例如优化聚类方面和最小化约束违反惩罚。目标服务是一组聚类质量得分和惩罚得分。
给定一个数据集和一组关于示例的软约束,CVQE(约束向量量化误差)算法策略 k-means 聚类,同时执行约束违反惩罚。CVQE 中使用的目标函数是 k-means 中使用的距离的总和,修改了约束违反惩罚,计算如下:
必须链接违规的惩罚 - 如果对象 x 和 y 上存在必须链接约束,但它们被创建到两个多个中心 c1 和 c2,因此约束被违反。因此,dist (c1,c2),c1 和 c2 之间的距离,被插入到目标函数中作为惩罚。
不能链接违规的惩罚 - 如果对象 x 和 y 上存在不能链接约束,但它们被创建到一个公共中心 c,因此约束被违反。c 和 c’ 之间的距离 dist (c,c’) 被插入到目标函数中作为惩罚。