查看原文
其他

基于关联规则挖掘的银行理财分析与推荐

大话小数 中国金融电脑+ 2022-12-13

验“金”室


对于站在更高层级的领导者而言,如何通过数据化的工具、技术与方法,总结数据辅助决策与数据驱动运营两种系统化思维方法,对银行运营过程的各个环节进行科学分析、引导与应用,从而优化运营效果与效率,提高效益,降低成本,更好地实现数字化、自动化、智能化,则是更深层次的话题。



一、背景


银行的理财产品有多少?


我随手打开工商银行官网看一下,嗯,是这个样子的。


细数一下,一共17页,每页10个,总共有166个。


假如你是银行理财顾问,怎么给你的客户推荐?


好吧,我真觉得一个头两个大。


“根据客户的职业、年收入、风险偏好等做分析,然后再推荐。这不是挺简(che)单( dan)的吗?”


嗯,这个思路的确挺好,但是实现起来挺困难的。


  • 首先,如何证明自己能分析得准确?客户觉得有一部分产品看起来没差别,怎么衡量你分析出来的理财产品组合好呢?


  • 其次,你确定你能获取客户的准确信息吗?参见下列问答:


职业?

我是程序员。

年收入?

不好意思,这是秘密,从月薪4000的“码农”到年薪百万的算法工程师你自己猜吧。

风险偏好评估?

嗯,这些ABCD说的啥俺也不是很懂,其实我是随便勾选的。

请问想要什么样的产品?

我就是要收益高、风险低、流动性好的。



那能否从过去的理财产品销售情况去着手分析呢?一来数据容易入手,银行只要查一下过去一段时间的购买记录,就能知道各个产品的销量了嘛。二来思路简单,如果几个产品的组合经常一起被购买,不就说明这个理财组合比较受欢迎,可以作为推荐参考了嘛。


这个是可以的,并且通常我们会用到一种分析商品之间关联的方法,称为“关联分析”。


二、算法原理


所谓关联分析,就是通过寻找最能够解释数据变量之间关系的规则,找出大量多元数据集中有用的关联规则,是从大量数据中发现多种数据之间关系的一种方法。常见的关联算法有Apriori、FP-Growth、PrefixSpan、SPADE等。


先举个例子来说明几个简单的概念。

银行的27天定期储蓄为理财产品A,活期储蓄为理财产品B。假定银行有1000个客户,其中有600个人购买了理财产品A,有800个人购买了理财产品B,有400个人同时购买了理财产品A和B。


  • 支持度(support):简单理解就是支持程度,可以用购买理财产品的比例来表示。比如,同时配置理财产品A和B的比例是:


  • 置信度(confidence):简单理解为一个条件概率,即在购买了理财产品A的人当中,购买理财产品B的比例:


说到这里你已经不耐烦了吧?

“不要说了,你不就是想说,很多人既买了理财产品A又配置了理财产品B,说明这个组合很好,那么我只要跟买了A的人推荐B,跟买了B的推荐A,或者AB两个产品一起组合推荐给客户,不就完了嘛!”


我猜此时此刻你内心一定是这么想的!

虽然我很想说“完全正确”,然后下班回家洗洗睡了,不过我不能。


如果只看支持度与置信度,你的想法好像没什么问题。因为理财产品A与理财产品B确实构成“频繁关系”,买了理财产品A的客户中有67% 的人会配置理财产品B。


但是,如果忽略购买理财产品A的事实,购买理财产品B的客户比例高达800/1000=80%,80%>67%,这表明理财产品A与理财产品B其实是负相关的关系,购买了A的人反而不是那么愿意购买B了,所以它们是不适合组合到一起的。

那怎么办?


别急,我们来看看另外一个指标,我们称之为“提升度”。


  • 提升度(lift):简单理解,就是应用关联规则与不应用产生结果的比例。在前边的例子中,当提升度为1时,说明应用关联规则与不应用关联规则产生相同的结果;当提升度大于1时,说明应用关联规则比不应用关联规则能产生更好的结果;当提升度小于1时,说明该关联规则是负相关的。


当提升度为1,即P(B|A)/P(B)=1时,式子可变为P(AB) =P(A) P(B),有点概率论基础的同学一眼就能看出来,这不是AB独立的充分必要条件嘛。此时A与B是独立的,购买A不会对购买B产生任何影响。


因此,假如我们要使用关联规则挖掘理财产品之间的关系,更好地向客户推荐理财产品组合,那么我们需要综合考虑支持度、置信度与提升度3个指标,而不是只让支持度与置信度越大越好。


当然还有一点需要注意,在低频领域,关联规则往往会很稀疏,支持度可能只有几个百分点;而提升度,我们通常只关注大于1的规则。


三、实例演示


说了那么多,要不我们来试试?


嗯,我先伪造一份数据……


理财产品的名字我就懒得想了,直接借用××银行官网的理财产品名字吧……



好吧,我真的后悔了,这些名字真的太长了,复制过来真是个体力活…


数据做成近期一段时间的9998条购买记录。(啥?你问我为什么是9998?没什么,“久久久发”,图个吉利而已。)


每条购买记录即一个理财产品的销售记录,左边对应上客户的编号,一共设计了2240个客户,每个客户买了1~6个理财产品不等。



好了,我们稍微看下数据分布,看看这166个理财产品购买的人数是咋样的吧。



