kMeans

kMeans是一种无监督学习的聚类算法,通过迭代寻找最优类中心。算法流程包括选择初始类中心,按距离归类并更新类中心,直至满足迭代停止条件。关键点在于类中心初始化、相似度计算(如欧式距离)及更新策略(平均值等)。

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

kMeans是一种简单的聚类算法,是一种无监督学习算法

聚类就是把同一类的数据聚在一起。意思是使同一类的数据相似度比较大,类别之间的数据相似度比较小。或者是距离。

聚类的基本思想:
以空间中k个点为形心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各簇的类中心的值,直至得到最好的聚类结果。

算法如下:
(1)选择k个初始类中心
(2)迭代:
1)把每个样本归类
2)更新类中心
(3)迭代停止条件(满足一个即可):
1)迭代次数达到设定的次数
2)最小均方差小于设定值
3)簇中心变化率到达设定值

关键是:
1. 类中心如何初始化?
2. 数据的相似度/距离如何表示?曼哈顿距离还是欧式距离
3. 类中心如何更新?平均值还是加权平均值还是中位数

from sklearn.cluster import KMeans 
import numpy as np
X = np.array([[1, 2], [1, 4],[1, 0],[4, 2],[4, 4],[4, 0]])
model= KMeans(n_clusters=2, random_state=0)
model.fit(X)
model.labels_
# array([0, 0, 0, 1, 1, 1], dtype=int32)
kmeans.predict([[0, 0], [4, 4]])
# array([0, 1], dtype=int32)
kmeans.cluster_centers_
#array([[ 1.,  2.],
#       [ 4.,  2.]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值