Title: 客户流失预测及营销(源码) · Issue #8 · aialgorithm/Blog · GitHub
Open Graph Title: 客户流失预测及营销(源码) · Issue #8 · aialgorithm/Blog
X Title: 客户流失预测及营销(源码) · Issue #8 · aialgorithm/Blog
Description: #1 赛题 2 赛题分析 2.1 赛题背景 随着科技发展,银行陆续打造了线上线下、丰富多样的客户触点,来满足客户日常业务办理、渠道交易等客户需求。面对着大量的客户,银行需要更全面、准确地洞察客户需求。在实际业务开展过程中,需要发掘客户流失情况,对客户的资金变动情况预判;提前/及时针对客户进行营销,减少银行资金流失。本次竞赛提供实际业务场景中的客户行为和资产信息为建模对象,一方面希望能借此展现各参赛选手的数据挖掘实战能力,另一方面需要选手在复赛中结合建模的结果提出相应的营...
Open Graph Description: #1 赛题 2 赛题分析 2.1 赛题背景 随着科技发展,银行陆续打造了线上线下、丰富多样的客户触点,来满足客户日常业务办理、渠道交易等客户需求。面对着大量的客户,银行需要更全面、准确地洞察客户需求。在实际业务开展过程中,需要发掘客户流失情况,对客户的资金变动情况预判;提前/及时针对客户进行营销,减少银行资金流失。本次竞赛提供实际业务场景中的客户行为和资产信息为建模对象,一方面希望能借此展现...
X Description: #1 赛题 2 赛题分析 2.1 赛题背景 随着科技发展,银行陆续打造了线上线下、丰富多样的客户触点,来满足客户日常业务办理、渠道交易等客户需求。面对着大量的客户,银行需要更全面、准确地洞察客户需求。在实际业务开展过程中,需要发掘客户流失情况,对客户的资金变动情况预判;提前/及时针对客户进行营销,减少银行资金流失。本次竞赛提供实际业务场景中的客户行为和资产信息为建模对象,一方面希望能借此展现...
Opengraph URL: https://github.com/aialgorithm/Blog/issues/8
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"客户流失预测及营销(源码)","articleBody":"#1 赛题\r\n\r\n\r\n# 2 赛题分析\r\n## 2.1 赛题背景\r\n随着科技发展,银行陆续打造了线上线下、丰富多样的客户触点,来满足客户日常业务办理、渠道交易等客户需求。面对着大量的客户,银行需要更全面、准确地洞察客户需求。在实际业务开展过程中,需要发掘客户流失情况,对客户的资金变动情况预判;提前/及时针对客户进行营销,减少银行资金流失。本次竞赛提供实际业务场景中的客户行为和资产信息为建模对象,一方面希望能借此展现各参赛选手的数据挖掘实战能力,另一方面需要选手在复赛中结合建模的结果提出相应的营销解决方案,充分体现数据分析的价值。\r\n\r\n## 2.2 赛题分析与理解\r\n通过对赛题的分析与理解,本次比赛的任务是:从用户各个季度的基本资料、资金情况及行为信息,建立客户的流失预警模型,挖掘客户流失的原因,辅助业务加强客户维护及营销,提高客户的粘度,减少客户/资金的流失。\r\n本次建模的目标是根据用户前两个季度的历史数据,预测下一季度用户的标签(-1/0/1,标签存在递进关系)。问题转换成三分类问题,从1)aum_m(Y)、2)behavior_m(Y)、3)big_event_Q(Z)、4)cunkuan_m(Y)、5)cust_info_q(Z)表中构建特征,评估指标为Kappa,其本质的考量是分类一致性(准确)且无偏倚。\r\n\r\n# 3 建模方案\r\n\r\n## 3.2 特征工程\r\n### 3.2.1 用户信息特征\r\n数据源表:cust_info_q(第 Z 季度的客户信息)\r\n数值型如家庭年收入,年龄等直接入模。发现不同标签下年龄分布差异较大。\r\n\r\n类别型如性别、客户等级、职业等转换成类别变量入模。发现普通用户是最大流失客群。\r\n\r\n\r\n此外,用户信息的完善程度可能会影响该用户的忠实程度,以此加工基本信息的缺失率特征。\r\n\r\n### 3.2.2 资金情况特征\r\n\r\n数据源表:aum_m(第 Y 月的月末时点资产数据)、 behavior_m(第Y月的行为数据)、 cunkuan_m(第 Y 月的存款数据): \r\n\r\n主要加工存款、aum、动账金额的方差、平均值、增长率、最大值及最小值,并结合字段含义进行组合衍生。\r\n\r\n其中,对各月存款C1,产品数目C2在不同标签下分布分析发现,高资金流水风险的用户整体存款额度/产品数目较低,且随时间有下降趋势。\r\n\r\n\r\n\r\n### 3.2.3 时间特征\r\n\r\n数据源表:behavior_m(第Y月的行为数据)、big_event_Q(第 Z 季度的客户重大历史数据)\r\n\r\nbig_event_Q(Z)主要为第一次转账、存款等日期,加工了距今及距离开户的日期间隔可以体现客户的活跃度;\r\n\r\n\r\nbehavior_m(Y) 季度末有最近交易日期,通过加工出交易的具体时间及周几等时间特征可以反馈用户的一些行为习惯。发现不通标签用户交易的时间分布差异较大,对具体小时做了(\u003c10点、\u003e12点、\u003e14点)的离散化处理。\r\n\r\n\r\n\r\n\r\n### 3.2.4 序列预测特征\r\n\r\n本模块特征由于计算资源不足导致拟合效果差的原因,最终并无入模,但该方法考虑时间序列连续性预测未来资金情况,可作为本方案的一个小亮点。\r\n\r\n考虑项目的标签定义与资金波动情况关系较大,本模块序列预测特征的思路是依据前几个月(如Q3季度作为训练样本)的历史资金数据用(LSTM或LGB)回归预测Q4季度资金情况,并将预测数值结果作为特征入模。\r\n\r\n### 3.2.5 Featuretools组合特征\r\n\r\nFeaturetools是一个自动特征衍生的开源库,主要使用转换及聚合的方法自动特征衍生,以补充人为特征衍生的不足。\r\n\r\n我们首先通过lightgbm训练并选择的是split及gain的重要性top150的人工衍生特征,再通过Featuretools 两两做乘法/除法做出特征交互特征。考虑Featuretools组合的变量噪声较多,最终由模型选择Top300的Featuretools重要特征入模。\r\n\r\n## 3.3 特征选择\r\n特征选择的主要方法有:\r\n1)筛选法: 皮尔森相关系数(衡量变量间的线性相关性)、缺失率及单值率等情况;\r\n2)包装化: 特征集多次(前向/后向)迭代寻找最优子集。\r\n3)嵌入法: 通过如LGB模型选择特征重要性较高的特征。\r\n考虑计算资源有限,本方案采用的是:筛选法初筛后,进一步通过嵌入法由模型选择重要特征。这种方法较为高效,因为模型学习的过程和特征选择的过程是同时进行的。\r\n\r\n\r\n## 3.4 模型训练\r\nLightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据且支持类别型变量等优点。\r\n基于衍生出的特征,包含原始特征及类别特征共有 1211 维特征,以此训练Lightgbm,借助Bayes方法调参,单模型验证集Kappa值为 0.49 左右(线上测试集Kappa 0.475左右)。\r\n\r\n## 3.5 模型融合\r\n受bagging 思想的启发,我们通过对训练集5次的随机抽样(抽样比例70%),随机列抽样,并用Bayes优化选择子模型,最后得到5个lgb子模型进行bagging。这个方法在参数和特征上都引入了多样性(差异性),使得最后bagging的泛化效果有较大的提升,OOT测试集Kappa 0.483左右。\r\n\r\n\r\n\r\n## 3.6 建模过程中的发现与创新点\r\n\r\n1)总结了用户画像:特征加工过程中我们总结了高流失用户的用户画像:\r\n\r\n\r\n\r\n\r\n2)特征设计了序列预测特征:考虑了时间序列连续性,预测未来资金情况,并将预测数值结果作为特征。\r\n\r\n3)模型易部署:最终模型使用5个Lightgbm做均值融合,模型结构不复杂易部署,并取得线上Kappa 0.483的效果。\r\n\r\n\r\n# 4 营销方案\r\n\r\n## 4.1 客户流失综合原因分析\r\n\r\n现在银行产品同众化现象普遍存在,客户选择产品和服务的途径越来越多,客户对产品的忠诚度越来越低,而获得新客的成本远高于维护老客户成本。所以客户流失已经成为银行业最关注的问题之一。客户流失原因可以分为两类:\r\n\r\n第一类非主观意愿缺失。如破产、工资卡变化等。\r\n\r\n第二类是需求未满足。原因比较复杂,如产品营销活动少、产品利率较低、业务体验差、客户自身的需求变化、竞争对手的策略、国家政策等。\r\n\r\n\r\n\r\n结合模型对客群流失的特征(Shap值)分析,对客户流失的贡献度较高的特征为:存款金额少、存款产品少、AUM低、年龄较小等。综合原因可能为产品缺乏竞争力、活动较少、未重视年轻客群等。我们建议可以采取相关的措施,如:加强客户关系维系、差异营销、扩大销售、更多营销活动等。\r\n\r\n(注:本节流失原因分析从建模技术层面分析,这无疑是比较片面的。具体原因可以从考虑到宏观政策变化、营销活动等因素分析其流失趋势情况,并通过流失客户资金流向情况分析加于佐证。)\r\n\r\n## 4.2 营销策略\r\n\r\n### 4.2.1 客群划分\r\n\r\n商业银行客户数量庞大,而银行自身资源也是比较有限的,考虑成本效益原则,我们需要重点关注的是具有流失倾向且高质量客户,由此我们首先做两步的客群划分:\r\n\r\n第一步:借助流失预警模型我们可以将客户的流失倾向分为3类:高流失风险客群(-1),低流失风险客群(0),稳定客群(1)。\r\n\r\n \r\n\r\n\r\n第二步:按客户质量通常可大致分为以下三类:低价值客户、有价值客户及高附加值客户。我们可以综合行内客户等级、Aum值、最近一次消费间隔、消费频率、消费金额、金融产品数目、金融产品金额以及未来价值(通过该序列回归预测模型预测未来AUM值)这几个维度指标去考量,具体划分客群质量我们有两种方式:\r\n\r\n方法一:分别对以各维度指标客户排名分布情况(如:各指标的80分位点作为参考阈值),划分价值客户。各维度指标具体划分的阈值可参考业务建议。\r\n\r\n\r\n\r\n\r\n方法二:以各维度指标作为特征,归一化后采用聚类方式建模划分K个客群,并以各客群的中心值表现,定义划分出客群的价值类别。\r\n\r\n\r\n### 4.2.2 整体客户管理策略\r\n\r\n综合流失风险及质量属性划分客群后,对不同类型客户制定不同的营销策略:\r\n\r\n\r\n\r\n### 4.2.3 重点客户管理策略\r\n\r\n在此细分结构下我们重点关注高价值/附加值客户的流失风险客户,并根据其需求为其量身定制相应的营销方式:\r\n\r\n1)借助用户画像了解其特点,提供个性化服务及优惠政策。如:提醒参加营销活动、提高贷款授信额度等;\r\n\r\n2)通过建立营销推荐模型,交叉销售更多优质的产品;\r\n\r\n3)建立专属客户经理机制,以客户响应良好的营销途径(如电话营销)及用户问卷调查。\r\n\r\n\r\n\r\n\r\n# 5 思考与展望\r\n\r\n## 5.1 关注客户生命周期并智能营销\r\n\r\n需要关注的是,当客户处在不同的生命周期阶段时,需要满足不同的需求。结合客户生命周期管理促进我们纵向深入的了解每一类型客户并做量化管理,通过针对处于不同客户生命周期阶段的客户的区别对待,实现企业资源的最优配置。\r\n\r\n\r\n\r\n## 5.2 其他营销要点\r\n\r\n### 5.2.1 营销时间点等偏好\r\n\r\n挖掘客户的手机app登录、动账、购买理财产品等行为的活跃时间段,参考每个客户的活跃时间段,针对性地发送营销短信。\r\n\r\n### 5.2.2 洞察客户需求\r\n\r\n获取更多类型(参与活动、理财习惯)数据,评估客户的兴趣偏好,推荐适合客户的营销产品。\r\n\r\n---\r\n\r\n项目路径:[流失客户预测](https://github.com/aialgorithm/Blog/tree/master/projects/)\r\n欢迎star及fork 算法进阶github博客~","author":{"url":"https://github.com/aialgorithm","@type":"Person","name":"aialgorithm"},"datePublished":"2021-01-19T09:19:04.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/8/Blog/issues/8"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:b9505b24-ba00-4587-b880-a18b21c5d044 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9EEC:356387:2B072E:379FC9:696B03C9 |
| html-safe-nonce | 4af64ed53b04b0e92c5d43dff52b77423ca2faa39019659f9c83a9ff817f4de4 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RUVDOjM1NjM4NzoyQjA3MkU6Mzc5RkM5OjY5NkIwM0M5IiwidmlzaXRvcl9pZCI6IjY5NzAzOTgyMzQyODI0OTI4NzMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | e8d8155801fd9a32809ab9acf093b6e3a1c662f51bd6bab71fecf8421f2163fa |
| hovercard-subject-tag | issue:788849211 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/aialgorithm/Blog/8/issue_layout |
| twitter:image | https://opengraph.githubassets.com/1e1f9d082716317ebf5693ce314db1532ef23a0a47a3bb55f7ec5061f3e5bb78/aialgorithm/Blog/issues/8 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/1e1f9d082716317ebf5693ce314db1532ef23a0a47a3bb55f7ec5061f3e5bb78/aialgorithm/Blog/issues/8 |
| og:image:alt | #1 赛题 2 赛题分析 2.1 赛题背景 随着科技发展,银行陆续打造了线上线下、丰富多样的客户触点,来满足客户日常业务办理、渠道交易等客户需求。面对着大量的客户,银行需要更全面、准确地洞察客户需求。在实际业务开展过程中,需要发掘客户流失情况,对客户的资金变动情况预判;提前/及时针对客户进行营销,减少银行资金流失。本次竞赛提供实际业务场景中的客户行为和资产信息为建模对象,一方面希望能借此展现... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | aialgorithm |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/aialgorithm/Blog git https://github.com/aialgorithm/Blog.git |
| octolytics-dimension-user_id | 33707637 |
| octolytics-dimension-user_login | aialgorithm |
| octolytics-dimension-repository_id | 147093233 |
| octolytics-dimension-repository_nwo | aialgorithm/Blog |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 147093233 |
| octolytics-dimension-repository_network_root_nwo | aialgorithm/Blog |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width