有些理财产品买的多,有些买的少,现在我们就根据这份数据挖掘,看看有什么有趣的规则吧。


各种参数设置如下:

  • 最小支持度阈值minS = 0.01

  • 最小置信度阈值minC = 0.05


这两个参数是根据数据分布来设定的,太大了挖掘不出规则,因为大部分理财产品都被你去掉了,太小了样本数量不足,不具有说服力;由于我的数据是伪造的,所以比较好调,实际生产中这两个参数设置没有那么容易,前期需要对数据进行足够的分析才能定下来。


对这份数据来说,这两个参数设置的阈值都不大,因此可以挖掘出的规则不会太少。


首先我们从2240位客户总计9998次购买产品的记录中,将满足支持度与置信度的规则,筛选出来。


然后按照提升度进行从大到小排序。


我们选出前十条,看下结果。



这个表格中,第一列是规则的编号,第二列第三列分别是两种理财产品,在购买item1理财产品的人当中,有instance人会购买item2,最后三列分别是支持度、置信度与提升度。


“然后我们向购买item1的人,推荐购买item2,好了,我懂了,你可以洗洗睡了。”


首先,汇总出每个item出现的次数,这样就能知道无论是作为前项还是后项,每个理财产品的受欢迎程度有多高。我们把最受欢迎的前n个item找出来。


  • 注意,这里的最受欢迎item是蕴含规则的,并不是单纯购买次数多的理财产品,而是在被组合(即一段时间内同一名客户购买几个理财产品)购买次数多的产品中购买次数多的产品,被组合购买的概率也更大。此时,我们得到top_n_items。


然后,我们取出规则最多的10个item。


  • 注意,这里不一定是出现instance最多的10个rules,因为有些rules虽然出现次数多,但是它的前项或者后项不都属于top_n_items。


噔噔噔噔……这样我们就可以画出这10个item的关系图啦。

在关系图里,我们将每个item出现的次数作为节点的大小,将每个理财产品的名称作为默认label展示到节点上,将理财产品的名称与item出现的次数作为鼠标指向时的提示信息。


通过关系图可以看出这10个理财产品之间的关联,标记点越大的item产生的关联规则越多;如果将鼠标移动到节点上,则可以看到每个节点产生的关联的总次数以及与该节点关联的其他节点;如果将鼠标移动到边上,则可以看到该边对应的源节点与目标节点,以及该边(所代表的规则)产生的次数。


当然,如果我高兴,我还可以在页面添加一些功能,比如下载、还原数据或查看源数据。

“好了,说了这么多,应该可以结束了吧,剩下的,就是把原始规则集以及图形直接交给业务部门,让理财产品设计师、理财顾问参考,为客户设计、推荐更好的理财产品组合,对吧?”


不好意思,还没完,应该说,这才刚刚开始……


四、对于业务的思考


对于理财顾问来说,并不是无脑地向购买item1理财产品的客户推销item2就完了,而是要分析这些产品组合背后涉及的收益、风险与流动性等各个方面的逻辑。


  • 比如,当你发现购买“30天保本理财”的客户有很多会同时购买“60天保本理财”,购买“60天保本理财”的客户有很多会同时购买“90天保本理财”这两条规律的时候,你是不是要挖掘一下背后的逻辑?


  •  “30天保本理财” “60天保本理财” “90天保本理财”一起购买,是不是在保证收益尽量高的前提下,可以每个月都有一笔理财到期可取,流动性好?


  • 是不是每过一个月还可以灵活选择到期的这笔钱之后应该如何使用,从而增加灵活性?这对你向客户推荐理财产品的时候是不是有一些启示?


对于理财产品设计师来说,通过这些规则,是不是比单纯的产品销量给你的信息更多?


很多时候,单一产品的销量信息用处并不大,举一个典型的例子,几乎所有的人都会配置活期储蓄,那么单一活期储蓄作为一种“理财产品”无疑是“最畅销”的,但是我们绝对不会向客户推荐活期储蓄——因为很多活期的钱留不住,我们更希望用各种有期限的理财产品将客户的钱“黏住”。这个时候,通过关联规则我们是否可以挖掘出更多受欢迎的组合,设计出更好的产品?


如果使用一下逆向思维,提升度小于1的规则,也未必是没有用的。如果近期推出的几个理财产品,两两之间的提升度小于1,恰恰说明这几个产品有“互斥”效应,彼此之间会影响销量,如果近期再推出理财产品,应该多考虑“互补”的,在收益率、灵活性、风险性上错开,才能吸引新的客户。


对于研究货币的分析师来说,这些规则一定程度上反映了客户购买理财产品组合的趋势,客户是越来越看重收益,还是越来越注重风险?这些喜好的改变,蕴含着货币数据M0、M1、M2的增减预期,储户对经济状况的预期,这对我们了解趋势变化,解读货币政策与数据,是否也有帮助?


对于站在更高层级的领导者而言,如何通过数据化的工具、技术与方法,总结数据辅助决策与数据驱动运营两种系统化思维方法,对银行运营过程的各个环节进行科学分析、引导与应用,从而优化运营效果与效率,提高效益,降低成本,更好地实现数字化、自动化、智能化,则是更深层次的话题。


“阁下上知天文地理,下知柴盐油米,敢问年薪几许?”



这次不用你说,我决定洗洗睡了!





注:部分图片来源网络,侵权立删!





更多精彩内容


FCC30+

长按左边二维码

关注我们不迷路



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存