我是ML的新人,经验不足,恳请给位指点。
我先说一下我的思路,各位看看有没有问题:
总的思路是通过公式: w*X = Y 来进行预测, X 是特征矩阵。 Y是列向量,值为 0 或1, 每个值代表一个(user id, item id) 对,user 在某天购买了item 为1, 否则为0. 目的是求出 w。
我是用 11-17号 到 12-17号 的用户行为记录生成X,用12-18号的购买记录生成 Y。 Y中的正负样本比率为1:10, user 在12-18 号购买了item 作为正样本,然后根据item 的流行度进行采样得到负样本, 使用 sklearn中的LogisticRegression算法得到w, 最后再根据 11-17号到12-18号的用户行为记录生成X2, w*X2 得到预测结果,我采用 0.6 作为置信度生成最终的预测结果。
但是, 准确率为 0!!
一个都不对!!
我又尝试使用随机森林算法,但是准确率还是 0!!
我线下自测是用2000个用户的数据预测12-18号的购买行为,得到的混淆矩阵相当不错,预测的f1值也在10%左右,在全数据集上我也跑过, f1也在10%左右,但是对12-19的预测结果就是0!!
我看网上其他赛友的心得,有的甚至只用几条规则就能得到不错的分数,但我这里一直是0。 一开始我以为是负采样算法有问题,但是换了算法还是为0, 我又尝试过不同的特征,但没有任何进展,这几天想得我睡不着觉,我实在找不出问题出在哪里,恳请各位高手指点迷津。
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。