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

这篇具有很好参考价值的文章主要介绍了利用weka进行数据挖掘——基于Apriori算法的关联规则挖掘实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,如果不熟悉weka的使用的话,可以从我的git仓库里面拉取一下weka的相关教程,仓库里面还有包含此次实例的所有资源

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

1. weka安装

我们可以在weka的官网上下载weka软件:weka官网

如果下载速度慢的话也可以直接从我的git仓库里面拉取这个软件,软件是win64位的weka-3-8-6

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

然后找到对应版本:

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

点击就可以开始下载了,一路安装就好了,因为weka是基于Java开发,所以如果你的电脑没有Java环境的话,可能在安装的过程中会提示你安装Java,选择安装即可。这里我们需要记住一下我们安装的路径,因为我们后面还需要进入到安装目录中来

2. 先分析一个Apriori算法的关联规则挖掘实例

先打开这个文档,这个文档里面有一个基于Apriori算法的关联规则挖掘实例

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

可以先看一遍,看能不能用笔自己算出来,计算的步骤可以看下笔者的上一篇文章:数据挖掘十大算法之Apriori算法

只有理解了Apriori算法,才能够自己编写代码进行实践,weka只是工具,帮助我们快速分析的工具,在分析之前我们需要先知道分析的步骤

这里我们需要对下表中数据进行数据挖掘,寻找这些疾病之间的关系:

病人记录号 疾病名称
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 心力衰竭、肾功能衰竭、糖尿病、尿毒症

我们先回顾一下进行关联分析的步骤:

  • Step1:令K = 1 ,计算单个项目的支持度,并筛选出频繁1项集(大于最小支持度 )

  • Step2:(从K=2开始)根据K-1项的频繁项目集生成候选K项目集,并进行预剪枝

  • Step3:由候选K项目集生成频繁K项集(筛选出满足最小支持度的k项集)

  • 重复步骤2和3,直到无法筛选出满足最小支持度的集合。(第一阶段结束)

  • Step4:将获得的最终的频繁K项集,依次取出。同时计算该次取出的这个K项集 的所有真子集,然后以排列组合的方式形成关联规则,并计算规则的置信度以及提升度,将符合要求的关联规则生成提出。(算法结束)

我们可以从上表中知道这些病在事物中出现的次数为:

心力衰竭 尿毒症 肾功能衰竭 糖尿病 其他疾病
12 15 16 16 3

我们先生成候选1项集,并计算其支持度,支持度(sup(x)) = 某个项集X在事物集中出现的次数 / 事物集中记录的总个数

项集 支持度
心力衰竭 12/25 = 0.48
尿毒症 15/25 = 0.6
肾功能衰竭 16 / 25 = 0.64
糖尿病 16 / 25 = 0.64
其他疾病 3 / 25 = 0.12

这里我们规定最小支持度(Support) = 40%,并筛选出频繁一项集(将不满足min_support的项集去除掉)

项集 支持度
心力衰竭 12/25 = 0.48
尿毒症 15/25 = 0.6
肾功能衰竭 16 / 25 = 0.64
糖尿病 16 / 25 = 0.64

现在我们有筛选出的频繁一项集经过排列组合生成候选二项集,共有C42 = 6个候选二项集

同样我们可以算出每个项集的支持度(过程与上面一样,这里不再赘述):

项集 支持度
心力衰竭、糖尿病 36%
心力衰竭、尿毒症 36%
心力衰竭、肾功能衰竭 32%
糖尿病、尿毒症 44%
糖尿病、肾功能衰竭 44%
尿毒症、肾功能衰竭 48%

筛选出频繁二项集

项集 支持度
糖尿病、尿毒症 44%
糖尿病、肾功能衰竭 44%
尿毒症、肾功能衰竭 48%

当然可以先进行预剪枝,但是这里预剪枝排除不了候选项集。同理我们可以求出频繁三项集

项集 支持度
糖尿病、尿毒症、肾功能衰竭 40%

最后一步我们需要求出不同项集之间的支持度(Support)和置信度(Confidence):

  • 🚩(支持度)Support=(AUB)count/n 即A和B同时出现的次数之和与事务数n之比。

  • 🚩(置信度)Confidence=(AUB)count/Acount 即A和B同时出现的次数之和与A出现次数之比。

我们可以计算出:

  • 糖尿病→尿毒症 Confidence=11/16=68.7%
  • 糖尿病→肾功能衰竭 Confidence=11/16=68.7%
  • 糖尿病→(尿毒症∩肾功能衰竭) Confidence=10/16=62.5%
  • (尿毒症∩糖尿病)→肾功能衰竭 Confidence=10/11=90%

