京东算法大赛-高潜用户购买意向预测(二)策略迭代

    xiaoxiao2021-04-17  49

    上一篇中介绍了以为热心参赛者的代码和流程。这篇将记录自己的策略更新过程。

    一 数据特征统计分析

    几个主要的点:

    (1)各类行为与转化(购买)之间的关联关系,包括浏览、加入购物车、关注

    (2)已购商品的复购率

    (3)性别与商品的关联程度

    二 特征提取

    包括用户特征,商品特征,和用户历史行为特征

    三 模型构建

    1、商品候选集确认 - 用户&相关商品,不应该是整个商品集;可能使用到关联分析,协同过滤

    2、模型选择 - 分类

    3、代码编写与参数调整

    4、效果评估与迭代优化

    以下分别按照上面描述进行整理。

    二 操作

    1、用户id数据预处理 

    用户行为数据,提供的JData_Action_201602.csv 中的user_id是浮点型,都带了个.0,直接跟JData_User.csv关联稍有麻烦,当然主要是看着不爽,所以先把几个action文件的数据规范化

    (1)格式化user_id 【使用awk 命令,gsub函数】

    awk '$0 ~ /.0,/ {gsub(".0,", ",", $0); print}' JData_Action_201602.csv > Format_JData_Action_201602.csv

    (2)用户行为合并

    原始数据中,用户的行为是每行一条数据,无法形成行为序列,所以这里加一步中间数据的处理,便于分析用户的商品浏览到购买的全流程行为。给的文件字段说明,是'user_id','sku_id','time','model_id','type','cate','brand' 七个字段,但解析的过程中发现,有不少记录按照逗号分割后,是6个,例如:

    266079.0,138778,2016-01-31 23:59:02,,1,8,403

    266079.0,138778,2016-01-31 23:59:03,0,6,8,403

    200719.0,61226,2016-01-31 23:59:07,,1,8,30

    追查后,发现是第一步处理时导致部分空值丢失。。所以重写编写了脚本,这里一并完成user_id的处理在脚本中实现。

    (2.1)用户维度聚合

    (2.2)用户维度,同一个商品的行为序列再次聚合,一个商品一个元组

    (3)正样本提取

    先明确一下正负样本的定义:

    正样本:有过非购买行为,且有购买行为的用户记录(针对同一商品)

    负样本:有过浏览等行为,但最终没有购买行为的用户记录

    初步的目标,就是从有非购买行为,且有购买行为的用户中,分析出其中隐藏的规律,并利用这个规律,对其他有行为的用户进行购买行为的预测

    上一篇中介绍了以为热心参赛者的代码和流程。这篇将记录自己的策略更新过程。

    一 数据特征统计分析

    几个主要的点:

    (1)各类行为与转化(购买)之间的关联关系,包括浏览、加入购物车、关注

    (2)已购商品的复购率

    (3)性别与商品的关联程度

    二 特征提取

    包括用户特征,商品特征,和用户历史行为特征

    三 模型构建

    1、商品候选集确认 - 用户&相关商品,不应该是整个商品集;可能使用到关联分析,协同过滤

    2、模型选择 - 分类

    3、代码编写与参数调整

    4、效果评估与迭代优化

    以下分别按照上面描述进行整理。

    二 操作

    1、用户id数据预处理 

    用户行为数据,提供的JData_Action_201602.csv 中的user_id是浮点型,都带了个.0,直接跟JData_User.csv关联稍有麻烦,当然主要是看着不爽,所以先把几个action文件的数据规范化

    (1)格式化user_id 【使用awk 命令,gsub函数】

    awk '$0 ~ /.0,/ {gsub(".0,", ",", $0); print}' JData_Action_201602.csv > Format_JData_Action_201602.csv

    (2)用户行为合并

    原始数据中,用户的行为是每行一条数据,无法形成行为序列,所以这里加一步中间数据的处理,便于分析用户的商品浏览到购买的全流程行为。给的文件字段说明,是'user_id','sku_id','time','model_id','type','cate','brand' 七个字段,但解析的过程中发现,有不少记录按照逗号分割后,是6个,例如:

    266079.0,138778,2016-01-31 23:59:02,,1,8,403

    266079.0,138778,2016-01-31 23:59:03,0,6,8,403

    200719.0,61226,2016-01-31 23:59:07,,1,8,30

    追查后,发现是第一步处理时导致部分空值丢失。。所以重写编写了脚本,这里一并完成user_id的处理在脚本中实现。

    (2.1)用户维度聚合

    (2.2)用户维度,同一个商品的行为序列再次聚合,一个商品一个元组

    (3)正样本提取

    先明确一下正负样本的定义:

    正样本:有过非购买行为,且有购买行为的用户记录(针对同一商品)

    负样本:有过浏览等行为,但最终没有购买行为的用户记录

    初步的目标,就是从有非购买行为,且有购买行为的用户中,分析出其中隐藏的规律,并利用这个规律,对其他有行为的用户进行购买行为的预测

    转载请注明原文地址: https://ju.6miu.com/read-673613.html

    最新回复(0)