首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K-均值聚类能进行分类吗?

K-均值聚类能进行分类吗?
EN

Stack Overflow用户
提问于 2014-03-10 13:00:20
回答 7查看 27.8K关注 0票数 22

我想知道k均值聚类算法是否能做分类?

如果我做了一个简单的k-均值聚类。

假设我有很多数据,我使用k-均值聚类,然后得到2簇A,B,质心的计算方法是欧氏距离。

A组在左侧。

B组在右侧。

所以如果我有一个新的数据。我该怎么办?

  1. 再次运行k-均值聚类算法,并能得到新的数据属于哪个聚类?
  2. 记录最后一个质心,用欧氏距离来计算,确定新的数据是否属于?
  3. 其他方法?
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-03-10 16:58:09

当然,最简单的方法是2。,将每个对象赋给最近的质心(从技术上讲,使用平方和,而不是欧几里得距离;对于k-均值来说,这更正确,并为您节省了一个平方计算)。

方法1是脆弱的,因为k-方法可能给您一个完全不同的解决方案;特别是如果它一开始不适合您的数据(例如,太高的维度,太大的集群,太多的集群,.)

然而,以下方法可能更为合理:

3.训练一个实际的分类器.

是的,您可以使用k-方法来生成初始分区,然后假设k-表示分区可能是合理的类(不过,您确实应该在某个时候验证这一点),然后继续进行,如果数据是用户标记的话。

即运行k-均值,对生成的聚类进行支持向量机训练.然后使用支持向量机进行分类。

seen分类,甚至将每个对象分配到最近的聚类中心(选项1),都可以看作是非常简单的分类器。后者是一个1NN分类器,仅对聚类质心进行“训练”。

票数 25
EN

Stack Overflow用户

发布于 2014-03-10 13:05:28

是的,我们可以进行分类。

我不认为该算法本身(如#1)特别适合于对点进行分类,因为将要分类的数据合并到您的培训数据中往往会受到反对(除非您有一个实时系统,但我认为详细说明这一点可能会有点偏离要点)。

要对一个新点进行分类,只需计算到每个簇质心的欧氏距离来确定最接近的点,然后将其分类到该簇下。

有一些数据结构可以让您更有效地确定最近的质心(如kd树),但以上是基本思想。

票数 8
EN

Stack Overflow用户

发布于 2014-03-10 13:17:03

如果您已经对数据进行了k-意思集群以获得两个集群,那么您可以在新的数据点上使用K近邻来找出它属于哪个类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22300830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档