我想知道k均值聚类算法是否可以分类?
如果我做了一个简单的k均值聚类。
假设我有很多数据,我使用k-均值聚类,然后得到2个聚类A,B。质心的计算方法是欧几里得距离。
群集A在左侧。
群集B在右侧。
所以,如果我有一个新数据。我该怎么办?
再次运行k-means聚类算法,可以得到新数据属于哪个聚类?
记录最后一个质心并使用欧几里得距离进行计算来确定新数据所属?
其他方法?
当然,最简单的方法是2.,将每个对象分配给最接近的质心(从技术上讲,使用平方和,而不是欧几里得距离;这对于k均值更为正确,并节省了sqrt计算)。
方法1.是脆弱的,因为k均值可能会为您提供完全不同的解决方案;特别是如果它在一开始就无法很好地适应您的数据(例如,维数过高,大小不同的集群,集群太多,…)
但是,以下方法可能更加合理:
3.训练实际的分类器。
是的,您可以使用k-means产生一个初始分区,然后假设k-means分区可以是合理的类(尽管您 确实 应该在某个时候对此进行验证),然后继续进行,如果数据已经用户标记。
即运行k-均值,在生成的群集上训练SVM。然后使用SVM进行分类。
k-NN分类,甚至将每个对象分配给最近的聚类中心(选项1),都可以视为非常简单的分类器。后者是一个1NN分类器,仅在群集质心上进行“训练”。