为方便起见,将糖尿病标记为T,尿毒症标记为N,肾功能衰竭标记为S。总结出部分关联规则。

关联规则 支持度 置信度
T→N 44% 68.7%
T→S 44% 68.7%
T→(N∩S) 40% 62.5%
(T∩N)→S 40% 90.00%

根据以上关联规则可得出一下结论:

(1)糖尿病、尿毒症、肾功能衰竭三种疾病之间有一定的关联关系。

(2)对于同时患有糖尿病和尿毒症的44%的疾病人群而言,有68.7%的糖尿病患者会并发尿毒症。

(3)对于同时患有糖尿病和肾功能衰竭的44%的疾病人群而言,有68.7%的糖尿病患者会并发肾功能衰竭。

(4)有40%的患者同时患有糖尿病、尿毒症、肾功能衰竭,其中有62.5%的糖尿病患者会并发尿毒症和肾功能衰竭,有90%的糖尿病和尿毒症患者会并发肾功能衰竭。

3. 利用weka进行数据挖掘

如果数据量很大,例如数据库里有几十万条数据,那我们手算肯定是不行的,所以我们就需要借助weka这款软件来帮助我的进行数据分析和挖掘。weka的详细用法在上面已经给了下载的链接,可以看一下,接下来我们开始实战

首先我们要知道:WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件

我们可以在weka安装目录的data目录下找到一些默认的ARFF格式的文件

使用WEKA作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF格式的。

幸好,WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。

3.1 将数据转为ARFF格式

首先我先以Excel为例,说明如何获得CSV文件。然后我们将知道CSV文件如何转化成ARFF文件,毕竟后者才是WEKA支持得最好的文件格式。面对一个ARFF文件,我们仍有一些预处理要做,才能进行挖掘任务。

Excel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。

ARFF是表示属性关系文件格式的首字母缩略词。它是使用标题的CSV文件格式的扩展,提供有关列中数据类型的元数据。

我们以上面我们手算过的关联案例来演示,首先我们需要把数据整理到Excel表中,后期我们可以通过Java编写程序来自动化完成这些步骤。这里我们将患病标记为yes,不患病标记为no,得到整理好的Excel表,此表也可以从我提供的git仓库中拉取到

我们再填Excel表的时候要注意的是:

  • 不要包含中文
  • 不要用数字做标识,要用yes/no做标识

当然还有很多值得注意的点,请看参考文章的第一篇

填好的Excel长这样,这里我用行数代替患者编号了,因为编号没有什么意义

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

我们将此表另存为,保存格式选择CSV格式,不用管提示,一路确认就好

打开我们的CSV格式的文件,长这样

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

现在我们需要进一步转换格式:.csv -> .arff
这里有两种方式,将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。

  • 运行WEKA的主程序,出现GUI后可以点击下方按钮进入相应的模块。我们点击进入“Simple CLI”模块提供的命令行功能。在新窗口的最下方(上方是不能写字的)输入框写上
java weka.core.converters.CSVLoader 文件路径加上文件名.csv > 文件路径加上文件名.arff
  • 在WEKA 3.5中提供了一个“Arff Viewer”模块,我们可以用它打开一个CSV文件将进行浏览,然后另存为ARFF文件。
    进入“Exploer”模块,从上方的按钮中打开CSV文件然后另存为ARFF文件亦可

我这里采取命令行的形式,程序员吗,肯定还是喜欢用命令行一点

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

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

要转换的文件要带上地址,输出的文件也要带上,例如我的命令是:

java weka.core.converters.CSVLoader C:\Users\hw\Desktop\demo1001.csv > C:\Users\hw\Desktop\demo1001.arff

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

查看一下我们转换好的reff格式的文件,长这样:

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

3.2 利用weka进行分析

接下来我们就利用weka对这些数据进行分析,来查找这些数据之间的关系

那些面板的具体含义看一下我仓库里面WEKA中文详细教程ppt,写的很清楚

这里直接上手

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

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

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

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

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

当然weka的功能非常强大,我们这里仅仅这是做一个演示,来加深我们对Aprior算法的理解

上面提供的git仓库里面也有weka的API和一个demo,读者可以编写代码来对数据库的数据进行挖掘文章来源地址https://www.toymoban.com/news/detail-458018.html

