转自:http://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

每一行是一个用户的听歌记录,没有做去重处理(orange示例中也没有,是不是可能会增加歌曲的权重?不清楚,没有去阅读orange代码),注意文件名一定要以.basket 为扩展名,程序中文件地址是d:/datamining/sample.basket。

程序 :

Python代码  

  1. # 导入orange包
  2. import orange
  3. # 导入数据,注意不需要后缀
  4. data = orange.ExampleTable("d:/datamining/sample")
  5. # 挖掘关联规则,输入最低支持度、最低置信度、最大项集数
  6. rules = orange.AssociationRulesSparseInducer(data, support = 0.5, confidence = 0.6, maxItemSets = 1000000)
  7. #  打印出规则来
  8. for r in rules:
  9. print "%5.3f   %5.3f   %s" % (r.support, r.confidence, r)

是不是非常的简单?Orange实现的是Apriori算法 ,由于Apriori算法的问题,一旦数据量非常大,你就等着你的内存消耗光吧,反正我这边要是把所有数据都导入进去的话,笔记本1.5G的的内存根本不够用,可以试试FP-tree算法 ,我这边参考文章利用sql改良构建fp-tree之技术 ,已经把fp-tree的前缀路径都找出来了,需要的朋友可以私下找我要,由fp前缀路径挖频繁集需要用到递归,用sql去处理就非常费劲了,所以后面的算法还需要自己去探索。

居于关联规则的挖掘就告一段落,因为算法的计算复杂度非常高,效果倒不是太好(因为对于音乐,用户可能听多遍,这样打分就不一样,可能用关联规则去挖电影类的数据比较好,因为电影一般最多就看一遍),现在研究的是协同过滤 ,如果不出意外的话,一个改良版的PHP+Mysql实现slope one 算法过几天就要出来了,到时候我会开源出来的。

利用orange进行关联规则挖掘相关推荐

  1. 利用weka进行数据挖掘——基于Apriori算法的关联规则挖掘实例

    文章目录 1. weka安装 2. 先分析一个Apriori算法的关联规则挖掘实例 3. 利用weka进行数据挖掘 3.1 将数据转为ARFF格式 3.2 利用weka进行分析 4. 参考文章 首先, ...

  2. 关联规则挖掘算法_#数据挖掘初体验 使用weka做关联规则

    这学期选了数据挖掘课,前两节课刚好都没有去上课.照着教程练习一下课程内容... prepare 下载软件weka,根据系统选择版本,个人使用版本"a disk image for OS X ...

  3. 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)

    详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3) 上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程. 首先我们回顾一下要挖掘的特征项及样本空间: ...

  4. 数据分析与挖掘实战-中医证型关联规则挖掘

    中医证型关联规则挖掘 背景 显然,如今的中医治疗再度火了起来,归根到底的原因还是中医在某些疾病处理上具有天然优势. 而且,中医治疗没有西医治疗的很多毒副作用. "先证而治". 挖掘 ...

  5. 机器学习(十八)——关联规则挖掘

    关联规则挖掘 基本概念(续) 定义一:设I={i1,i2,-,im}I=\{i_1,i_2,\dots,i_m\},是m个不同的项目的集合,每个iki_k称为一个项目.项目的集合I称为项集.其元素的个 ...

  6. 数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

    在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方法 ...

  7. 【Python数据挖掘课程笔记】八.关联规则挖掘及Apriori实现购物推荐

    #2018-03-23 10:48:40 March Friday the 12 week, the 082 day SZ SSMR[Python数据挖掘课程笔记]八.关联规则挖掘及Apriori实现 ...

  8. sql server 关联_SQL Server中的关联规则挖掘

    sql server 关联 Association Rule Mining in SQL Server is the next article in our data mining article s ...

  9. 关联规则挖掘算法_关联规则的挖掘与应用——Apriori和CBA算法

    文|光大科技大数据部  魏乐 卢格润 1  关联规则 1.1 关联规则基本概念 1.2 Apriori算法基本思路 2  关联分类 2.1  CBA关联分类算法思路 2.2  CBA算法实现 总结 关 ...

最新文章

  1. 前后端分离的探索(一)
  2. SDUT_2118 数据结构实验之链表三:链表的逆置
  3. Linux 永久修改主机名hostname
  4. 什么是软件危机?产生原因?如何解决?
  5. 晚上不睡觉,搞的一个例子《JS实现动画》
  6. 作者:刘新海(1976-),男,中国人民银行征信中心副研究员
  7. Java基础常见的面试题
  8. 郎朗和机器人合奏_从世界机器人大会看新中国70年科技发展成就
  9. 解决ubuntu中出现:dpkg: error processing package install-info
  10. php中%3c w() %3e,DedeCMS V5.7 SP2后台存在代码执行漏洞
  11. 精通版本之Subversion
  12. 《流畅的Python》读书笔记——Python文本和字节序列
  13. 软件的生命周期分为哪几个阶段
  14. Java实现数学概率C ( a , b )
  15. 写在微信小程序一周年
  16. Unity3D项目升级URP
  17. 牛客IOI周赛27-普及组
  18. collections库
  19. sanity测试_使用Sanity CLI可以做的5件事
  20. 数字电路基础知识——组合逻辑电路(奇偶校验电路、数据比较器的设计)

热门文章

  1. RxJava简单入门
  2. vmware7.1汉化中文版下载地址+序列号!
  3. 虚拟机安装红帽liunx
  4. VMware 10设备CentOs 6.5
  5. 自学Java到底怎样才能入门?
  6. PostgreSQL日期和时间操作大全
  7. 2022年全球市场抹茶巧克力总体规模、主要生产商、主要地区、产品和应用细分研究报告
  8. 软件巨头面临低价或免费软件的挑战
  9. 圆桌派佛系中的bug
  10. 3U 轨道交通车载工业级M12 PoE交换机,防护等级IP66