UCI 机器学习库里的 Iranian Churn 数据集,2020 年 4 月 8 日捐入,3,150 行、14 列,全部为整数,没有缺失值。来源是伊朗一家电信公司 12 个月的数据库随机抽样,许可为 CC BY 4.0。
它的价值不在"又一个流失数据集",而在一份写得清楚的窗口设计:13 个特征是前 9 个月的聚合,流失标签是第 12 个月末的状态,中间 3 个月被明确称为规划间隔(planning gap)。这句话决定了它能不能用来做"提前预警"——特征与标签之间天然隔了三个月,模型学的是"前九个月的行为预测三个月后是否流失"。
14 列分别是什么
| 字段 | 类型 | 取值 / 含义 |
| Call Failure | 整数 | 0—36,呼叫失败次数 |
| Complains | 0/1 | 是否投诉 |
| Subscription Length | 整数 | 3—47,订阅月数 |
| Charge Amount | 序数 | 0 最低、9 最高(实际数据里还出现了
10) |
| Seconds of Use | 整数 | 0—17,090,通话总秒数 |
| Frequency of use | 整数 | 0—255,通话次数 |
| Frequency of SMS | 整数 | 0—522,短信条数 |
| Distinct Called Numbers | 整数 | 0—97,不同被叫号码数 |
| Age Group | 序数 | 1 最年轻,5 最年长 |
| Tariff Plan | 1/2 | 1 预付费,2 合约 |
| Status | 1/2 | 1 活跃,2 非活跃 |
| Age | 整数 | 15、25、30、45、55 |
| Customer Value | 连续 | 0—2,165.28,计算出的客户价值 |
| Churn | 0/1 | 1 流失,0 未流失(标签) |
Age Group 与 Age 是一一对应的:1 对应 15 岁、2 对应 25、3 对应 30、4 对应 45、5 对应 55。所以 14 列里有一列是冗余的,建模时删掉 Age 或 Age Group 任意一列即可。
实测分布:三类不平衡
标签整体流失率 15.7%(495 对 2,655)。这个比例意味着用准确率评估会失真:全部预测"不流失"就有 84.3% 的准确率,但一个流失客户都抓不到。
更细的分组不平衡也值得注意:投诉的只有 241 人(7.7%),合约套餐(Tariff Plan=
2)只有 245 人(7.8%),非活跃状态(Status=2)782 人(24.8%),Age Group=5 只有 170 人。
五个字段的分组流失率,比相关系数直观
我把每个类别算了一遍流失率(该组流失人数 ÷ 该组人数):
| 分组 | 流失率 |
| 投诉过 | 83.0% |
| 未投诉 | 10.1% |
非活跃(Status=
2) | 47.3% |
活跃(Status=
1) | 5.3% |
合约套餐(Tariff=
2) | 2.4% |
预付费(Tariff=
1) | 16.8% |
| 最低档资费(Charge=0) | 23.8% |
次低档(Charge=
1) | 7.0% |
这张表能直接看出三件事。投诉是最强的单变量信号——投诉过的客户流失率是没投诉的八倍;"非活跃"本身就是流失的前兆,接近一半;合约套餐的流失率只有 2.4%,说明长期绑定确实留人。
资费档位呈单调关系:档位越低流失率越高(0 档 23.8%、1 档 7.0%、2 档 5.8%),到 5 档以上几乎没有流失(样本也极少)。
还有两个反直觉的细节:最年轻组(Age=15,123 人)流失率为 0,最年长组(Age=55,170 人)只有 1.2%,中间三组才是 16%—20%;而 Charge Amount 出现了页面没写的 10 档(7 人),说明页面字段说明与数据文件存在一处小出入。
建模时的四个坑
第一,类别不平衡。要么用类权重,要么看 PR 曲线与 F1,不要报准确率。
第二,不要把 Status 当普通特征。它与流失高度重合(非活跃 47.3% 流失),很可能包含"第 12 个月状态"的信息,直接用会让模型在时间上作弊。要确认它的统计窗口与标签是否重叠。
第三,Customer Value 是"计算出来的值",数据集没给公式。它可能由其他列派生,直接喂进模型会引入共线性,建议先做相关性检查。
第四,样本来自单一运营商与单一市场(伊朗),不能外推到其他地区;也不能当成 2026 年的市场现状——它捐入于 2020 年。
适合怎么用
教学演示最合适:14 列、3,150 行、无缺失值,跑逻辑回归、随机森林、XGBoost 都够快,还能顺带讲不平衡、讲特征泄漏。
业务侧可以拿它练"投诉工单 → 挽留动作"的因果问题:投诉组流失率 83%,但投诉是原因还是结果?这份数据回答不了,只能提出假设,需要另做实验。
做回归任务也可以:Customer Value 是连续目标,页面把 Classification 与 Regression 都列为可用任务。
────────────────
数据集页面、CSV 直链、引用格式与许可原文都在下面,回复一下就能看到。
把经管之家装进你常用的 AI 智能体中 一键快捷安装经管之家 MCP/技能,让 AI 帮你查教程、找数据、读论坛帖子。 检索、阅读公开帖子不收费,安装可申请领取:3 通用积分+100 论坛币+3 元论坛资金 请点击查看安装教程与福利 → 说明: AI 算力按所用平台规则计算;附件按原帖条件获取;福利领取条件以活动页面为准。 |