数据挖掘系列(4)使用weka做关联规则挖掘

利用weka进行数据挖掘——基于Apriori算法的关联规则挖掘实例 文章目录1. weka安装2. 先分析一个Apriori算法的关联规则挖掘实例3. 利用weka进行数据挖掘3.1 将数据转为ARFF格式3.2 利用weka进行分析4. 参考文章 首先,如果不熟悉weka的使用的话,可以从我的git仓库里面拉取一下weka的相关教程,仓库里面还有包含此次实例的所有资源 1. weka安装 我们可以在weka的官网上下载weka软件:weka官网 如果下载速度慢的话也可以直接从我的git仓库里面拉取这个软件,软件是win64位的weka-3-8-6 然后找到对应版本: 阅读详情

前面几篇介绍了关联规则的一些基本概念和两个基本算法,但实际在商业应用中,写算法反而比较少,理解数据,把握数据,利用工具才是重要的,前面的基础篇是对算法的理解,这篇将介绍开源利用数据挖掘工具weka进行管理规则挖掘。

weka数据集格式arff

  arff标准数据集简介

  weka的数据文件后缀为arff(Attribute-Relation File Format,即属性关系文件格式),arff文件分为注释、关系名、属性名、数据域几大部分,注释用百分号开头%,关系名用@relation申明,属性用@attribute什么,数据域用@data开头,看这个示例数据集(安装weka后,可在weka的安装目录/data下找到weather.numeric.arff):  

复制代码
%weather dataset
@relation weather

@attribute outlook {sunny, overcast, rainy}
@attribute temperature numeric
@attribute humidity numeric
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}

@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
复制代码

  当数据是数值型,在属性名的后面加numeric,如果是离散值(枚举值),就用一个大括号将值域列出来。@data下一行后为数据记录,数据为矩阵形式,即每一个的数据元素个数相等,若有缺失值,就用问号?表示。

  arff稀疏数据集   

  我们做关联规则挖掘,比如购物篮分析,我们的购物清单数据肯定是相当稀疏的,超市的商品种类有上10000种,而每个人买东西只会买几种商品,这样如果用矩阵形式表示数据显然浪费了很多的存储空间,我们需要用稀疏数据表示,看我们的购物清单示例(basket.txt):  

复制代码
freshmeat dairy confectionery
freshmeat    confectionery
cannedveg    frozenmeal    beer    fish
dairy    wine
freshmeat    wine    fish
fruitveg    softdrink
beer
fruitveg    frozenmeal
fruitveg    fish
fruitveg    freshmeat    dairy    cannedveg    wine    fish
fruitveg    fish
dairy    cannedmeat    frozenmeal    fish
复制代码

   数据集的每一行表示一个去重后的购物清单,进行关联规则挖掘时,我们可以先把商品名字映射为id号,挖掘的过程只有id号就是了,到规则挖掘出来之后再转回商品名就是了,retail.txt是一个转化为id号的零售数据集,数据集的前面几行如下:  

复制代码
0    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    26    27    28   
30    31    32
33    34    35
36    37    38    39    40    41    42    43    44    45    46
38    39    47    48
38    39    48    49    50    51    52    53    54    55    56    57    58
32    41    59    60    61    62
3    39    48
63    64    65    66    67    68
32    69
复制代码

   这个数据集的商品有16469个,一个购物的商品数目远少于商品中数目,因此要用稀疏数据表,weka支持稀疏数据表示,但我在运用apriori算法时有问题,先看一下weka的稀疏数据要求:稀疏数据和标准数据的其他部分都一样,唯一不同就是@data后的数据记录,示例如下(basket.arff): 

复制代码
@relation 'basket'
@attribute fruitveg {F, T}
@attribute freshmeat {F, T}
@attribute dairy {F, T}
@attribute cannedveg {F, T}
@attribute cannedmeat {F, T}
@attribute frozenmeal {F, T}
@attribute beer {F, T}
@attribute wine {F, T}
@attribute softdrink {F, T}
@attribute fish {F, T}
@attribute confectionery {F, T}
@data
{1 T, 2 T, 10 T}
{1 T, 10 T}
{3 T, 5 T, 6 T, 9 T}
{2 T, 7 T}
{1 T, 7 T, 9 T}
{0 T, 8 T}
{6 T}
{0 T, 5 T}
{0 T, 9 T}
{0 T, 1 T, 2 T, 3 T, 7 T, 9 T}
{0 T, 9 T}
{2 T, 4 T, 5 T, 9 T}
复制代码

   可以看到

freshmeat dairy confectionery
freshmeat    confectionery

   表示为了:

