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

基于CSV文件的PCA分析:按预计算聚类着色并标记质心

实现PCA降维+聚类可视化(带质心标记)

完全可以实现这个需求,下面是基于Python的实操方案,用scikit-learn做PCA,matplotlib/seaborn完成绘图:

1. 依赖库安装(未安装时执行)

pip install pandas scikit-learn matplotlib seaborn

2. 完整代码示例

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

# 加载数据,分离特征与聚类标签
df = pd.read_csv("your_data.csv")
# 排除cluster_id列,其余作为特征列(若有其他非特征列如ID,需一并排除)
feature_cols = [col for col in df.columns if col != "cluster_id"]
X = df[feature_cols]
y = df["cluster_id"]

# 特征标准化(PCA对尺度敏感,必须执行)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# PCA降维到2维(适配可视化需求)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# 转换为DataFrame方便后续绘图
pca_df = pd.DataFrame(X_pca, columns=["PC1", "PC2"])
pca_df["cluster_id"] = y

# 计算聚类质心并转换到PC空间
# 先算原始特征空间的质心均值
cluster_centers = df.groupby("cluster_id")[feature_cols].mean()
# 用同一标准化器和PCA模型转换质心,保证坐标匹配
centers_scaled = scaler.transform(cluster_centers)
centers_pca = pca.transform(centers_scaled)
centers_df = pd.DataFrame(centers_pca, columns=["PC1", "PC2"])
centers_df["cluster_id"] = cluster_centers.index

# 可视化绘图
plt.figure(figsize=(10, 8))
# 绘制聚类数据点
sns.scatterplot(data=pca_df, x="PC1", y="PC2", hue="cluster_id", palette="tab10", alpha=0.6, s=60)
# 绘制质心,用特殊标记区分
sns.scatterplot(data=centers_df, x="PC1", y="PC2", hue="cluster_id", palette="tab10", marker="X", s=200, edgecolor="black", legend=False)

# 添加标注信息
plt.title("PCA Visualization with Cluster Centroids")
plt.xlabel(f"PC1 ({pca.explained_variance_ratio_[0]:.1%} variance)")
plt.ylabel(f"PC2 ({pca.explained_variance_ratio_[1]:.1%} variance)")
plt.legend(title="Cluster ID")
plt.grid(True, alpha=0.3)
plt.show()

关键细节说明

  • 特征标准化:PCA结果受特征尺度影响极大,数值范围大的特征会主导主成分,因此必须用StandardScaler将所有特征缩放到均值0、方差1的范围。
  • 质心转换:质心是原始特征空间的均值,必须使用同一标准化器和PCA模型转换到PC空间,否则坐标会不匹配。
  • 降维维度调整:示例降到2维是为了可视化,若需保留更多方差,可修改n_components(比如设为0.95保留95%方差,或设为3做3D可视化)。
  • 绘图自定义:可根据需求调整调色板palette、点大小s、质心标记marker等参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:03:28