转自: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。
程序
:
# 导入orange包
import orange
# 导入数据,注意不需要后缀
data = orange.ExampleTable("d:/datamining/sample")
# 挖掘关联规则,输入最低支持度、最低置信度、最大项集数
rules = orange.AssociationRulesSparseInducer(data, support = 0.5, confidence = 0.6, maxItemSets = 1000000)
# 打印出规则来
for r in rules:
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
算法过几天就要出来了,到时候我会开源出来的。
分享到:
相关推荐
根据Orange3包对数据进行关联规则分析,生成“规则”,“项集出现的数目”,“置信度”,“覆盖度”,“力度”,“提升度”,“利用度”记录并返回到excel表中。
Orange 由斯洛文尼亚大学计算与信息学系的生物信息实验室 BioLab 进行开发,是一款免费开源的数据挖掘软件,可在官网下载,支持 Windows, Linux 和 MacOS。 Orange 由 C++ 和 Python 开发,包含了一系列的可视化...
国外开发者用Python实现的、具有GUI的开源数据挖掘和可视化分析平台;其实现算法和库可供研究和使用
Orange3生存分析附加的数据挖掘套件。 安装 通过选项-加载项从Orange加载项安装程序进行安装。 要从源代码运行安装加载项 pip install . 要向Orange注册此附加组件,但将代码保留在开发目录中(请勿将其复制到...
Orange3-Network是数据挖掘软件包的附加组件。 它提供了网络可视化和网络分析工具。 可在以下位置找到文档: : 安装 通过选项-加载项从Orange加载项安装程序进行安装。 要使用pip安装附加组件 pip install ...
Orange3 Text扩展了 (数据挖掘软件包),具有文本挖掘的常用功能。 它提供对公开可用数据的访问,例如《纽约时报》,Twitter,Wikipedia和PubMed。 此外,它还提供了用于预处理,构造向量空间(如单词袋,主题建模...
orange中文版
orange3 数据可视化软件python3.10,winx64.whl版 3.32
MELIS 用户编程手册 Orange 编程指南 @ All winner 平台,是基于 Melis 操作系统之上的一套 GUI 系统,该系统支持多任务和多图层操作, 允许在多个图层上面创建窗口,提供完善的异步和同步窗口消息通讯机制,提供点...
orange城建地产项目分析.pptx
Orange3-教育用于机器学习和数据挖掘的教育部件。 执照:CC-BY-NC-3.0 为了在商业上使用此软件包,请获得许可证。 Educational Add-on中的小部件演示了几个关键的数据挖掘和机器学习过程。 这些小部件对初学者很有用...
cycleGAN训练数据集,苹果橙子数据集 APPLE 2 ORANGE。cycleGAN训练数据集,苹果橙子数据集 APPLE 2 ORANGE。cycleGAN训练数据集,苹果橙子数据集 APPLE 2 ORANGE。cycleGAN训练数据集,苹果橙子数据集 APPLE 2 ...
Linux Orange3-Associate-1.1.5.tar 安装包!
Orange整体架构.pdf
OpenWrt-Lede_18.06.02 OrangePi Zero wifi-xr819 and soc-audio enabled! OrangePi Zero 安装OpenWrt 能够实现wifi和播放音乐。 详细安装和操作步骤: First Run boot-config: ...
包括bochs虚拟机,nasm编译器,bochs安装源码,winimage软件,orange环境搭建步骤。 验证均可用。
Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了 Python以进行脚本开发。它包含了完整的一系列的组件以进行...
OrangePi_zero_H2_用户手册_v0.1 ...Orange Pi Zero 不仅仅是一款消费品,同时也是给任何想用技术来进行创作创新的人设计的。它是一款非常简单、有趣、实用的工具,你可以用它去打造你身边的世界。
用WPF(Windows Presentation Framework)的项目,需要....软件工程课程的课程实验项目,课程任务管理系统Orange。项目利用了WPF的特性做出动画、多媒体效果,并使用了数据绑定、事件等。代码并不复杂,但界面效果很好。