Python中如何将KMeans聚类输出结果按label标签分组
KMeans聚类结果按标签分组实现方法
方法1:纯Python字典实现(无需额外依赖)
通过字典存储每个标签对应的坐标列表,遍历样本完成分类即可:
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=5) kmeans.fit(X) centroid = kmeans.cluster_centers_ labels = kmeans.labels_ # 初始化分组字典,key为标签,value为对应坐标列表 label_groups = {i: [] for i in range(5)} for coord, label in zip(X, labels): label_groups[label].append(coord) # 按0-4的顺序输出分组结果 for label in sorted(label_groups.keys()): print(f"===== 标签{label}的样本 =====") for coord in label_groups[label]: print(f"coordinate: {coord}")
方法2:Pandas实现(适合后续需进一步做数据处理的场景)
import pandas as pd # 拼接坐标和标签为DataFrame df = pd.DataFrame(X, columns=["特征1", "特征2"]) df["label"] = labels # 按标签分组 groups = df.groupby("label") # 输出所有分组 for label, group_df in groups: print(f"===== 标签{label}的样本 =====") print(group_df[["特征1", "特征2"]].values)
如果需要单独提取某个标签的样本,比如标签0的所有数据,直接调用groups.get_group(0)即可。
内容的提问来源于stack exchange,提问作者Zerone
相关产品推荐
相关产品推荐

