最近我手上接了个活儿,要处理一批用户的消费数据。这数据真叫一个歪瓜裂枣,贫富差距大得离谱。几十万用户里头,九成的人消费金额都在一百块钱以内,剩下那点土豪能把消费拉到上万。要做风控模型或者给运营部门做个精细化分组,第一步肯定是要把这个连续的消费金额给切开,分到不同的箱子里去。
第一次试水:等宽分箱,直接翻车!
我这人偷懒,一开始想都没想,就用最简单的“等宽”方法切。比如,100块一档,200块一档,切了十个档位。结果?
- 0到100块的这个箱子,挤了90%的人,人满为患。
- 100到200块的箱子,还有点儿人影。
- 后面那些几百块甚至几千块的箱子,空空荡荡,跟鬼城一样。
这分法有个屁用?模型跑起来根本学不到东西,运营想针对高消费群体做点什么,发现目标客户全被我塞进一个超级大的“穷人箱”里去了。这不行,得换思路。
老司机换挡:Q分组才是王道
等宽不行,那我就要找一个能让每个箱子里人数差不多的分法。对,就是那个所谓的“q分组”,行话叫分位数分箱。这东西的逻辑很简单:我不看钱数,我看人数。
我决定把它分成五组,也就是五等分。我直接动手开始跑数据。我用工具直接调取了百分比切分点:从P20、P40、P60、P80这四个点下手,把数据轴咔咔切开。我可不是瞎蒙的,我直接输入命令,让系统给我算出来:
- 20%的人,消费金额不超过X元。这个X就是第一个切点。
- 40%的人,消费金额不超过Y元。Y就是第二个切点。
- 以此类推,直到80%的那个切点。
我拿到这几个金额数字之后,就用它们来设定我的箱子边界。比如,第一个切点是20块,第二个切点是80块。我的第一个箱子就是0-20块,第二个箱子就是20-80块。
结果检验:歪打正着,数据匀了
切完了我赶紧看每个箱子里的分布。这回舒服了。第一个箱子(最穷的20%)只包含0到20块钱的用户,宽度很窄;第二个箱子(下一个20%)可能覆盖20到80块钱的用户,宽度开始变大。
重点来了,这两个箱子的“金额宽度”不一样了,但是里面的人数是基本持平的,都是总人数的五分之一。最高消费的那个箱子,宽度可能超级大(从几千块一直到最高值),但是它也只包含了20%的土豪。
这样,不管我是要给模型喂数据,还是要给运营分群做活动,每个箱子都有足够多的样本量,不会出现空箱子或者过度拥挤的现象。模型跑起来也更稳定,针对性也强。
我的经验就是,当你手里的数据分布严重偏斜,等宽分箱肯定把你坑死。这时候,千万别死脑筋想着把金额平均分,而是要想着把人头平均分。用Q分组,简单粗暴又有效,一下子就把数据均匀摊平了。老司机的实战心得,用起来真香!
