任务:依据电子商务平平台上真实的用户行为记录,利用机器学习相关技术,建立稳健的电商用户购买行为预测模型,预测用户下一个可能会购买的商品。

数据简介 数据整理自一家中等化妆品在线商店公布的网上公开数据集,为该化妆品商店真实的用户交易信息,数据集中每一行表示一个事件,所有的事件都与商品和用户相关,并且用户的点击行为之间是有时间顺序的。数据集中包含了商品和用户的多个属性,例如商品编号、商品类别、用户编号、事件时间等。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

数据说明

主要思路

  1. 对用户id进行分组

  2. 统计类别、品牌、收藏、加购物车、下单等特征,赋予合理的权重

  3. 构建时间特征

  4. 使用lgb的多分类模型进行训练

主要代码:

注意:此版本代码lgb版本是2.0.3

import gcimport pandas as pd
from sklearn.preprocessing import LabelEncoderpaths = r'E:\项目文件\CCF\电商用户购买行为预测'
data = pd.read_csv(f'{paths}/train.csv')
submit_example = pd.read_csv(f'{paths}/submit_example.csv')
test = pd.read_csv(f'{paths}/test.csv')data['user_id'] = data['user_id'].astype('int32')
data['product_id'] = data['product_id'].astype('int32')
data['category_id'] = data['category_id'].astype('int32')
lbe = LabelEncoder()
data['brand'].fillna('0', inplace=True)
data['brand'] = lbe.fit_transform(data['brand'])
data['brand'] = data['brand'].astype('int32')
# data['event_time'] = pd.to_datetime(data['event_time'], format='%Y-%m-%d %H:%M:%S')
data.fillna(0, inplace=True)
gc.collect()train_X = data
test_data = test# 构建特征
groups = train_X.groupby('user_id')
temp = groups.size().reset_index().rename(columns={0: 'u1'})
matrix = temp
temp = groups['product_id'].agg([('u2', 'nunique')]).reset_index()
matrix = matrix.merge(temp, on='user_id', how='left')
temp = groups['category_id'].agg([('u3', 'nunique')]).reset_index()
matrix = matrix.merge(temp, on='user_id', how='left')
temp = groups['brand'].agg([('u5', 'nunique')]).reset_index()
# TODO 根据用户购买行为去构建特征
# temp = groups['event_type'].value_counts().unstack().reset_index().rename(
#     columns={0: 'u7', 1: 'u8', 2: 'u9', 3: 'u10'})
matrix = matrix.merge(temp, on='user_id', how='left')label_list = []
for name, group in groups:product_id = int(group.iloc[-1, 2])label_list.append([name, product_id])train_data = matrix.merge(pd.DataFrame(label_list, columns=['user_id', 'label'], dtype=int), on='user_id', how='left')# 构建特征
groups = test_data.groupby('user_id')
temp = groups.size().reset_index().rename(columns={0: 'u1'})
test_matrix = temp
temp = groups['product_id'].agg([('u2', 'nunique')]).reset_index()
matrix = test_matrix.merge(temp, on='user_id', how='left')
temp = groups['category_id'].agg([('u3', 'nunique')]).reset_index()
matrix = matrix.merge(temp, on='user_id', how='left')
temp = groups['brand'].agg([('u5', 'nunique')]).reset_index()
# TODO 根据用户购买行为去构建特征
# temp = groups['event_type'].value_counts().unstack().reset_index().rename(
#     columns={0: 'u7', 1: 'u8', 2: 'u9', 3: 'u10'})
test_data = matrix.merge(temp, on='user_id', how='left')test_data = test_data.drop(['user_id'], axis=1)train_X, train_y = train_data.drop(['label', 'user_id'], axis=1), train_data['label']
# train_X.to_csv('train_deal.csv', index=False)
# train_y.to_csv('train_y_deal.csv', index=False)
# test_data.to_csv('test_data.csv', index=False)# 导入分析库
import lightgbm as lgbmodel = lgb.LGBMClassifier(max_depth=5,n_estimators=10,
)model.fit(train_X,train_y,eval_metric='auc',eval_set=[(train_X, train_y)],verbose=False,early_stopping_rounds=5
)prob = model.predict(test_data)import numpy as npnp.savetxt(paths + '\\prob1.csv', prob)
submit_example['product_id'] = pd.Series(prob[:, 0])
submit_example.to_csv(paths + r'\\lgb1.csv', index=False)

耍花招凑提交的方法,直接默认买最后一条记录,小心被封号

import pandas as pdpaths = r'E:\项目文件\CCF\电商用户购买行为预测'
submit_example = pd.read_csv(f'{paths}/submit_example.csv')
test = pd.read_csv(f'{paths}/test.csv')# 构建特征
groups = test.groupby('user_id')
label_list = []
for name, group in groups:product_id = int(group.iloc[-1, 2])label_list.append([name, product_id])submit_example = pd.DataFrame(label_list, columns=['user_id', 'product_id'])
submit_example.to_csv(paths + r'\\label_list.csv', index=False)

