Python 计算最近中心点:K 均值聚类代码实现
Python 计算最近中心点:K 均值聚类代码实现
本文介绍了使用 Python 代码计算给定点到多个中心点中距离最近的一个,并将其归类到对应的中心点类别下。代码示例展示了如何使用 K 均值聚类算法对数据进行分类,并计算每个类别到其中心点的平均距离。
def classify(pt, centers):
temp = [distance(pt, centers[i]) for i in range(len(centers))]
index = np.argmin(temp)
dist = temp[index]
return (index, dist)
# 将每个点归入到离它最近的中心点类别下
########## Begin ##########
# 初始化每个类别的列表
categories = [[] for _ in range(k)]
# 将每个点归入到离它最近的中心点类别下
for i in range(len(X)):
pt = X[i]
index, _ = classify(pt, centers)
categories[index].append(pt)
# 计算每个点到离它最近的中心点的平均距离
avg_distances = []
for i in range(k):
category_pts = categories[i]
distances = [distance(pt, centers[i]) for pt in category_pts]
avg_distances.append(np.mean(distances))
########## End ##########
代码解释:
classify(pt, centers)函数: 该函数接收一个点pt和多个中心点centers作为参数,计算pt到每个中心点的距离,并返回距离最近的中心点索引和距离。categories列表: 用于存储每个类别对应的点集,初始时每个类别为空列表。- 将每个点归入到离它最近的中心点类别下: 遍历所有点
pt,使用classify()函数找到离它最近的中心点索引index,并将pt添加到categories列表中对应索引的类别中。 - 计算每个类别到其中心点的平均距离: 遍历每个类别,计算所有该类别点到其中心点的距离,并求平均值。
代码应用:
上述代码展示了如何使用 K 均值聚类算法对数据进行分类。首先,通过遍历每个点,计算其到每个中心点的距离,并将其归类到距离最近的中心点类别下。然后,计算每个类别到其中心点的平均距离,可以用于评估聚类结果的好坏。
总结:
本文介绍了使用 Python 代码计算给定点到多个中心点中距离最近的一个,并将其归类到对应的中心点类别下。代码示例展示了如何使用 K 均值聚类算法对数据进行分类,并计算每个类别到其中心点的平均距离。希望本文能够帮助您更好地理解 K 均值聚类算法的实现。
原文地址: https://www.cveoy.top/t/topic/jpX1 著作权归作者所有。请勿转载和采集!