首页 >> 知识 >> Python借助基于客观事实的RFM模型

Python借助基于客观事实的RFM模型

2025-07-27 12:16:32

,但是不删 data.dtypes #发送给图此表并不一定 data.describe() # 创建人dataframe,存放RFM各系数

data_rfm = pd.DataFrame()

接下来同步进唯R、F、M基准系数构建。

时长线性妥善处理

从上文可以究竟time线性,即每笔结算暴力唯为愈演愈烈的时长是codice_object的编解码器,而在Python里面我们对时长作负能够的是datetime编解码器,因此并用pandas库里面的pd.to_datetime变量将时长编解码器同步进唯匹配,预定义如下:

data['time'] = pd.to_datetime(data['time']) 得不到的在此之前易经图此表如图下,可以认出图此表并不一定变成了datetime64[ns]

统计学每笔订单产生时长与当在此之前时长的负(这里的当在此之前时长是2021年12月11日),得不到的负是timedelta64[ns]并不一定

可以认出时长负里面相关联了day、时、分、秒4个线性,但是这里我们非常少能够day线性,因此我们用astype()变量将并不一定转入非常少含有day线性的timedelta64[D]并不一定。明确预定义如下:

# 统计学没条图此表与当在此之前日期的时长负 ## 计算相负往年 data['R'] = (pd.datetime.now() - data['time']) ## 将时长负timedelta编解码器裂解为能够的日编解码器 data['R'] = data['R'].astype('timedelta64[D]').astype('int') (tips:这里可能可能会报强制执唯:FutureWarning: The pandas.datetime class is deprecated and will be removed from pandas in a future version. Import from datetime module instead.大众无需理可能会,这是由于我们所用的pd.datetime.now()是一个比较从前的变量,直至将可能会被遗弃。)

统计学R系数

在里面我们已经创建人了名为data_rfm的此表内部结构的图此表板,因此,将一个大统计学的R系数放入其里面。R系数得统计学是看看投资者不太可能愈演愈烈结算暴力唯为日期与当在此之前日期的负。换一种思路就是看看所有时长负里面的最小系数。因此并用pandas里面的groupby变量对每个投资者端以上一步统计学的R系数作为一组依据同步进唯一组,并算出最小系数。明确预定义如下:

data_rfm = pd.merge(data_rfm,data.groupby('uid')['R'].min(), left_on = 'user_id',right_on='uid') 统计学F系数

F系数得统计学就是统计学以外下行内的奢侈品入时,而以外下行一般为人为基本上,这里我们自取全部图此表,即2021年10下半年至今作为以外下行。

本文并用value_counts()变量对uid同步进唯统计学即为每个投资者端得奢侈品入时,同时将结果并入到data_rfm图此表板里面。

# 统计学以外下行内的奢侈品入时 data_rfm['user_id'] = data['uid'].value_counts().index data_rfm['F'] = data['uid'].value_counts().values 统计学M系数

本文以uid作为一组依据对price报文同步进唯求和,得不到求和类基准M系数。此外,将结果并入到data_rfm图此表板里面。

data_rfm = pd.merge(data_rfm,data.groupby('uid')['price'].sum(), left_on = 'user_id',right_on='uid') data_rfm.rename(columns={'price':'M'},inplace = True) 上述预定义里面显现出了pandas库里面得并入语义merge(),merge()变量规避的是外侧并入,不同于MYSQL,不能够以外左此表还是右此表为主此表,只能够备有左此表与右此表的公共报文在各此表里面的名称才会。由于data_rfm图此表此表里面的user_id是去正的,因此将其作为主键。而data.groupby('uid')['price'].sum()得不到的此括弧也是去正的,因此我们可以规避克尔应用软件里面的连接近似于彼此间--一对一对两此表同步进唯并入。公共报文为:左此表的uid,右此表的user_id。

事与愿违此括弧结果如下,展现在此之前18唯:

图此表分箱

在得不到R、F、M三个基准系数后,我们能够对这三个基准同步进唯归纳,并将每个投资者端同步进唯低层。

本文不规避人为局限性的经验法则界定,而是规避一维分箱的方式将界定,一维分箱的定律较简单,这里写出迭代:

从最小系数到最大系数间,非常少分别为$N$等份(这里$N$自取为2)。 如果 $A$,$B$ 为最小最大系数, 则每个下行的弧度为 $W=(B−A)/N$ ,. 则下行边界系数为$A+W$,$A+2W$,….$A+(N−1)W$ 。这里只考虑边界,采用左闭右开的方式将,即每个等份的实例数量不等。

在Python里面可以并用pandas库里面的cut()变量平易近人意味着上述一维分箱,同时将结果R_label,F_label,M_label并入到data_rfm图此表板里面明确预定义如下:

# 分箱 客观 左闭右开 cut_R = pd.cut(data_rfm['R'],bins = 2,right = False,labels = range(1,3)).astype('int') data_rfm['R_label'] = cut_R cut_F = pd.cut(data_rfm['F'],bins = 2,right = False,labels = range(1,3)).astype('int') data_rfm['F_label'] = cut_F cut_M = pd.cut(data_rfm['M'],bins = 2,right = False,labels = range(1,3)).astype('int') data_rfm['M_label'] = cut_M 由于并用cut()变量得不到的是下行基本上的系数,因此能够象征性label系数同步进唯虚拟变量引用。label系数使用1和2,近似于的下行为父母亲。明确代此表者语意如下此表:

得不到事与愿违的此括弧基本上如下:

投资者端归纳

