第一赛季结束了,没杀进t500,晚上写LR方法弄到一点半,公式搞错了,没弄出结果,也就放弃了最后一次提交。既然结束了就把自己的方法说说,作为教训与大家共勉。之前看过大神们讲业务逻辑和LR的几个帖子收获比较大。刚开始做的时候就是简单的推荐,当一个用户在前几个月够买某个品牌超过2次的话,就把它推荐给用户,购买超过两次说明是 用户喜欢或周期性需求的品牌,可以根据时间过滤,周期性的购买必须推荐。简单的过滤正确率会大于7%,而查全率低于4%(根据自己的得分)。而只买一次的产品就没有这么强的推荐性,比如用户买了一个洗衣机、手机,用户在相当长时间内只会购买一次,我们不确定这种品牌是否推荐或者推荐相关配件。另一种是用户前几个月对某品牌有点击行为,我是否要推荐。然后我就想对用户进行聚类,这样就可以找出对一些品牌有关注的用户群,把这些高关注的品牌推荐给群里点击或购买过的用户。这样考虑主要依据是用户点击某个商品时会参照其他近似用户的推荐,比如我买某个东西会参照别人的评价(可以理解为别人对品牌的行为)。这样进行聚类然后预测推荐是有意义的。这里设置一下 四个权重构建用户-品牌向量进行聚类就行了。我基本上就做到这一步,两种方法并集提交F1最终6.39%。做了上面两点,我发现对数据的理解还是太少了。用上面的两种方法基本没有做好数据的关联和规则,很多参数都是自己手调。看了大神LR的方法,我就尝试了一下建立二分类的二元统计回归模型,前三个月的点击,购买,下个月是否购买构建三元组[点击,购买,是否买]。模型感觉很好,可以自己学习参数,测试了一下三元组的输出,很大很大一部分是[点击>0,购买>0, 0]。也就是说基本都是负样本。那也就是说前三个月点击购买行为对下个月的预测效果很差。然后我对给的数据用excel对品牌和用户分别排序看了一下大部分数据都是用户 点击购买某一品牌行为都发生在同一天或邻近几天内,这也就是说大部分的前几个月的数据对下个月的行为影响比较小。这也说明大部分前几个月行为对下面的一个月没有很强的预测性,回归方程的关联系数R较小。而正样本数据也很可能是经常购买的品牌决定的,第一种方法已经包含了这些品牌了。(比较拗口,我的理解可能也有误,都是根据数据做的一点推测)。这样的话,就得进行细粒度的划分,把时间周期缩短到2、3天或一周。我想建立短期的用户【点击、购买】的一元回归模型会更好一些。因为用户购买和最近的点击量关联性比较大,建立回归方程,学习参数,关联系数会比较大。因此从给定的数据对预测未来几天的购买行为比较有用,预测一个月就显得有点无力了(对召回率影响较大,我看到论坛有人对F1评分有疑异,这里同感)。我觉得这点较好的解释就是:我打算买某个东西,我还在一天或几天内多次点击这个品牌然后购买。大部分人想买东西都是查找相关的东西比较之后很快就会决定买或不买。所以我们买东西时,左右都会有同类品牌的热销产品推荐,我们很多时候都会点击看看。所以即时推荐是最有效的(周期性购买的第一种方法已经推荐了)。一定时间内点击次数多了我就认为你是想买。最后一点想法就是 建立品牌关系图。如果在一定时间内,如同一天,一个用户浏览了两个品牌,则认为这两个品牌是有关联的给一个评分,如果还有其他用户同一天浏览浏览着两个品牌,则认为这两个品牌关联性更高,增加评分。最后取出部分评分较高的关联,当用户点击或购买其中一个品牌时,给出另一个推荐(只是想法,具体实现需要太多比较和分析)。最重要的还是对数据所隐含的信息进行分析。以上想法毫无创新,都是在追赶大神们的脚步。个人觉得创新需要先精通已有的知识,自己能力有限,只能先不断积累。自己一个人爬代码,分析数据真是太累,不过还是学到很多,只是无缘在天池平台实际操作大数据了,可惜!想和大神组队,让大神罩着,但是大神可遇不可求,只能自己一个人默默继续努力学习了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。