数据挖掘第一次尝试(致即将逝世的研一)

来源:互联网 发布:网银怎么用淘宝买东西 编辑:程序博客网 时间:2024/04/29 08:20

         最近参加阿里大数据比赛,大致是给了4个月数据,包括用户的四种行为(点击、购买、收藏、加购物车),来预测第五个月用户的购买情况,主要用precision(准确率)和recall(召回率),最后用F1来拟合二者。很可惜,没有作出任何成果,可能是因为参赛太晚,可能是对于数据挖掘没有经验,更可能是面对大数据不会处理(其实也不能算大数据,就18000多条记录),我不是一个喜欢找借口做事情的人,不过,总之没有处理数据的经验。

        当知道要开始做数据处理的时候,第一反应就是把数据把数据导入到数据库,因为有sql语句做支撑,处理数据会很方便。后来才知道,一开始就错了,对于大数据的处理,简单的操作还行,复杂一点就会变的很慢,慢得让人受不了。(记得计算两个物品得相似性的时候,我还是在服务器上去配了环境,虽说服务器不算太牛逼,也要跑十天左右,8分钟计算1万次)所以,以后一定要记住这个。相反,matlab的计算能力毋庸置疑,所以有时间一定要多研究matlab。当然,也可以理解成自己的算法不够高效,那么,总而言之,能力不足

       这次的推荐系统,准备用CF(Colaborative Filtering)算法,具体分为UserCF和itemCF。不过,确实总感觉itemCF的各种要比前者有优势,所以采用了这种方式,可是谁知道就在第一步,求物品的相似矩阵就算了很多天,而且还没有用最优化的算法,然后时间就要截至了。主要参考的是《推荐系统实践》,后面会附上itemCF的相似度计算,转载人家的。在这次比赛中还学到了,怎么用python处理大文件,就是file.readlines(buffsize),就是设置一个大小缓冲区,一次只读那么一些数据。

      以后肯定会有很多data analyze的机会,一定要try best,避免这次毫无成果

以下是转载http://www.taobaotest.com/blogs/2447,供以后学习

个性化推荐算法及算法测试方法系列分享(一)--itemCF算法介绍

minyi 发表于:2013-07-04 浏览:64次 评论:0次 所属分类:测试理论

      随着大数据的广泛应用,淘宝个性化的业务场景越来越多,数据应用测试团队将通过三次博客为大家分享以下内容:

      <一>基于物品的协同过滤itemCF算法介绍

      <二>mapreduce开发入门--基于MR的itemCF算法开发

      <三>itemCF算法测试方法和测试过程

基于物品的协同过滤itemCF算法介绍

      随着互联网上信息资源的爆炸性增长,用户从互联网上获取自己感兴趣资源的难度也相应的增加。如何针对不同用户挖掘互联网上用户可能的感兴趣信息成了一个研究热点,从而个性化推荐系统应运而生。基于物品的协同过滤(item-basedcollaborative filtering)算法是目前业界应用最多的算法。无论是亚马逊网、HULU网、YouTube,其推荐算法的基础都是该算法。

基于物品的协同过滤算法主要分为两步。

1.        计算物品之间的相似度。

2.        根据物品的相似度和用户的历史行为给用户生成推荐列表。

公式演变:

公式A:wij=

分母|N(i)|是喜欢物品i的用户数,分子|N(i) (j)|是同时喜欢物品i和物品j的用户数。

缺点:如果物品j很热门,很多人喜欢,那么  wij 就会很大,接近1。因此,该公式会造成任何物品和热门物品的相似度都有很大的相似度。为了避免推荐出热门物品的问题。优化出公式B(见图1)。

公式B:wij=

缺点:假如,有一个非常活跃的用户买了非常多的书,但是并非出于自身的兴趣,而且这些书覆盖率当当网的很多领域,学者认为活跃用户对物品相似度的贡献应该小于不活跃的用户,应该对活跃用户做软性的惩罚。提出了公式C。

公式C:wij=

N(u)是用户喜欢的物品集合。


0 0
原创粉丝点击