K-Means(无监督算法)

本文深入探讨了K-Means聚类算法的工作原理,包括输入参数、迭代过程、随机初始化、优化目标函数及如何选择合适的簇数量。通过实例讲解,帮助读者理解并应用该算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

K-Means是一种聚类算法,算法过程是以迭代的方式进行的。

详解

1. Input

  • K(从数据中聚类出的簇的个数)
  • Training set (drop x_0 = 1)

2. Process

Randomly initialize K cluster centroids μ1,μ2,.....,μk       %随机初始化聚类中心
Repeat{
	%簇分配:离哪一个聚类中心近,将其分配到其对应簇。(保持聚类中心不变的情况下,最小化 J)
	for i = 1 to m
		c^(i) := index (from 1 to K) of cluster centroid closest to x^(i)   %c^(i)表示x(i)对应的簇
	%移动聚类中心:计算不同簇的均值,作为新的聚类中心。(选择聚类中心 μ,来最小化 J)
	for k = 1 to K
		u_k := average (mean) of points assigned to cluster k
}

如果存在一个没有点的聚类中心,一般将其移除。

3. 优化目标函数

μ_c^(i) 表示 x^(i) 已经分配的聚类中心
目的:1.帮助我们对学习算法进行调试,,确保K-Means正确进行。
           2.帮助找到更好的簇,并避免局部最优解。

4. 随机初始化

  • K < m

5. 选择簇的个数 K

  • 肘部法则(Elbow method):如下左图;但不能解决所有情况,如右图。
  • 结合实际情况,看哪个聚类数量能更好的应用于后续目的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值