K-means聚类算法中K值选择的肘部法则
创作时间:
作者:
@小白创作中心
K-means聚类算法中K值选择的肘部法则
引用
CSDN
1.
https://m.blog.csdn.net/m0_53244394/article/details/143945143
在K-means聚类算法中,确定最佳的聚类数K值是一个关键问题。本文将介绍如何使用肘部法则(Elbow Method)来确定最佳的K值,并通过Python代码实现这一过程。
WCSS的概念
WCSS(Within-Cluster Sum of Squares)是衡量聚类结果紧密程度的指标,表示每个样本点与其所属簇中心的距离平方和。简言之,就是样本类里面每个点到中心点的距离的平方,然后全部相加。
肘部法的详细步骤
确定K值范围
选择一个合理的K值范围,一般从1开始,逐步增加,直到达到一个预设的最大K值(例如,K=10)。计算不同K值下的WCSS
对于每一个K值,执行以下步骤:
- 运行K均值算法:将数据集划分为K个簇。
- 计算WCSS:计算簇内误差平方和,即所有样本点到其所属簇中心的距离平方和。
绘制肘部图
在图中,横轴表示簇的数量K,纵轴表示对应的WCSS值。绘制K值与WCSS的关系曲线。识别“肘部”位置
观察曲线中WCSS下降速度显著减缓的位置,即曲线出现“肘部”的点。该K值被认为是最佳的聚类数。
Python代码实现
下面通过Python代码实现上述过程:
import random
import matplotlib.pyplot as plt
# 一些数据点
data = [
[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0], [1, 6], [5, 6], [9, 9], [2, 7], [3, 3], [6, 4], [2, 5], [3, 5], [4, 5], [5, 5]
]
# K的取值范围
K = range(1, 10)
WCSS = [] # 存放各个K对应的WCSS
# 遍历K值
for i in K:
index_list = []
for j in range(i):
while True: # 随机选择中心点,但不能重复
index_ = random.randint(0, len(data) - 1)
if index_ in index_list:
continue
else:
index_list.append(index_)
break
centerPoint = [data[x] for x in index_list]
# 确定每个点在K值下的分类
cate_data = {}
for z in range(len(data)):
distance = []
for y in centerPoint:
distance.append(((y[0] - data[z][0]) ** 2 + (y[1] - data[z][1]) ** 2) ** 0.5)
cate_data[f"{data[z]}"] = distance.index(min(distance))
# 计算每个K值对应的WCSS
wcss_list = []
for p in range(i):
points = [eval(key) for key in cate_data.keys() if cate_data[key] == p]
wcss_list.append(sum([((points[n][0] - centerPoint[p][0]) ** 2 + (points[n][1] - centerPoint[p][1]) ** 2) ** 0.5 for n in range(len(points))]))
WCSS.append(sum(wcss_list))
# 绘制肘部图
plt.figure(figsize=(8, 5))
plt.plot(K, WCSS, 'bo-', markersize=8)
plt.xlabel('K')
plt.ylabel('WCSS')
plt.title('Elbow Method => K')
plt.xticks(K)
plt.grid(True)
plt.show()
运行上述代码,可以得到如下的图像:
从图中可以看出,K在4或者5这个点附近有一个明显的拐点,因此我们可以认为最佳的K值为4或者5。
通过本文的介绍和代码实现,读者应该能够掌握如何使用肘部法则来确定K-means聚类算法中的最佳K值。这种方法在实际应用中非常实用,能够帮助我们更好地进行聚类分析。
热门推荐
你以为是休息?小心累坏你的膝盖!护膝做好这5点
日元汇率计算:外汇交易的入门知识
台式机用hx是魔改吗
梦见已故亲友?可能是上天在给你三个重要提示
一文读懂 GPU 技术
二十四节气歌的来历
论经济状况与品德在女儿婚姻选择中的权衡
睡眠障碍需要检查哪些?
全球乙肝新药进展(更新至2024年5月,含EASL2024新药进展,独家整理)
为什么那么多国家允许美国驻军?哪些国家没有美驻军?答案来了
关于小松鼠的10个有趣冷知识,你知道多少个?
中老年人补叶酸,可改善4大健康问题!合用这4类药,事半功倍
万邦财经CPA:已获利息倍数,衡量企业偿债能力的关键指标
虹膜炎吃什么消炎药
虹膜炎怎样治疗和预防复发
韩红基金会的透明与高效,让爱心人士捐赠更安心
2025年湖南高考用什么卷?采用的是全国几卷
2024年湖南高考试卷是全国几卷?是什么卷?是由哪里出题?附各省高考用卷情况
2024中国血脂管理指南解读:高血脂治疗要点全解析
夜间血氧饱和度下降怎么办?制氧机和呼吸机该如何选择?
口臭:益生菌能否解决你的困扰?
拟录取不等于正式录取!还有些事情需要注意!
期货量化交易软件:OBV指标
高一牛顿运动定律基础概念与常见题型解析
股东失联如何处理他的股权?一文详解股权相关法律问题
钡餐和胃镜的区别是什么
如何在泥路上安全驾驶?这些驾驶技巧有哪些实际应用?
包子机制作包子的时间和温度有什么要求吗?
美国帝国大厦的历史与建筑特色介绍
【医疗问答】生活中常说穿衣要“春捂秋冻”,你知道这是为什么吗?