我想知道k均值聚类算法是否能做分类?
如果我做了一个简单的k-均值聚类。
假设我有很多数据,我使用k-均值聚类,然后得到2簇A,B,质心的计算方法是欧氏距离。
A组在左侧。
B组在右侧。
所以如果我有一个新的数据。我该怎么办?
发布于 2014-03-10 16:58:09
当然,最简单的方法是2。,将每个对象赋给最近的质心(从技术上讲,使用平方和,而不是欧几里得距离;对于k-均值来说,这更正确,并为您节省了一个平方计算)。
方法1是脆弱的,因为k-方法可能给您一个完全不同的解决方案;特别是如果它一开始不适合您的数据(例如,太高的维度,太大的集群,太多的集群,.)
然而,以下方法可能更为合理:
3.训练一个实际的分类器.
是的,您可以使用k-方法来生成初始分区,然后假设k-表示分区可能是合理的类(不过,您确实应该在某个时候验证这一点),然后继续进行,如果数据是用户标记的话。
即运行k-均值,对生成的聚类进行支持向量机训练.然后使用支持向量机进行分类。
seen分类,甚至将每个对象分配到最近的聚类中心(选项1),都可以看作是非常简单的分类器。后者是一个1NN分类器,仅对聚类质心进行“训练”。
发布于 2014-03-10 13:05:28
是的,我们可以进行分类。
我不认为该算法本身(如#1)特别适合于对点进行分类,因为将要分类的数据合并到您的培训数据中往往会受到反对(除非您有一个实时系统,但我认为详细说明这一点可能会有点偏离要点)。
要对一个新点进行分类,只需计算到每个簇质心的欧氏距离来确定最接近的点,然后将其分类到该簇下。
有一些数据结构可以让您更有效地确定最近的质心(如kd树),但以上是基本思想。
发布于 2014-03-10 13:17:03
如果您已经对数据进行了k-意思集群以获得两个集群,那么您可以在新的数据点上使用K近邻来找出它属于哪个类。
https://stackoverflow.com/questions/22300830
复制相似问题