{1 T, 2 T, 10 T}
{1 T, 10 T

  稀疏数据的表示格式为:{<属性列号><空格><值>,...,<属性列号><空格><值>},注意每条记录要用大括号,属性列号不是id号,属性列号是从0开始的,即第一个@attribute 后面的属性是第0个属性,T表示数据存在。

规则挖取

  我们先用标准数据集normalBasket.arff[1]试一下,weka的apriori算法和FPGrowth算法。

  1、安装好weka后,打开选择Explorer

  2、打开文件

  

  3、选择关联规则挖掘,选择算法

  

  4、设置参数

 

  参数主要是选择支持度(lowerBoundMinSupport),规则评价机制metriType(见上一篇)及对应的最小值,参数设置说明如下[2]:

复制代码
1.        car 如果设为真,则会挖掘类关联规则而不是全局关联规则。
2.        classindex 类属性索引。如果设置为-1,最后的属性被当做类属性。
3.        delta 以此数值为迭代递减单位。不断减小支持度直至达到最小支持度或产生了满足数量要求的规则。
4.        lowerBoundMinSupport 最小支持度下界。
5.        metricType 度量类型。设置对规则进行排序的度量依据。可以是:置信度(类关联规则只能用置信度挖掘),提升度(lift),杠杆率(leverage),确信度(conviction)。
在 Weka中设置了几个类似置信度(confidence)的度量来衡量规则的关联程度,它们分别是:
a)        Lift : P(A,B)/(P(A)P(B)) Lift=1时表示A和B独立。这个数越大(>1),越表明A和B存在于一个购物篮中不是偶然现象,有较强的关联度.
b)        Leverage :P(A,B)-P(A)P(B)Leverage=0时A和B独立,Leverage越大A和B的关系越密切
c)        Conviction:P(A)P(!B)/P(A,!B) (!B表示B没有发生) Conviction也是用来衡量A和B的独立性。从它和lift的关系(对B取反,代入Lift公式后求倒数)可以看出,这个值越大, A、B越关联。
6.        minMtric 度量的最小值。
7.        numRules 要发现的规则数。
8.        outputItemSets 如果设置为真,会在结果中输出项集。
9.        removeAllMissingCols 移除全部为缺省值的列。

10.    significanceLevel 重要程度。重要性测试(仅用于置信度)。

11.    upperBoundMinSupport 最小支持度上界。 从这个值开始迭代减小最小支持度。

12.    verbose 如果设置为真,则算法会以冗余模式运行。
复制代码

 

设置好参数后点击start运行可以看到Apriori的运行结果:

  FPGrowth运行的结果是一样的:

  每条规则都带有出现次数、自信度、相关度等数值。

  下面测一个大一点的数据集retail.arff[1](retail.arff是由retail.txt转化而来,为了不造成误解,我在id好前加了一个"I",比如2变为I2),这个数据用的稀疏数据表示方法,数据记录有88162条,用Apriori算法在我的2G电脑上跑不出来,直接内存100%,用FPGrowth可以轻松求出,看一下运行结果:  

  其他参数可以自己调整比较。

参考文献:

  [1].本文用的所有数据集basket.txt,basket.arff,normalBasket.arff,retail.txt,retail.arff都在这里可下载.

  [2].weka Apriori算法实例操作详解:http://blog.youkuaiyun.com/haosijia929/article/details/5596939

数据分析机器学习实战项目一:关联规则 1、知识点介绍 明确几个概念: 事务、项、项集合 X==>Y **支持度:**一个项集或者规则在所有事务中出现的频率,σ(X):表示项集X的支持度计数 **置信度:**确定Y在包含X的事务中出现的频繁程度。c(X → Y) = σ(X∪Y)/σ(X) 举个例子: (X , Y)==>Z : 支持度:交易中包含{X 、 Y 、 Z}的可能性 置信度:包含{X 、 Y}的交易中也包含Z的条件概率 若关联规则X->Y的支持度和置信度分别大于或等于用户指定的最小支持率minsupport和最小置信 阅读详情

相关推荐

一款数据挖掘软件——WEKA

Weka是新西兰怀卡托大学用Java开发的数据挖掘著名开源软件,该系统自1993年开始由新西兰政府资助,至今已经历了20年的发展,其功能已经十分强大和成熟。Weka作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。如果想自己实现数据挖掘算法的话,可以看一看WEKA的接口文档。在WEKA中集成自己的算法甚。...

登登的博客 是温馨的小屋。 1万+

weka实战004:fp-growth关联规则算法

