You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取K-means聚类中各质心值?基于MSE数据实现两聚类分析

基于MSE值的K-means聚类实现方案

没问题,我来帮你一步步完成这个K-means聚类任务!我们用Python的pandas处理CSV数据,sklearn的KMeans模块来实现聚类,完全能满足你获取聚类归属、聚类均值和质心的需求。

步骤1:导入所需库

首先我们需要导入处理数据和聚类的工具库:

import pandas as pd
from sklearn.cluster import KMeans

步骤2:读取CSV数据

你的CSV数据是用空格分隔的,所以读取的时候要指定分隔符:

# 读取CSV文件,注意分隔符是空格,替换成你实际的文件路径
df = pd.read_csv('your_data.csv', sep='\s+')

步骤3:准备聚类特征

K-means要求输入是二维数组格式,所以我们只提取mse列并转换格式:

# 提取mse列,转换为KMeans需要的二维数组格式
X = df[['mse']].values

步骤4:执行K-means聚类(聚类数设为2)

初始化KMeans模型并拟合数据,设置随机种子保证结果可复现:

# 设置聚类数为2,random_state保证每次运行结果一致
kmeans = KMeans(n_clusters=2, random_state=42)
# 拟合数据完成聚类
kmeans.fit(X)

步骤5:获取每个数据点的聚类归属

把聚类标签添加到原数据框中,就能直观看到每个日期对应的聚类分组:

# 添加聚类标签列到原DataFrame
df['cluster_label'] = kmeans.labels_
# 查看前几行结果
print(df.head())

输出示例:

date    mse  cluster_label
0  2018-02-11  14.34              0
1  2018-02-12   7.24              0
2  2018-02-13 244.50              1
3  2018-02-14   3.50              0
4  2018-02-16  12.67              0

步骤6:计算每个聚类的MSE均值

用groupby对聚类标签分组,快速计算每个簇的MSE平均值:

cluster_means = df.groupby('cluster_label')['mse'].mean()
print("每个聚类的MSE均值:")
print(cluster_means)

步骤7:获取聚类质心值

KMeans模型的cluster_centers_属性直接返回每个聚类的质心,因为我们只基于MSE一个特征,所以质心值就是对应簇的MSE均值:

centroids = kmeans.cluster_centers_
print("每个聚类的质心值:")
print(centroids)

输出示例(二维数组格式,每个元素对应一个聚类的质心):

[[18.76272728]
 [123.46      ]]

补充说明

  • 单特征聚类场景下,聚类质心和聚类的MSE均值完全一致;如果是多特征聚类,质心会是每个特征均值组成的向量。
  • 如果你不需要固定聚类结果,可以去掉random_state=42参数,每次运行可能得到不同的标签编号(但聚类分组逻辑一致)。

内容的提问来源于stack exchange,提问作者Souvik Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:00:36