Sir*_*ang 14 algorithm cluster-analysis data-mining k-means
我想知道k-means聚类算法是否可以进行分类?
如果我做了一个简单的k-means聚类.
假设我有很多数据,我使用k-means聚类,然后得到2个聚类A,B.质心计算方法是欧几里德距离.
左侧的集群A.
集群B在右侧.
所以,如果我有一个新数据.我该怎么办?
再次运行k-means聚类算法,可以得到新数据属于哪个集群?
记录最后一个质心并使用欧氏距离计算来判断新数据属于哪个?
其他方法?
Ano*_*sse 18
最简单的方法当然是2.,将每个对象分配到最近的质心(技术上,使用平方和,而不是欧几里德距离;这对于k均值更正确,并为您节省sqrt计算).
方法1.是脆弱的,因为k-means可能会给你一个完全不同的解决方案; 特别是如果它首先不适合你的数据(例如太高的尺寸,太大的簇,太多的簇,......)
但是,以下方法可能更合理:
3.训练一个实际的分类器.
是的,你可以使用k-means来产生一个初始分区,然后假设k-means分区可能是合理的类(你真的应该在某些时候验证这个),然后继续你想要的数据.用户标记.
即运行k-means,在生成的集群上训练SVM.然后使用SVM进行分类.
k-NN分类,或者甚至将每个对象分配到最近的聚类中心(选项1)可以被视为非常简单的分类器.后者是1NN分类器,仅在集群质心上"训练".