apriori算法的计算量太大,如果数据集略大一些,会比较慢,非常容易内存溢出。 我们可以算一下复杂度:假设样本数有N个,样本属性为M个,每个样本属性平均有K个nominal值。 1. 计算一项频繁集的时间复杂度是O(N*M*K)。 2. 假设具有最小支持度的频繁项是q个,根据它们则依次生成一项频繁集,二项频繁集,....,r项频繁集合,它们的元素数量分别是:c(q, 1), c(q

大数据和机器学习研究 6973

【数据挖掘软件 weka】第一部分 开始使用weka

https://www.youtube.com/watch?v=LcHw2ph6bss&list=PLm4W7_iX_v4NqPUjceOGd-OKNVO4c_cPD 这是由新西兰Waikato大学提供,关于如何使用weka进行数据挖掘的在线学习课程。

问就ycy的博客 1万+

《数据挖掘基础》实验:Weka平台实现关联规则挖掘

Weka平台实现关联规则挖掘:进一步理解关联规则算法(Apriori算法、FP-tree算法),利用weka实现数据集的挖掘处理,学会调整模型参数,读懂挖掘规则,解释规则的含义

lazyn的博客 1万+

数据挖掘—Weka 的数据库挖掘及数据预处理

基于 Weka 的数据库挖掘及数据预处理 ❤️‍大家好,我是java厂长,今天带你们了走进数据挖掘的世界????????!❤️‍ 关于作者 作者介绍 ???? 博客主页:作者主页 ???? 简介:JAVA领域优质创作者????、一名在校大三学生????、在校期间参加各种省赛、国赛,斩获一系列荣誉????。 ???? 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿????‍????。 文章目录基于 Weka 的数据库挖掘及数据预处理关于作者1、双击下面的

Java厂长 9598

基于Weka的典型数据挖掘应用

实验目标 理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。 实验内容 下载并安装Java环境(JDK 7.0 64位)。 下载并安装Weka 3.7版。 基于Weka的数据分类。 基于Weka的数据回归。 基于Weka的数据聚类。 基于Weka的关联规则分析。 实验步骤 下载并安装Java环境(...

赴前尘 4531

〖数据挖掘〗weka3.8.6的安装与使用

Preprocess:预处理Classify:分类Cluster:聚类Associate:关联Select attributes:选择属性Visualize:可视化open file:从文件中打开一组实例open URL:从URL中打开一组实例open DB:从数据库中打开一组实例generate:生成人工数据undo:撤销对数据集最后更改edit:在查看器中打开当前数据集进行编辑save:将工作关系保存到文件中属性ALL:全选None:全不选。

码银的博客 8869

数据挖掘(机器学习)课程报告及weka源码及相关论文

蒋老师课程的报告。其中有四个改进思路。 1.本报告内容系在蒋良孝老师课程的指导下,通过查阅论文和自行思考以及实验验证后撰写的; 2.源码部分位于weka-src\src\main\java\weka\classifiers\wangliyuID3,其中有报告中的前三个的源码,可以参考,敬请指教; 3.上传的目的是为了给有困难的同学一点提示。

WEKA使用教程(经典教程转载)

WEKA使用教程 目录 1. 简介 2. 数据格式 3.数据准备 4. 关联规则(购物篮分析) 5. 分类与回归 6. 聚类分析 1. 简介 WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到。同时weka也

Coding for Dreams 24万+

Windows环境下ABAQUS、Fortran 编译器及Visual Studio的安装和关联

点击Continue,在随后的弹窗中勾选accept,并点击Customize(注意,在接下来的安装图片中,显示的版本号是2024.2,图片来自于一次失败的安装,懒得再截图了,步骤毫无区别,请见谅)。在下一步中,保持默认选项,之后软件会自动关联到刚才安装到visual studio,随后下一步进行安装(如果电脑中已经安装有其他版本的visual studio,则只保留2022)。在随后的弹窗中,根据指示找到。以防万一,尽量暂时退出所有杀毒软件,关闭防火墙,一般不会有影响,为确保万无一失,可以执行此步。

samurai12的博客 9962

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6217

用WEKA软件进行Apriori算法数据挖掘测试最详细清楚解释

用WEKA软件进行Apriori算法数据挖掘测试最详细清楚解释 一、Apriori算法简介 “Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。而且算法已经被广泛的应用到商业、网络安全等各个领域。 算法简介 Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类...

rothschild666的博客 1万+

海康/大华设备如何接入GB28181平台?最新2022版互联避坑指南

本文详细解析了海康/大华设备接入GB28181平台的最新2022版互联避坑指南,涵盖参数配置、实时视音频点播协议交互及典型故障排查。重点介绍了GB/T28181-2022标准下的设备编码规范、SIP服务器配置及媒体流保活机制,帮助工程团队高效解决设备离线和媒体流中断等问题。

weixin_30733003的博客 687

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

这学期选了数据挖掘课,前两节课刚好都没有去上课。照着教程练习一下课程内容...prepare下载软件weka,根据系统选择版本,个人使用版本“a disk image for OS X that contains a Mac application including Oracle's Java 1.8 JVM”Data Mining with Open Source Machine Learni...

weixin_39571179的博客 2621

通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题

ZC序列的参数未知。但是,使用第一个或第二个零相关序列对每个OFDM符号进行相位调整,对于直接相邻于使用过的零相关序列的时间上的OFDM符号工作得很好,但对其它符号效果不佳。由于符号的顺序没有改变,而9 OFDM符号情况下的第一个OFDM符号没有用处,因此本存储库中的脚本对待所有突发都是有9个OFDM符号的,并且不对第一个OFDM符号做任何处理。棘手的地方在于需要生成比数据载波数量(始终为600)多1个的零相关序列,零化中间元素,将生成的样本映射到FFT的中心(采样率决定bin的数量),然后计算IFFT。

leegang12的专栏 1620

【HALCON 25.11 + C#】 01:2026年工业机器视觉实战详解(从入门到精通)

2026年机器视觉市场规模将突破230亿美元,HALCON 25.11的革命性更新与C#的工业集成优势形成黄金技术栈。本文作为付费专栏开篇序章,聚焦“为什么现在必须学25.11+C#”的核心问题,通过真实工业案例、五项核心技术突破、联合编程架构优势及30篇系统学习路线,全方位论证其投资价值。读者将掌握持续学习、深度OCR加速等关键技能,获得可直接上产线的工业级代码资产与架构设计思维,解决柔性生产、边缘部署等核心痛点,成为具备技术溢价的机器视觉工程师。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1225

数据挖掘入门实验(weka)

实验1:基于Weka的典型数据挖掘应用学号: 姓名: XXXX 专业: 计算机系统结构 班级: 实验目标理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。实验内容下载并安装Java环境(JDK 7.0 64位)。下载并安装Weka 3.7版。基于Weka的数据分类。基于Weka的数据回归。基于Weka的数据聚类...

m0_37954431的博客 8395

29、集成电路测试技术解析

本文深入解析了集成电路测试技术,涵盖定制电路测试资源与策略、混合模拟/数字电路测试方法、数字测试模式生成难点与解决方案,以及可控性和可观测性的核心概念。同时详细讨论了固定故障、桥接故障和开路故障等主要故障模型及其检测方法。在测试技术的综合应用与优化方面,提出了合理配置测试资源、优化测试模式和设计测试流程的策略。最后展望了测试技术的发展趋势,包括集成化测试、自动化测试和智能化测试。通过全面掌握这些测试技术,可以有效提高集成电路的质量和可靠性,推动集成电路产业的发展。

work3的博客 205

使用Weka进行数据挖掘(Weka教程七)Weka分类/预测模型构建与评价

如何使用Weka进行数据分类,模型学习和构建,模型评价与预测

乔阳的博客 2万+

蓝牙调试抓包工具--nRF Connect移动端 使用详细总结

摘要: nRF Connect移动端是一款功能全面的蓝牙低功耗(BLE)调试工具,支持设备扫描、多设备连接、服务/特征值查看及数据读写操作。核心功能包括实时数据通信(读取/写入/通知)、设备固件更新(DFU)以及高级工具如自动化测试和信号分析。兼容Android 4.3+和iOS设备,适用于开发调试(如ESP32/nRF52)、设备管理和数据分析。需注意设备兼容性问题(如旧安卓设备可能需关闭连续扫描),并确保数据类型匹配。配套工具链包括nRF Toolbox和nRF Connect SDK,是BLE开发的必

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2384

[VT虚拟化驱动] 定义类及初始化内存区域

文章目录前言框架整体流程图类的定义初始化内存区域本章代码 前言 为什么不用C而用C++呢? 在单核的情况下,用C还比较方便些,但在多核的情况下,每个核心都需要分配有对应的一个VMX区域,VMCS区域,MsrBitmap区域和栈空间,以及对应的初始化函数,如果使用安装DPC回调的方式在多核情况下进行初始化,只使用同一个初始化函数,当函数被多个CPU核心同时执行,会出现很多意想不到的的错误,我用自旋锁试了一下是依照各种错误,所以果断用C++了,把这些每个核心都需要一份的封装到一个类里 框架整体流程图 类的定义

吾无法无天的博客 1836

数据挖掘课程设计——基于关联规则挖掘的美国国会议员投票行为分析(使用weka)

使用关联规则挖掘这一数据挖掘技术来分析美国国会议员投票行为,揭示出影响议员投票结果的因素和规律。

Moonee_ 3590

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WEKA:让数据挖掘变得简单有趣

数据挖掘与机器学习 WEKA应用技术与实践》这本书是自己认为国内讲数据挖掘算法并用Weka平台去实现相关算法的,比较不错的书籍。

qq_45714037的博客 2278

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 数据挖掘系列(3)--关联规则评价
下一篇: 数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
youbo_sun
博客等级 码龄12年 20粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值