当前位置: 首页 > news >正文

03-Kmeans-顾客数据聚类分析

1. 需求分析

会员客户聚类分析。

2. 数据说明

这是 Kaggle 经典客户分群教学数据集,共 200 条商场会员脱敏样本,专门用于无监督聚类(K-Means 为主)入门练习,为模拟商业数据,无真实用户隐私。

商场客户分群数据集来源:Mall Customer Segmentation Data

字段名含义数据类型
CustomerID客户唯一编号整数,主键
Gender性别(Male/Female)分类变量
Age客户年龄数值
Annual Income (k$)年收入(单位:千美元)数值
Spending Score (1-100)商场消费打分,1 最低、100 最高,由消费金额 / 频次综合计算核心聚类数值

数据特征

  1. 无缺失值、无异常脏数据,清洗成本极低;
  2. 包含人口属性(性别、年龄)消费经济属性(收入、消费分)两类特征;
  3. 核心分析维度:年收入 & 消费得分,二者常用来划分典型客群。

3. 建模

import pandas as pd from matplotlib import pyplot as plt from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score, calinski_harabasz_score

3.1 加载数据

# 1. 获取数据 data = pd.read_csv('./data/customers.csv') data.head()

3.2 数据预处理

# 2. 数据预处理 # 2.1 提取特征 x = data.iloc[:,3:5] x.head()

3.3 特征工程(无)

3.4 模型训练

确定k值;训练

# 4. 模型训练 # 4.1 确定k值 # 定义sse_list, sc_list, 记录不同k值的评估效果 sse_list = [] sc_list = [] for k in range(2,20): estimator = KMeans(n_clusters=k, max_iter=100, random_state=1234) estimator.fit(x) y_pre = estimator.predict(x) sse_list.append(estimator.inertia_) sc_list.append(silhouette_score(x, y_pre)) # 画图(sse肘部图、轮廓系数sc图) # 两张图放在1个画布中 plt.figure(figsize=(6,3)) plt.subplot(1,2,1) plt.plot(range(2,20), sse_list, marker='o', label='SSE') plt.grid() plt.title('SSE') plt.subplot(1,2,2) plt.plot(range(2,20), sc_list, marker='o', label='SC') plt.grid() plt.title('SC') plt.tight_layout() plt.show()

# 4.2 模型训练 # 根据sse肘部图和sc图,确定k值=5 estimator = KMeans(n_clusters=5, max_iter=100, random_state=1234) estimator.fit(x) y_pre = estimator.predict(x)

3.5 模型评估

# 5. 模型评估 print('sc指数:', silhouette_score(x, y_pre)) # [-1,1], 越接近1聚类效果越好;>0.5聚类良好;负数为大量样本错分,聚类失效 print('CH指数:', calinski_harabasz_score(x, y_pre)) # [0,inf], 越接近inf聚类效果越好 print('SSE的负数:', estimator.score(x)) # 越接近0聚类效果越好
# 画图 plt.figure(figsize=(6,5)) plt.scatter(x.iloc[:,0], x.iloc[:,1], c=y_pre) plt.xlabel(x.columns.tolist()[0]) plt.ylabel(x.columns.tolist()[1]) plt.scatter(estimator.cluster_centers_[:,0], estimator.cluster_centers_[:,1], marker='*', s=200, c='r') plt.title('K-Means') plt.show()

http://www.jsqmd.com/news/1256545/

相关文章:

  • Linux调试方法
  • 【MQTT】paho.mqtt.c 库的“介绍、下载、交叉编译” 详解,以及编写MQTT客户端例子源码
  • 抖音下载神器:如何一键批量下载无水印视频的完整指南
  • springboot民宿预约管理系统---附源码42075
  • 2026 年海晏专业的消防专用防冻液公司联系方式,零下30℃天里,消防官兵靠啥守住供水生命线?这玩意儿比普通防冻液靠谱10倍 - 企业推荐官【认证官方】
  • 【Rust中级教程】2.9. API设计原则之显然性(obvious) :文档与类型系统、语义化类型、使用“零大小”类型
  • 鸿蒙 PC Markdown 编辑器系统剪贴板权限与中文回归
  • 零基础5分钟搭建:如何用daily_stock_analysis实现A股智能分析
  • 百奥几何:AI for Science 浪潮下的中国先锋,如何以专业模型重塑生物制药未来?
  • SCMP供应链管理专家考试地点 - 众智商学院职业教育
  • Formality:比较点的验证状态和整体验证状态
  • HarmonyOS ArkTS 实战:实现一个校园表白墙与树洞应用
  • 卡方分布简介
  • 2026 武汉管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • AssetRipper终极指南:轻松提取Unity游戏资源的免费开源神器
  • 界面组件DevExpress中文教程 - 如何使用UI本地化客户端工具本地化应用
  • 2026德系车灯升级服务商甄选指南:正规合规口碑机构推荐+保定本地服务适配要点+合作避坑全FAQ详解 - 保定大拇指车灯
  • 2026深圳线下非医疗心理咨询机构综合实力权威梳理避坑指南(第三方中立测评)+FAQ - 互联网科技品牌测评
  • Pid pad xng《琵琶行》全文字母标调拼音实测案例
  • C++类细节梳理之派生和继承
  • 【Prompt Engineering核心心法】:3类结构化提示模板+4维质量评分卡,立即提升输出稳定性47%
  • 两重”建设项目清单落地,嘉利恒兴升降控制台助力各类指挥调度中心升级
  • JPMorgan、摩根士丹利案例可查,美国金融求职的专业内推如何运作? - Matthewmx
  • 【Rust中级教程】2.8. API设计原则之灵活性(flexible) Pt.4:显式析构函数的问题及3种解决方案
  • 【JAVA毕设源码分享】基于springboot房屋交易系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 深度解析:开源股票智能分析系统的架构设计与实现
  • 2026.7.23:安装Windows下的mingw工具
  • 若依项目Linux生产环境治理:文件系统权限配置实战
  • 界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)
  • 2026 宁波专业家电维修商家推荐 |卓越家电安装维修:安装、维修、回收、出租一站式靠谱服务商 - 星际AI