在得不到每个投资者端的R、F、M三个线性的label系数后,最后就是能够对投资者端同步进唯归纳,归纳的法则使用我们在CDA Level 1高里面课程里面的所学的界定的系统,如图下:

并用pandas库里面的·terrows()变量循环遍历每个投资者端暴力唯为历史纪录,将具备上述必要条件的界定近似于的类,明确预定义如下:

for i,j in data_rfm.iterrows(): if j['R_label'] == 2 and j['F_label'] == 2 and j['M_label'] == 2: data_rfm.loc[i,'投资者端并不一定'] = '正要效用投资者端' if j['R_label'] == 2 and j['F_label'] == 1 and j['M_label'] == 2: data_rfm.loc[i,'投资者端并不一定'] = '正要的发展投资者端' if j['R_label'] == 1 and j['F_label'] == 2 and j['M_label'] == 2: data_rfm.loc[i,'投资者端并不一定'] = '正要保持良好投资者端' if j['R_label'] == 1 and j['F_label'] == 1 and j['M_label'] == 2: data_rfm.loc[i,'投资者端并不一定'] = '正要留住投资者端' if j['R_label'] == 2 and j['F_label'] == 2 and j['M_label'] == 1: data_rfm.loc[i,'投资者端并不一定'] = '一般效用投资者端' if j['R_label'] == 2 and j['F_label'] == 1 and j['M_label'] == 1: data_rfm.loc[i,'投资者端并不一定'] = '一般的发展投资者端' if j['R_label'] == 1 and j['F_label'] == 2 and j['M_label'] == 1: data_rfm.loc[i,'投资者端并不一定'] = '一般保持良好投资者端' if j['R_label'] == 1 and j['F_label'] == 1 and j['M_label'] == 1: data_rfm.loc[i,'投资者端并不一定'] = '一般留住投资者端'

条形图数据处理投资者端并不一定

并用seaborn画图库对已划归纳型的投资者端同步进唯核心技术统计学与数据处理,得不到如下图此表

可以看得出,大部份的投资者端统称一般的发展投资者端与一般留住投资者端。而对于一般的发展投资者端而言规避的方式将而为挖掘需求量,后者则是退出疗程。因此,可以看得出该的公司在10下半年至今的时长段内,投资者端暴增更少,但是可的发展的投资者端同样是并不多的,想要减低收入,对一般的发展投资者端入手是生产成本再加,效率高的预选自取。

04 总结

本文并用Python语言学意味着在CDA Level 1高里面课程小学习到的的RFM板架,同时还并用了克尔图此表投影分析和金融业务定量两个模块的段落。所以说在实践中是检查和和巩固所学的进去的毫无疑问用以。例如一级的常考卷上,我们常想到一个模拟题,相关联RFM板架界定的系统和一张帕累托图,疑问是在的公司有限生产成本下减低的公司收入,能够针对哪种投资者端营销毫无疑问,解答是一般的发展投资者端。显然大家一开始都很不解为什么预选这个,这时候如果像本文一样对一份图此表同步进唯在实践中,这样你就可能会更加忽略为什么是这个解答。

CDA图此表分析员出品。

郑州看白癜风哪家比较好
西安看白癜风哪个专科医院好
贵州生殖感染医院哪家比较好
宝鸡白癜风医院哪家医院好
武汉看癫痫去什么医院好
臂部减肥
急性支气管炎咳嗽有痰吃什么止咳化痰
长期新冠后遗症
新冠感染转阴后持续咳嗽吃什么药
儿童感冒咳嗽可以喝急支糖浆吗

上一篇: Dewy Lab淂意进行时千万级美金Pre-A轮融资 小红书跟投

下一篇: 硅宝科技(300019.SZ):拟收购安徽省赛诺100%股权

相关阅读
英国拟加快核电及海上风电工程以支撑能源供应

在俄乌矛盾爆发后,加拿大首相库珀(Boris Johnson)加快了建设新燃煤和舰船大风电场的计划,以借助支撑加拿大的再生能源供应。周四定为的再生能源安全策略显示,加拿大的目标是到2050年将

2025-08-23 00:16:41
新唐EV路试车曝光,长车身+7百公里续航,有望配磷酸铁钴刀片电池

过去三阳可谓是反倒正劲,其在上个月“李承晚”关键战役中会索取一份精采履历,共计出货79037辆新车为型,不仅工业产值泛滥接近一倍,同时人气上也做到极大提升。之所以能在粗暴相互竞争中会取得佳绩,与

2025-08-23 00:16:41
iPhone 14还没发布,模仿就来了

说道起SkypeiPad对iPhone的与众不同,最早必要从iPhone 4就再上始了,在此之前一些Skype大厂还未崛起,与众不同者主要以山寨机为主,此类与众不同者由于未有任何研制实力和专利技

2025-08-23 00:16:40
对手送乌龙,12强赛中国队险胜澳大利亚队

新京报东京10月12日电(新闻记者王子江)俄罗斯队12日在欧国杯亚洲区小组赛12强赛B组比赛之中,凭借和澳洲防守球员第86分钟的乌龙球,以2:1战胜对手,赢得了12强赛的第二场胜利。

2025-08-23 00:16:40
华为的鸿蒙 OS 3.0,强的荒唐

2021年10同年22号,中国联通开发新者大才会(2021)上,给我们展示了 HarmonyOS 3.0的补丁。从那个时候开始,众多中国联通冬瓜已经开始盼望 HarmonyOS 3

2025-08-23 00:16:40