← 返回首页

项目04:客户聚类分析

分析客户行为,进行客户细分

📊 数据集预览

使用 user_logs 数据集,包含用户登录、购买、消费等信息。

user_logs.csv(前5行)

🎯 学习目标

  • 理解用户数据结构
  • 计算用户统计指标
  • 使用描述性统计
  • 进行分类筛选
  • 分析用户群体特征

📚 知识点讲解

什么是客户聚类分析?

客户聚类分析是根据客户的行为特征和属性,将客户划分为不同群体的过程。通过聚类分析,我们可以:

  • 识别高价值客户群体
  • 理解不同客户群体的特征
  • 制定个性化营销策略
  • 优化客户服务
💡 小贴士:常见的客户细分维度包括:消费金额、购买频率、活跃度、人口统计学特征等

一、描述性统计分析

1.1 基础统计指标

使用 describe() 快速了解数据的统计特征。

# 查看数据描述统计
print(df.describe())

# 单独查看某列
print(df['total_spent'].describe())

1.2 计算汇总统计

手动计算关键统计指标。

# 计算消费统计
total_spent = df['total_spent'].sum()
avg_spent = df['total_spent'].mean()
max_spent = df['total_spent'].max()
min_spent = df['total_spent'].min()

print(f'总消费: {total_spent}')
print(f'平均消费: {avg_spent:.2f}')

二、分组统计分析

2.1 按类别分组

按性别、年龄等维度进行分组分析。

# 按性别分组统计
gender_group = df.groupby('gender').agg({
    'total_spent': ['mean', 'sum'],
    'purchases': ['mean', 'sum'],
    'logins': 'mean'
})

print('按性别分组统计:')
print(gender_group)

2.2 自定义分组

根据业务规则创建自定义分组。

# 根据消费金额分组
def classify_spender(row):
    if row['total_spent'] > 3000:
        return '高消费'
    elif row['total_spent'] > 1000:
        return '中等消费'
    else:
        return '低消费'

df['spender_type'] = df.apply(classify_spender, axis=1)
spender_stats = df.groupby('spender_type')['user_id'].count()

print(spender_stats)

三、相关性分析

3.1 计算相关系数

分析变量之间的线性关系。

# 计算相关性
correlation = df['logins'].corr(df['purchases'])

print(f'登录次数与购买次数的相关性: {correlation:.3f}')
⚠️ 注意:相关性不等于因果关系!高相关性只是说明两个变量一起变化,但不一定存在因果关系。

3.2 筛选高价值用户

根据多个条件筛选目标用户。

# 找出高消费且活跃的用户
avg_spent = df['total_spent'].mean()
avg_logins = df['logins'].mean()

high_value = df[(df['total_spent'] > avg_spent) & 
              (df['logins'] > avg_logins)]

print(f'高价值用户数量: {len(high_value)}')
print(high_value[['user_id', 'total_spent', 'logins']])

💻 代码实战

在下方代码编辑器中编写并运行完整的客户聚类分析代码:

04-cluster/main.py
点击"运行代码"按钮执行

🚀 统一代码运行框

在下方编写并运行完整的客户聚类分析代码:

04-cluster-analysis/main.py
点击"运行代码"按钮执行
📋 总代码运行框 - 客户聚类分析完整示例
点击"运行代码"查看输出...