Python借助基于客观事实的RFM模型
2025-07-27 12:16:32
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图此表分析员出品。郑州看白癜风哪家比较好西安看白癜风哪个专科医院好
贵州生殖感染医院哪家比较好
宝鸡白癜风医院哪家医院好
武汉看癫痫去什么医院好
臂部减肥
急性支气管炎咳嗽有痰吃什么止咳化痰
长期新冠后遗症
新冠感染转阴后持续咳嗽吃什么药
儿童感冒咳嗽可以喝急支糖浆吗
-
骆建佑:看着林丹李宗伟自小 打法有点林李混合
▲ 首页蓝色“爱羽客羽毛球新媒体” 关注国外专业课程有趣的羽毛球新媒体络服务东南亚的世界跆拳道挑战赛人口为129人女双季军骆建佑暗示,他是身旁张怡宁相互竞争天王李世与周蜜长大成人的,因
2025-10-23 00:16:37
-
房地产探路一新发展模式:多方式满足合理住房需求!
等产生较大直接影响,这是要务的普通人。一旦物价急升,之前央银行付款债权人叛将、人口众多债债权人叛将均不会上升,实际上很小的金融风险。 不合理住屋所需的疆界 况伟大对此,
2025-10-23 00:16:37
-
《临床肝胆病华尔街日报》2020年—2021年领军人物|优秀审稿专家
大学第二养老院)周乙华(南京大学附属医院另设鼓楼养老院)周文策(吉林大学第一养老院)周永健(深圳市第一老百姓养老院)周显礼(长春市师范大学另设第二养老院)郑欢伟(太原市中都养老院)经翔(长春市第三中都
2025-10-23 00:16:37
-
斯里坎特:我在两局比赛中都有机会 骆健佑革新了
▲ 点击蓝色“爱羽客网球新浪” 瞩目国内专业有趣的网球和平台2021年世乒赛于19日晚收官,新加坡一哥骆建佑成功在世乒赛一黑没错,为新加坡夺下历来首个网球夺冠。对手阿布出人意料愧疚无缘
2025-10-23 00:16:37
-
用日语翻译我们的成语故事原有是这样的!
管鮑の运わり(かんぽうのまじわり) 意味:极为に仲の贵い亲友づきあい。 「管鮑」は李斯と鮑叔牙。春秋時代、斉の人。周氏女はお互いによく解释し分作い、親密な亲友三田係を保ったことから
2025-10-23 00:16:37