4. 参考文章

  • weka的基本使用
  • 如何在Weka中加载CSV机器学习数据
  • 【数据挖掘 data mining】 Weka在数据挖掘中的运用(双语字幕)
  • 各大大学的数据挖掘、机器学习教学课件

到了这里,关于利用weka进行数据挖掘——基于Apriori算法的关联规则挖掘实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据挖掘-Weka的安装与使用

    目录 一、下载与安装  1.下载  2.安装  二、启动以及初步使用  三、其他教程  1.weka环境变量的配置  2.weka更详细的使用教程!

    2024年02月22日
    浏览(33)
  • 数据挖掘实验(Apriori,fpgrowth)

    Apriori:这里做了个小优化,比如 abcde 和 adcef 自连接出的新项集 abcdef ,可以用 abcde 的位置和 f 的位置取交集,这样第 n 项集的计算可以用 n-1 项集的信息和数字本身的位置信息计算出来,只需要保存第 n-1 项集的位置信息就可以提速 Fpgrowth的算法,我没有递归建树,只建了一

    2024年04月23日
    浏览(40)
  • 数据挖掘实验——Apriori算法实现

    关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。本实验主要目的是培养学生能够运用Apriori算法数据挖掘方法进行数据挖掘。 学习掌握数据挖掘方法中的Apriori算法。 就餐饮企业而

    2024年02月06日
    浏览(65)
  • 《数据挖掘基础》实验:Weka平台实现分类算法

    进一步理解分类算法(决策树、贝叶斯),利用weka实现数据集的分类处理,学会调整模型参数,以图或树的形式给出挖掘结果,并解释规则的含义。 随机选取数据集(UCI或data文件夹),完成以下内容:(用三种方法:KNN、C4.5算法、贝叶斯算法) 文件导入与编辑 参数设置说

    2024年02月05日
    浏览(62)
  • 数据挖掘十大算法之Apriori算法

    国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法: C4.5 , k-Means , SVM , Apriori , EM , PageRank , AdaBoost , kNN , Naive Bayes , CART 这十个算法涵盖了分类、聚类、统计学习、关联分析和链接分析等重要的数据挖掘研究和发展主题

    2024年02月04日
    浏览(47)
  • 数据挖掘|关联分析与Apriori算法详解

    关联规则分析(Association-rules Analysis)是数据挖掘领域的一个重要方法,它是以某种方式分析数据源,从数据样本集中发现一些潜在有用的信息和不同数据样本之间关系的过程。 关联是指在两个或多个变量之间存在某种规律性,但关联并不一定意味着因果关系。 关联规则是寻

    2024年04月10日
    浏览(54)
  • 数据挖掘-关联规则学习-Apriori算法原理

    比如你女朋友,低头玩手指+沉默,那大概率生气了,那这就是你总结出来的规则。啤酒与尿布的例子相信很多人都听说过吧,故事是这样的:在一家超市中,人们发现了一个特别有趣的现象,尿布与啤酒这两种风马牛不相及的商品居然摆在一起,但这一奇怪的举措居然使尿布

    2024年02月11日
    浏览(78)
  • 〖数据挖掘〗weka3.8.6的安装与使用

    目录 背景 一、安装 二、使用explorer 1. 介绍 2.打开自带的数据集(Preprocess) 1.打开步骤 2.查看属性和数据编辑 3.classify 4.Cluster 5.Associate 6.Select attributes 7.Visualize 待补充 Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费 的,非商业化软件,与之对

    2024年02月06日
    浏览(37)
  • 数据挖掘题目:根据规则模板和信息表找出R中的所有强关联规则,基于信息增益、利用判定树进行归纳分类,计算信息熵的代码

    S∈R,P(S,x )∧ Q(S,y )== Gpa(S,w ) [ s, c ] 其中,P,Q ∈{ Major, Status ,Age }. Major Status Age Gpa Count Arts Graduate Old Good 50 Arts Graduate Old Excellent 150 Arts Undergraduate Young Good 150 Appl_ science Undergraduate Young Excellent Science Undergraduate Young Good 100 解答: 样本总数为500,最小支持数为5

    2024年02月06日
    浏览(50)
  • 大数据关联规则挖掘:Apriori算法的深度探讨

    在本文中,我们深入探讨了Apriori算法的理论基础、核心概念及其在实际问题中的应用。文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用。此外,我们还针对算法在大数据环境下的性能局限提出了优化方案和扩展方法,最终以独到的技术洞见进行

    2024年01月24日
    浏览(265)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包