orange橘子官网中文,orange橘子官网下载

  orange橘子官网中文,orange橘子官网下载

  来自:3358 www . fuchaoqun . com/2008/08/data-mining-with-python-orange-association _ rule/

  最近趁着项目间隙,折腾了一会儿数据挖掘。在同事的帮助下,我对新浪音乐用户的收听记录做了一个简单的挖掘,希望能根据用户之前的收听记录推荐其他用户可能感兴趣的歌曲。

  Orange:

  一个模块化的C数据挖掘包,提供了python接口(好像只提供了python接口)。网址是http://www.ailab.si/orange/.

  关联分析:

  我在这里使用类似的购物篮分析。每个用户的监听id都是一个事务。不熟悉相关性分析的同学可以搜索一些相关资料。

  数据准备:

  简单地清理一些“脏”数据(逻辑上有问题的数据,例如,一个用户在5s内听了200首歌曲),得到类似于下面的数据

  15615,355029,750367,762147,803787,805014,999712,999712,999712,1013641,1024215,1028429

  871029,952779,962769

  1023040,1024077,1024215,1025600

  757946,873801,873801,873801

  862257,873479

  286056,286056,286056,286056,286056,286056,286056,286056,286056,286056

  873801,873801,873801,873801,873801,947750,947750

  473221,473537,504206,504206,504206,504206,504206,504206

  947750,1005430,1005430

  974748,1024215

  873479,873479,873801,873801,947750,965748,999721,1024215,1024215,1024215,1024215,1024215

  873801,873801,873801

  每一行都是用户听歌的记录,没有去重(橙色的例子里也没有,是不是可以增加歌曲的权重?不知道,没看橙码)。注意文件名的扩展名必须是.basket,程序中的文件地址是D:/datamining/sample.basket。

  程序:

  Python代码

  #导入orange包importorange#导入数据,注意后缀data=orange . example table( d:/data mining/sample )#不需要挖掘关联规则,输入最小支持度、最小置信度和最大项集规则=orange . association rules sparse inducer(data,support=0.5,confidence=0.6,MaxItemSets=1000000)# #打印出规则到forrinrules: 010

  是不是很简单?Orange实现Apriori算法。因为Apriori算法的问题,一旦数据量非常大,就等着内存用完吧。反正我这里的数据全部导入的话,笔记本1.5G的内存根本不够用。可以试试FP-tree算法。我在这里参考文章,提高使用sql构建fp-tree的技术。我把fp-tree的前缀路径都找出来了,有需要的朋友可以私信问我。从fp前缀路径中挖掘频繁集需要递归,用sql处理非常费力,后面的算法需要自己摸索。

  关联规则的挖掘已经告一段落,因为算法的计算复杂度很高,效果也不是很好(因为用户可能听了很多次音乐,所以评分不一样,最好还是用关联规则来挖掘电影的数据,因为电影一般最多看一次)。现在,我们正在研究协同过滤。不出意外的话,过几天slope one算法的PHP Mysql实现的改进版就要出来了,到时候我会开源的。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: