参考自modelwahle上的用户[广发英雄帖]所做的数据分析案例,提取思路部分,仅供参考。
数据的预处理
- 为提高运行效率,会随机抽取20%的数据样本
df = df_orginal.sample(frac=0.2,random_state=None); - 预览数据的类型df.info()和缺失值df.isnull().sum(),并去掉缺失值太多的数据列df.drop();
- 日期与时段处理,将时间拆分为日期和时段,时段又分为'凌晨'、'上午'、'中午'、'下午'、'晚上';
- 制作用户标签表,生成用户标签表,后续制作好的标签都加入这个表中;
用户行为标签
1. 用户浏览活跃时间段
对用户和时段分组,统计浏览次数并且统计浏览次数最多的时段并提取,可并列,添加到用户标签表;![](https://img.haomeiwen.com/i9882011/9082c5d0e632dd3d.png)
2. 用户购买活跃时间段
逻辑与1相同;
3. 关于类目的用户行为
1⃣️浏览最多的类目
![](https://img.haomeiwen.com/i9882011/d989b5c55daa26fa.png)
2⃣️收藏最多的类目
3⃣️加购最多的类目
4⃣️购买最多的类目
4. 30天用户行为
1⃣️近30天购买次数
![](https://img.haomeiwen.com/i9882011/1bda60963ecdb392.png)
2⃣️近30天加购次数
将加购行为按用户进行分组,统计次数
3⃣️近30天活跃天数
对用户进行分组,统计活跃的天数,包括浏览、收藏、加购、购买
5. 7天用户行为
1⃣️近7天购买次数
统计七天内的数据
![](https://img.haomeiwen.com/i9882011/e5e1819a7c8b1ae7.png)
2⃣️近7天加购次数
3⃣️近7天活跃天数
6. 最后一次行为距今天数
1⃣️上次浏览距今天数![](https://img.haomeiwen.com/i9882011/dd9e3b05d1277c94.png)
2⃣️上次加购距今天数
3⃣️上次购买距今天数
7. 最近两次购买间隔天数
8. 是否浏览未下单
统计同时具备两者特征的用户![](https://img.haomeiwen.com/i9882011/e191dfcade566056.png)
9. 是否加购未下单
统计同时具备两者特征的用户![](https://img.haomeiwen.com/i9882011/84b853ecfb1f2625.png)
用户属性标签
1. 是否复购用户
统计每个用户总购买次数判断是否大于2
![](https://img.haomeiwen.com/i9882011/0b95fb4457e89db4.png)
2. 访问活跃度
30天内访问人数和次数的关系来判断活跃阈值
![](https://img.haomeiwen.com/i9882011/00c73963ffdf533d.png)
3. 购买活跃度
30天内购买人数和次数的关系
![](https://img.haomeiwen.com/i9882011/c6c01819df368001.png)
4. 购买的品类是否单一
判断每个用户购买品类是否为1
未购买的用户标记为‘未购买’,不为1的用户标记为‘否’,为1的用户标记为‘是’
5. 用户价值分组(RFM)
此处仅判断购买人数和距今天数的关系,访问异常为双十二
![](https://img.haomeiwen.com/i9882011/d9a4791745b80b52.png)
![](https://img.haomeiwen.com/i9882011/efae44ecaa6ac111.png)
用户个性化标签
数据预处理
对所有数据按'user_id','item_id','behavior_type','item_category','time'进行分组![](https://img.haomeiwen.com/i9882011/b44af47f194f21de.png)
1. 应用TF-IDF算法计算标签权重
TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率),是一种加权算法,即次数*频率。
计算每个用户身上每个标签的个数和总数,以及每个标签的行为数;
应用TF-IDF计算标签权重
2. 建立行为类型权重维表
浏览行为,权重0.3
收藏行为,权重0.5
加购行为,权重1
购买行为,权重1.5
3. 计算用户标签权重
标签权重衰减函数
本项目中,加购行为的权重不随着时间的增长而衰减,而购买、浏览、收藏随着时间的推移,其对当前的参考性越来越弱,因此权重会随着时间的推移越来越低
![](https://img.haomeiwen.com/i9882011/9d74dc83e40825cb.png)
用户偏好标签
1. 计算两两标签共同对应的用户数
要计算两两标签的相似性,计算量太大,服务器性能有限,在此只选取有过购买的标签
2. 计算每个标签对应的用户数
将两表正交,得到每个用户下,其所有标签的的两两组合
删除重复值,即同一用户由上述正交得到的数据表中,两个标签为同一标签的数据
用两个标签分组,计算用户数,即每两个标签同时出现在不同的用户中的个数
计算每一个标签对应的不同的用户数,即每个标签出现在不同的用户中的个数
计算标签1有关的用户数,计算标签2有关的用户数
3. 计算两两标签之间的相似性
余弦相似度计算两两标签的相关性
4. 对每个用户的历史标签权重加总
对用户、标签进行分组,计算每个用户每个标签的权重和
5. 计算推荐给用户的相关标签
将用户与所有与其有关的标签作对应
计算推荐得分值 得分值 = 行为权重*相关性
![](https://img.haomeiwen.com/i9882011/be17773c04efb569.png)
群体用户画像标签
1. 随机指定性别并划分群体
2. 使用TF-IDF计算不同人群的标签偏好
计算每个性别、每个标签的权重加总![](https://img.haomeiwen.com/i9882011/258640754428f675.png)
计算每个性别的所有标签的权重加总
![](https://img.haomeiwen.com/i9882011/096c234eabf126f4.png)
使用TF-IDF算法计算每个性别对每个标签的偏好权重值
对所有数据按得分值排序,再按性别分组,得到每个性别得分值最高的10个标签
![](https://img.haomeiwen.com/i9882011/e84b2dbcda039d43.png)
网友评论