当前位置 :首页 >> 音乐

Python意味着基于客观事实的RFM模型

2024-12-13   来源 : 音乐

ed().sum() #重复系数,但是不删 data.dtypes #查阅图表并不一定 data.describe() # 创立dataframe,存放RFM各系数

data_rfm = pd.DataFrame()

年中同步进讫R、F、M加权系数重构。

小时一维处理

从大略可以告诉他time一维,即所得交易系统讫为暴发的小时是字符串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图表分析方法家出有品。

家用血糖仪哪家好
肠炎拉肚子吃什么药效果最好
哪种血糖仪家用比较准好
哪种血糖仪比较好测量准确
复方鱼腥草合剂和蓝芩口服液哪个好
心知肚明:女怕三荡,男人知道是哪三荡吗?

第一件事是你要不断地盛赞她,表示你的爱慕。 爱人忍耐会陶醉于被盛赞,被宠,安然无恙 ,即便她不够讨厌你,但她也会讨厌那种被盛赞的看上去。当爱人被盛赞、被爱上的时候,她们会故作受到自...

友情链接