关于2015阿里移动推荐算法大赛的总结(三)——机器学习

来源:互联网 发布:tcl42寸网络电视 编辑:程序博客网 时间:2024/05/07 09:22

关于2015阿里移动推荐算法大赛的总结(一)
关于2015阿里移动推荐算法大赛的总结(二)——推荐算法
关于2015阿里移动推荐算法大赛的总结(三)——机器学习

后来我们回归到正途上,虽然我们也想用深度学习的方法,但是毕竟还是菜鸟的水平,所以把目标定在能用机器学习跑通一遍,顺带熟悉一下各种机器学习算法的实际应用。但是最后的最后我们只用了LR,然后就受打击了。哈哈~


想用机器学习的方法,那么思路其实也很明确,问题是那一天用户是买还是不买,那么可以看成是二分法。通过用户行为方式来判断是否会购买。就是把用户行为等抽象成特征向量得到训练集,扔进机器学习算法训练出一个模型,然后用测试集预测出结果。虽然机器学习的算法有不少,而且需要不断的调整参数和优化,但是我认为特征向量的选取才是最关键的,很显然我们到最后也没搞好~~~

下面详细整理总结一下~~~
首先,肯定要进行数据预处理,去除噪声数据(如非正常流量,爬虫或者机器行为产生的数据),数据时间刚好是双11刚过,双12在其中,所以也应该考虑到购物节对用户购买行为的影响。

关于特征向量的选取,我用了下面这种主观上可以接受的想法~
数据集是一个月的用户行为,那么我直接把数据分成4周,用前3周作为训练集,最后1周作为测试集。用每周过后的1~2天的购买行为当作标签,给这一周的行为统计向量打标签。

进行训练的时候大体思想如下:

统计表:

用户-商品 浏览 收藏 加购物车 购买 最终是否购买(标注) user1-item1 4 1 1 1 1 user2-item1 4 1 1 1 0 user3-item4 4 1 1 1 1 user2-item1 7 0 1 1 0 user7-item8 1 0 1 0 1

输入表:

标签 特征1(浏览) 特征2(收藏) 特征3(加购) 特征4(购买) 1 4 1 1 1 0 4 1 1 1 1 4 1 1 1 0 7 0 1 1 1 1 0 1 0

训练完模型内部可能:

特征1(浏览) 特征2(收藏) 特征3(加购) 特征4(购买) 会输出结果 4 1 1 1 1 7 0 1 1 0 1 0 1 0 1

进行预测的时候大体思想如下:

统计表:

用户-商品 浏览 收藏 加购物车 购买 user10-item41 4 1 1 1 user12-item51 4 1 1 1 user13-item24 4 1 1 1 user12-item71 7 0 1 1 user17-item98 1 0 1 0

输入表:

浏览 收藏 加购物车 购买 4 1 1 1 4 1 1 1 4 1 1 1 7 0 1 1 1 0 1 0

输出表:

浏览 收藏 加购物车 购买 输出结果 4 1 1 1 1 4 1 1 1 1 4 1 1 1 1 7 0 1 1 0 1 0 1 0 1

然后我们寻找预测为购买的特征对应的用户-商品对。

输出表:

浏览 收藏 加购物车 购买 输出结果 4 1 1 1 user10-item41 4 1 1 1 user12-item51 4 1 1 1 user13-item24 1 0 1 0 user17-item98

注意点:
(1)在选取样本集的时候可以是多段累加数据。
(2)后期可以对不同的类型的物品建立不同的训练模型,比如电影票饭票一个模型,淘宝物品一个模型,因为不同类别购买行为规律不同。根据类别分类,分别输入进不同模型输出。
(3)根据地理位置用一个简单的推荐算法进行加权融合。
(4)考虑行为中的时间因素,如在一个周期对某商品内浏览4次,在第一天浏览4次和最后一天浏览4次购买的可能性也不同。就是引入时间对行为加权,可能本来浏览4次,最后加权出来浏览是2.33次。最后使用的是总结(二)里的遗忘曲线加权的。


结果很不尽人意,甚至不如直接取最后一天加购物车当作第二天会购买的用户商品对的评分高。但是起码这个从头到尾跑了一遍,在这个过程中,学到了好多,如思考模型算法,学习使用Python,对数据的划分处理以及对机器学习的使用调参。希望自己不断的在进步,不要求自己有多牛,但要比之前的自己牛~哈哈

3 1