Python实现C-均值聚类分析:基于身高、体重等特征的学生样本数据集本文将介绍如何使用Python对学生样本数据集进行C-均值聚类分析。数据集包含学生的身高、体重、50米成绩和肺活量四个特征。### 代码实现pythonimport pandas as pdfrom sklearn.cluster import KMeansfrom sklearn.preprocessing import StandardScalerimport matplotlib.pyplot as pltimport numpy as np# 读取Excel数据data = pd.read_excel(r'D:/研究生作业/模式识别作业/2023年模式识别与机器学习数据集汇总1/XLS')# 提取身高、体重、50米成绩、肺活量四个特征features = data[['身高(cm)', '体重(kg)', '50米成绩', '肺活量']]# 标准化数据scaler = StandardScaler()normalized_data = scaler.fit_transform(features)# 定义聚类数num_clusters = 6# 将特征值区间均分为10个子区间,分别取每个子区间的中值作为初始聚类中心uniform_centers = []for j in range(normalized_data.shape[1]): feature_min = min(normalized_data[:, j]) feature_max = max(normalized_data[:, j]) interval = (feature_max - feature_min) / num_clusters center = [feature_min + (i + 0.5) * interval for i in range(num_clusters)] uniform_centers.append(center)uniform_centers = np.array(uniform_centers).T# 执行聚类并绘制二维分布图kmeans = KMeans(n_clusters=num_clusters, init=uniform_centers, random_state=0)kmeans.fit(normalized_data)labels = kmeans.labels_centers = kmeans.cluster_centers_# 绘制二维分布图plt.scatter(normalized_data[:, 0], normalized_data[:, 1], c=labels)plt.scatter(centers[:, 0], centers[:, 1], marker='X', c='red')plt.title('将特征值区间均分为10个子区间的二维分布图')plt.xlabel('标准化身高')plt.ylabel('标准化体重')plt.show()# 将聚类中心还原回初始值original_centers = scaler.inverse_transform(centers)# 输出初始聚类中心print('初始聚类中心(还原后):')for i, center in enumerate(original_centers): print(f'聚类中心{i+1}:') for j, feature in enumerate(features.columns): print(f'{feature}: {center[j]}') print()### 代码解读1. 导入必要的库: 包括pandas用于数据处理,sklearn.cluster中的KMeans用于C-均值聚类,sklearn.preprocessing中的StandardScaler用于数据标准化,以及matplotlib.pyplot用于绘图。2. 读取数据: 使用pandas库读取Excel表格中的数据。3. 数据预处理: 提取身高、体重、50米成绩和肺活量四个特征,并使用StandardScaler对数据进行标准化。4. 初始化聚类中心: 将特征值区间均分为10个子区间,并取每个子区间的中值作为初始聚类中心。5. 执行C-均值聚类: 使用KMeans算法对标准化后的数据进行聚类,并指定聚类数和初始聚类中心。6. 可视化聚类结果: 绘制二维分布图,展示不同类别样本点的分布情况,并标记出聚类中心的位置。7. 输出聚类中心: 将聚类中心还原为原始数据的尺度,并打印每个聚类中心的具体值。### 总结本文介绍了如何使用Python对学生样本数据集进行C-均值聚类分析,并对代码进行了详细解读。通过分析身高、体重、50米成绩和肺活量四个特征,可以将学生群体划分为不同的类别,以便进行更精准的分析和预测。

Python实现C-均值聚类分析:基于身高、体重等特征的学生样本数据集

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

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