推荐系统之---偏好数据构建

1.用户行为分类

根据用户操作的复杂度,将用户的操作分为四类;

  • 一类:查看、停留、投票、评论、收藏、关注;
  • 二类:转发;
  • 三类:加入购物车:
  • 四类:购买;

2.类别权重

  • 一类:10%
  • 二类:20%
  • 三类:30%
  • 四类:40%

3.创建原始数据表

/*Table structure for table `user_product_base` */

DROP TABLE IF EXISTS `user_product_base`;

CREATE TABLE `user_product_base` (
  `user_id` varchar(50) DEFAULT NULL COMMENT '用户编号',
  `pid` varchar(50) DEFAULT NULL COMMENT '商品编号',
  `op_type` int(11) DEFAULT NULL COMMENT '操作类型(0 评分,1投票,2转发,3收藏,4关注,5评论,6查看,7加购物车,8购买,9停留)',
  `op_num` int(11) DEFAULT NULL COMMENT '操作次数'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `user_product_base` */
  • 数据表
user_id(用户编号)pid(商品编号)op_type(操作类型)op_num(操作次数)
‘1’‘10010’13
‘1’‘10010’21
  • 操作类型对应表,这个在下面计算评分时会用到
op_type(行为类型)行为名称行为权重
0评分0.1
1投票0.1
2转发0.2
3收藏0.1
4关注0.1
5评论0.1
6浏览0.1
7加购物车0.3
8购买0.4
9停留0.1

4.计算评分

SELECT user_id,pid,SUM(CASE 
	WHEN op_type = 0 THEN op_num * 0.1 #0评分	op_num 取值范围【1-5】	五颗星		属于一类
	WHEN op_type = 1 THEN op_num * 0.1 #0投票	op_num 取值范围【0-1】	是否投票	属于一类
	WHEN op_type = 2 THEN op_num * 0.2 #0转发	op_num 取值范围【0-1】	是否转发	属于二类
	WHEN op_type = 3 THEN op_num * 0.1 #0收藏	op_num 取值范围【0-1】	是否收藏	属于一类
	WHEN op_type = 4 THEN op_num * 0.1 #0关注	op_num 取值范围【0-1】	是否关注	属于一类
	WHEN op_type = 5 THEN op_num * 0.2 #0评论	op_num 取值范围【0-1】	好评1差评0	属于二类
	WHEN op_type = 6 THEN op_num * 0.1 #0查看	op_num 取值范围【0-n】 	次数		属于一类
	WHEN op_type = 7 THEN op_num * 0.3 #0加购车	op_num 取值范围【0-1】 	是否加入 	属于三类
	WHEN op_type = 8 THEN op_num * 0.4 #0购买	op_num 取值范围【0-1】	是否购买	属于四类
	WHEN op_type = 9 THEN op_num * 0.1 #0停留	op_num 取值范围【0-n】	停留秒		属于一类	
	ELSE 0 END) AS score
 FROM user_product_base GROUP BY user_id,pid

5.初召回

有了user_id,pid,score就可愉快的用协同过滤算法召回了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值