Python实现C均值聚类算法:分析学生身高体重及运动能力本文将介绍如何使用Python语言,结合C-均值聚类算法对学生样本数据进行分析。我们将以身高、体重、50米成绩和肺活量四个特征为例,进行聚类分析,并演示如何将结果可视化。代码实现以下是使用Python编写的代码示例:pythonimport pandas as pdfrom sklearn.cluster import KMeansfrom sklearn.preprocessing import StandardScalerimport matplotlib.pyplot as plt# 读取Excel数据data = pd.read_excel(r'D:/研究生作业/模式识别作业/2023年模式识别与机器学习数据集汇总1.XLS')# 提取男生和女生的数据male_data = data[data['性别'] == '男']female_data = data[data['性别'] == '女']# 合并男生和女生的数据merged_data = pd.concat([male_data, female_data])# 提取身高、体重、50米成绩、肺活量四个特征features = ['身高', '体重', '50米成绩', '肺活量']# 标准化数据scaler = StandardScaler()scaled_data = scaler.fit_transform(merged_data[features])# 定义聚类数num_clusters = 2# 执行聚类并绘制二维分布图kmeans = KMeans(n_clusters=num_clusters)kmeans.fit(scaled_data)labels = kmeans.labels_centers = kmeans.cluster_centers_# 绘制二维分布图plt.scatter(scaled_data[:, 0], scaled_data[:, 1], c=labels)plt.scatter(centers[:, 0], centers[:, 1], marker='X', c='red')plt.title(f'聚类数为{num_clusters}的二维分布图')plt.xlabel('标准化身高')plt.ylabel('标准化体重')plt.show()# 输出聚类中心print(f'聚类数为{num_clusters}的聚类中心:')for center in centers: print(f'身高: {center[0]}, 体重: {center[1]}, 50米成绩: {center[2]}, 肺活量: {center[3]}')代码解读1. 导入库: 导入pandas用于数据处理,sklearn用于机器学习算法,matplotlib用于数据可视化。2. 读取数据: 使用pandas读取Excel文件中的数据。3. 数据预处理: 提取所需特征,并使用StandardScaler对数据进行标准化处理,消除不同特征量纲的影响。4. 模型训练: 设置聚类数为2,使用KMeans进行模型训练。5. 结果可视化: 使用matplotlib绘制二维散点图,展示聚类结果。6. 输出聚类中心: 打印每个聚类的中心点坐标,即每个特征的平均值。结果分析通过以上代码,我们可以将学生样本数据分成两组,并可视化其分布情况。聚类中心代表了每一组样本数据的典型特征,例如,其中一组的聚类中心可能拥有较高的身高和体重,而另一组则可能拥有较快的50米成绩和更大的肺活量。总结本文介绍了如何使用Python实现C均值聚类算法,并应用于学生样本数据的分析。通过调整聚类数和分析聚类中心,我们可以深入了解数据的内在结构和规律。

Python实现C均值聚类算法:分析学生身高体重及运动能力

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

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