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)
# 显示聚类结果的图像

代码解释:

  1. 数据读取:

    • dataSetKMN = pd.read_csv('testSet.txt', header=None): 使用 pandas 库的 read_csv() 函数从名为 'testSet.txt' 的文本文件中读取数据,header=None 表示文件没有表头。
  2. 数据预处理:

    • dataSetKMNSize = len(dataSetKMN): 获取数据集大小,即数据点个数。
    • dataSetKMN = np.mat(dataSetKMN): 将数据集转换为 NumPy 矩阵类型,方便后续计算。
  3. 数据可视化:

    • 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(): 显示绘制的图像。
  4. 聚类算法执行:

    • k = 4: 设置聚类中心个数为 4。
    • centroids, clusterAssment = kmeans(dataSetKMN, k): 调用 kmeans() 函数进行聚类,返回聚类中心 (centroids) 和聚类结果 (clusterAssment)。
  5. 结果可视化:

    • showCluster(dataSetKMN, k, centroids, clusterAssment): 使用 showCluster() 函数显示聚类结果的图像。

本代码示例展示了使用 Python 进行 K-Means 聚类分析的基本步骤,包括数据读取、预处理、聚类执行和结果可视化。您可以根据实际需求调整代码参数和功能,以便更好地应用 K-Means 算法进行数据分析和分类。

注意:

  • 请确保您的环境中已经安装了 pandas、NumPy 和 Matplotlib 库。
  • 代码中的 kmeans() 和 showCluster() 函数需要您自行定义或引用相关库。
  • 您可以根据实际数据集和需求调整代码参数和功能。
Python K-Means 聚类算法代码详解:从数据读取到结果可视化

原文地址: https://www.cveoy.top/t/topic/oAoX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录