Python K-Means 聚类算法代码详解:从数据读取到结果可视化
Python K-Means 聚类算法代码详解:从数据读取到结果可视化
本文将详细解释 Python K-Means 聚类算法的代码实现,涵盖数据读取、数据预处理、聚类算法执行和结果可视化等步骤,帮助您理解并应用 K-Means 算法进行数据分析和分类。
dataSetKMN = pd.read_csv('testSet.txt', header=None)
# 从文本文件中读取数据集,header=None表示没有表头
dataSetKMNSize = len(dataSetKMN)
# 获取数据集大小,即数据点个数
dataSetKMN = np.mat(dataSetKMN)
# 将数据集转换为矩阵类型,方便后续计算
print(dataSetKMN)
# 打印数据集
for i in range(dataSetKMNSize):
plt.plot(dataSetKMN[i, 0], dataSetKMN[i, 1], 'b*')
# 遍历数据集中的每个点,并将其绘制为蓝色星形
print('原始数据分布:')
# 打印输出提示信息
plt.savefig('ch12_kmn_orig.png', dpi=300, bbox_inches='tight')
# 将绘制的图像保存为文件,dpi表示图片分辨率,bbox_inches='tight'表示去掉边缘留白
plt.show()
# 显示绘制的图像
k = 4
# 设置聚类中心个数
centroids, clusterAssment = kmeans(dataSetKMN, k)
# 调用kmeans算法进行聚类,返回聚类中心和聚类结果
print('step 3:结果输出:')
# 打印输出提示信息
showCluster(dataSetKMN, k, centroids, clusterAssment)
# 显示聚类结果的图像
代码解释:
-
数据读取:
dataSetKMN = pd.read_csv('testSet.txt', header=None): 使用 pandas 库的read_csv()函数从名为 'testSet.txt' 的文本文件中读取数据,header=None表示文件没有表头。
-
数据预处理:
dataSetKMNSize = len(dataSetKMN): 获取数据集大小,即数据点个数。dataSetKMN = np.mat(dataSetKMN): 将数据集转换为 NumPy 矩阵类型,方便后续计算。
-
数据可视化:
plt.plot(dataSetKMN[i, 0], dataSetKMN[i, 1], 'b*'): 遍历数据集中的每个点,并将其绘制为蓝色星形。plt.savefig('ch12_kmn_orig.png', dpi=300, bbox_inches='tight'): 将绘制的图像保存为名为 'ch12_kmn_orig.png' 的文件,dpi表示图片分辨率,bbox_inches='tight'表示去掉边缘留白。plt.show(): 显示绘制的图像。
-
聚类算法执行:
k = 4: 设置聚类中心个数为 4。centroids, clusterAssment = kmeans(dataSetKMN, k): 调用kmeans()函数进行聚类,返回聚类中心 (centroids) 和聚类结果 (clusterAssment)。
-
结果可视化:
showCluster(dataSetKMN, k, centroids, clusterAssment): 使用showCluster()函数显示聚类结果的图像。
本代码示例展示了使用 Python 进行 K-Means 聚类分析的基本步骤,包括数据读取、预处理、聚类执行和结果可视化。您可以根据实际需求调整代码参数和功能,以便更好地应用 K-Means 算法进行数据分析和分类。
注意:
- 请确保您的环境中已经安装了 pandas、NumPy 和 Matplotlib 库。
- 代码中的
kmeans()和showCluster()函数需要您自行定义或引用相关库。 - 您可以根据实际数据集和需求调整代码参数和功能。
原文地址: https://www.cveoy.top/t/topic/oAoX 著作权归作者所有。请勿转载和采集!