使用Python进行C-均值聚类分析

本文将提供一个Python代码示例,用于读取Excel数据,并应用C-均值聚类算法对男生女生样本数据中的身高、体重、50米成绩、肺活量四个特征进行聚类分析。首先,使用TSNE将四维特征降维至二维,然后进行聚类分析,并绘制聚类结果分布图以及计算聚类准则函数值。

代码示例:

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt

# 读取Excel数据
data = pd.read_excel('D:\研究生作业\模式识别作业\2023年模式识别与机器学习数据集汇总1\XLS')

# 提取四个特征
features = data[['身高', '体重', '50米成绩', '肺活量']]

# 使用TSNE将特征降为2维
tsne = TSNE(n_components=2)
features_tsne = tsne.fit_transform(features)

# 定义聚类数范围
num_clusters = range(2, 21)

# 存储聚类准则函数值
inertia = []

# 执行聚类
for n in num_clusters:
    kmeans = KMeans(n_clusters=n)
    kmeans.fit(features)
    inertia.append(kmeans.inertia_)

# 绘制聚类准则函数值表格
table = pd.DataFrame({'聚类数': num_clusters, '聚类准则函数值J': inertia})
print(table)

# 绘制聚类结果分布图(聚类数为2、3、4、5)
for n in [2, 3, 4, 5]:
    kmeans = KMeans(n_clusters=n)
    kmeans.fit(features)
    labels = kmeans.labels_

    plt.scatter(features_tsne[:, 0], features_tsne[:, 1], c=labels)
    plt.title(f'聚类数={n}')
    plt.show()

    # 输出聚类中心
    centers = kmeans.cluster_centers_
    print(f'聚类数为{n}的聚类中心:')
    print(centers)

注意:

  • 需要安装以下库:pandas、scikit-learn、matplotlib。
  • 请将代码中的Excel文件路径更改为实际路径。
  • 代码示例仅展示了聚类分析的基本步骤,具体的代码实现可能需要根据实际需求进行调整。

应用场景:

该代码示例可以应用于各种数据分析场景,例如:

  • 对学生数据进行分类,例如根据身高、体重、成绩等特征将学生分成不同的组别
  • 对客户数据进行细分,例如根据消费习惯、购买历史等特征将客户分成不同的群体
  • 对市场数据进行分析,例如根据用户画像、产品销量等特征将市场细分为不同的区域或类别

总结:

本文介绍了使用Python进行C-均值聚类分析的基本步骤,并提供了代码示例。通过该代码,我们可以对数据进行聚类分析,并根据聚类结果进行进一步的分析和决策。


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

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