参考文献,思路都差不多,主要看你怎么构造特征了,加油吧少年

原文地址:电商用户购买行为预测-排名48-0.23_一个有趣的人-CSDN博客

利用Python对电商用户购买行为进行预测!这都能预测到?相关推荐

  1. 电商用户购买行为预测-排名48-0.23

    任务:依据电子商务平平台上真实的用户行为记录,利用机器学习相关技术,建立稳健的电商用户购买行为预测模型,预测用户下一个可能会购买的商品. 数据简介 数据整理自一家中等化妆品在线商店公布的网上公开数据集 ...

  2. CCF大赛:电商用户购买行为预测 解决方案

    电商用户购买行为预测 比赛介绍 互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但是网上信息量的大幅增长也带来了"信息过载"的问题.这使得用户在面对大量 ...

  3. 【Python】电商用户复购数据实战:图解Pandas的移动函数shift

    公众号:尤而小屋 作者:Peter 编辑:Peter 本文主要介绍的是pandas中的一个移动函数:shift.最后结合一个具体的电商领域中用户的复购案例来说明如何使用shift函数. 这个案例综合性 ...

  4. 【Python】电商用户行为数据可视化分析实战

    本文中,云朵君将和大家一起从多个角度使用多个可视化技术,根据各种因素跟踪客户在电子商务网站的花费时间. 关于数据集 数据集来自kaggle -- Machine Hack. 先进电子商务的用户数量激增 ...

  5. 电商用户购买行为数据分析

    1 相关背景 数据来源:该数据集来自The UCI Machine Learning Repository 数据背景:该数据集是英国某电商在2年内的全部在线销售数据,该电商主要销售独特的全时礼品,多数 ...

  6. 基于大数据的线上线下电商用户数据挖掘研究

    From:http://www.thebigdata.cn/JieJueFangAn/11932p2.html Online-to-Offline( 简称 O2O)电子商务模式,是一个连接线上用户和线 ...

  7. 电商用户行为实时分析系统(Flink1.10.1)

    文章目录 [实验题目]电商用户行为实时分析系统 [实验描述] [实验目的] [实验时间] [实验环境] [实验内容] [实验步骤] 1. 创建Maven项目 1.1项目框架搭建 1.2 声明项目中工具 ...

  8. 基于 flink 的电商用户行为数据分析【9】| 电商常见指标汇总 + 项目总结

    本文已收录github:https://github.com/BigDataScholar/TheKingOfBigData,里面有大数据高频考点,Java一线大厂面试题资源,上百本免费电子书籍,作者 ...

  9. 电商用户行为数据分析实战(MySQL +PowerBI)

    目录 一.项目概况 二.数据源 三.数据清洗 3.1 选择子集导入,匹配适合的数据类型 3.2 列重命名 3.3重复值处理 3.4 缺失值处理 3.5 异常值处理 从timestamps字段中提取日期 ...

最新文章

  1. Spring源码分析【2】-Tomcat和Sping的连接点
  2. uni-app用着不香吗?Android,iOS,小程序一套代码吃通所有
  3. cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
  4. python实现多表格合并_用python实现多个表格合并按字段去重
  5. java创建一副牌_用java怎么创建一副扑克牌
  6. blender怎么移动骨骼_宝宝偏头怎么办?千万别错过这个矫正“黄金期”!
  7. HDU2066 一个人的旅行【最短路径+Floyd算法】
  8. element-ui表格数据样式及格式化
  9. paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标
  10. 阿里云服务器加快下载github
  11. 谈一谈企业部署erp系统的三大时间段
  12. MySQL 主从幂等复制slave_exec_mode=IDEMPOTENT
  13. 【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–5 Bert 方案
  14. 安全牛联合世平信息共同发布《数据防泄密 (DLP) 业务应用指南》
  15. 【Unity】3D模型或粒子渲染在UI上层
  16. android按钮显示注册成功,Android中给按钮注册事件的四种方法
  17. 深度学习+符号表征=强大的多任务通用表征,DeepMind新论文可能开启AI新时代
  18. 磁滞回线如何用计算机画图,利用Origin8.5软件简化磁滞回线数据处理
  19. gridview纯图片九宫图展示
  20. 美国旅游带孩子怎么申请签证?

热门文章

  1. 动态加载js_异步加载js
  2. 项目策划与公关服务的服务内容通常是什么?
  3. 音频信号处理技术学习笔记
  4. 04.卡牌交换逻辑对象池
  5. php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)
  6. 给Linux中的cp和mv命令中添加进度条的高级拷贝
  7. 027Min Peak
  8. JSON 解析--JObject
  9. linux输出根目录下的文件名
  10. 纯干货 | 大佬总结的 20 个高并发编程知识点!