如何在Python K-means聚类中识别实例归属并实现悬停查看?
解决K-means聚类实例识别与交互可视化问题
一、查看每个客户的聚类分配及详细信息
聚类完成后,直接把聚类标签附加到原始数据集里就能查看每个客户的归属和变量取值,以你参考的客户细分项目为例,代码可以这么写:
- 先训练K-means模型并获取标签:
from sklearn.cluster import KMeans # 假设已预处理好特征数据X kmeans = KMeans(n_clusters=5, random_state=42) cluster_labels = kmeans.fit_predict(X) # 将标签合并到原始客户数据(假设原始数据为df) df['cluster'] = cluster_labels
- 后续查看数据的方式:
- 用
df.head()查看前几行完整信息,包含客户身份、所有变量及聚类标签 - 按聚类分组查看:
df.groupby('cluster').mean()可查看各聚类的变量均值;用df[df['cluster'] == 0]能筛选出指定类别的所有客户
- 用
二、实现悬停查看实例信息的交互可视化
WEKA的悬停功能可以用Plotly库实现,它支持交互式图表,鼠标悬停时显示实例详情,代码示例:
import plotly.express as px # 以Annual Income和Spending Score为维度做可视化 fig = px.scatter(df, x='Annual Income (k$)', y='Spending Score (1-100)', color='cluster', hover_data=['CustomerID', 'Age', 'Gender']) fig.update_layout(title='客户聚类分布(悬停查看详情)') fig.show()
运行后会生成交互式网页图表,鼠标悬停在任意数据点上,就能看到该客户的ID、年龄、性别等指定信息,和WEKA的效果一致。
内容的提问来源于stack exchange,提问作者FredNina
相关产品推荐
相关产品推荐

