数据挖掘:关联规则

数据挖掘:关联规则

时间限制: 5秒  内存限制: 64M

数据挖掘有很广泛的应用领域。其中,最广为人知且易于理解的就是关联规则了。所谓关联规则,有时也称之为购物篮分析 (market basket analysis),其主要目的是在一个数据集中找出不同项之间的关系。例如,购买鞋的顾客,有10%的可能也会买袜子;60%的买面包的顾客,也会买牛奶。一个有名的例子就是"尿布和啤酒"的故事了。

美国沃尔玛连锁店超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售,表面上看似毫不相关的商品。但是这个奇怪的举措却使尿布和啤酒的销量都增加了。有人分析,原因可能是美国的妇女们经常会嘱咐她们的丈夫下班以后要为孩子买尿布。而丈夫在买完尿布之后又要顺手买回自己爱喝的啤酒,因此啤酒和尿布在一起购买的机会就变得很大了。沃尔玛是如何发现了尿布和啤酒之间的关系呢?正是数据挖掘的关联规则思想。商家请人对超市一年多原始交易数字进行了详细的分析,分析的结果揭示了这对神奇的组合。

关联规则在其它应用场合也有很好的应用。例如:在商业销售上,关联规则可用于交叉销售,以得到更大的收入;在保险业务方面,如果出现了不常见的索赔要求组合,则可能为欺诈,需要作进一步的调查。在医疗方面,可找出可能的治疗组合;在银行方面,对顾客进行分析,可以推荐感兴趣的服务等等。

发现关联规则的算法目前已经有很多种,其中最基本的是Apriori算法。由Rakesh Agrawal 在 1994 年提出的,详细的介绍参考这里《Fast Algorithms for Mining Association Rules》。


 

简单地说,关联规则的目标是发现出现频度较高的组合。比如假设上图中,Database TDB中A、B、C、D、E分别代表不同的商品, Tid=10的用户同时购买了A,C,D三种商品,Tid=20的用户同时购买了B,C,E三种商品,等等。

 

该算法寻找所有出现次数超过支持度的子项。所谓支持度,就是至少要出现的次数。例如,A,C的组合共出现了2次(Tid=10和30),它的支持度就是2。对用户给定一个支持度,Apirori算法每次扫描,把出现次数不够支持度的项从候选集中去除,然后再在此基础上生成更多项组合的子集。

=====

本题要求做一个简单的关联规则的数据挖掘。为了简化,只做两项组合的频繁集,题目中的商品也只用一个字母代替。

 

输入:

最小支持度support(>1),交易记录的数量N,紧跟着是N个具体的交易记录。

 

输出:

所有支持度≥support的二项组合,以及对应的支持度。

 

样例输入:

2□4↵

a,c,d↵

b,c,e↵

a,b,c,e↵

b,e↵

 

样例输出:

a,c:2↵

b,c:2↵

b,e:3↵

c,e:2↵

 

参考解答:请将文件重命名为Main.class然后执行。

 

 

 

 

 

import java.util.Scanner;

 public class Main{  
	 
	 public static void main(String[] args){  
		 StringBuilder sBuilder = new StringBuilder();  
		 Scanner scanner = new Scanner(System.in);
		 String str = scanner.nextLine();
		 String[] in = str.split(" ");
		 int support = Integer.parseInt(in[0]);
		 int N = Integer.parseInt(in[1]);
		 String[] arr = new String[N];
		 for(int i=0;i<N;i++){
			 arr[i] = scanner.nextLine().replaceAll(",", "");//把读入的字符串去除",",由a,b,c,d变成abcd
		 }
		 scanner.close();
		 for(int i=0;i<N;i++){
			 int len1 = arr[i].length();
			 for(int j=0;j<len1-1;j++){
				 for(int k=j+1;k<len1;k++){
					 String s = arr[i].charAt(j) + "," +arr[i].charAt(k);
					 sBuilder.append(s).append(" ");
				 }
			 }
		 }
		 String tString = sBuilder.toString().trim();//两个两个连接完成的数组,去除最后的空格
		 String[] result = tString.split(" ");//把连接成的字符串再分成数组,便于查找
		 int len2 = result.length;
		 sBuilder = new StringBuilder();//把sBuilder置为空值
		 for(int i=0;i<len2-1;i++){
			 int num = 1;
			 for(int j=i+1;j<len2;j++){
				 if(result[i].equals(result[j])){
					 num++;
				 }
			 }
			 if(num >= support && sBuilder.indexOf(result[i]) == -1){//判断是否已经输出过
				 sBuilder.append(result[i]).append(" ");//没有输出过就添加到sBuilder判断
				 System.out.println(result[i]+":"+num);
			 }
		 }
	 }     
}  

 

 

 

购物篮分析、关联关系与关联规则 购物篮分析,英文名称为Market Basket Analysis(简称MBA),或者Shopping Cart Analysis(购物车分析)。 阅读详情

相关推荐

数据挖掘学习笔记:关联规则3

ARCS过程中的步骤包括 分箱(根据不同分箱方法创建一个2-D数组),本步骤的目的在于减少量化属性相对应的巨大的值个数,使得2-D栅格的大小可控 等宽分箱 等深分箱 基于同质的分箱 找出频繁谓词集 扫描分箱后形成的2-D数组, 找出满足最小支持度和置信度的频繁谓词集 ARCS的局限性 所挖掘的关联规则左手边只能是量化属性 规则的左手边只能有两个量化属性(2-D栅格的限制) 一种基于栅格的, 可以

陈陈的专栏 2063

玩转大数据21:基于FP-Growth算法的关联规则挖掘及实现

FP-Growth算法通过构建频繁模式树和挖掘频繁项集的方式,可以帮助我们发现数据集中项目之间的关联关系。在大数据领域中,FP-Growth算法是一种高效的关联规则挖掘算法,具有广泛的应用前景。

沛哥儿的专栏 6535

数据挖掘学习笔记3: 关联规则2

多层关联规则 数据项中经常会形成概念分层 底层的数据项,其支持度往往也较低 在适当的等级挖掘出来的数据项之间的关联规则可能是非常有用的 通常, 事务数据库中的数据也是根据维和概念分层进行储存的 在多个抽象层挖掘关联规则, 并在不同的抽象层进行转化. 是数据挖掘系统应该提供的能力 挖掘多层关联规则的方法一直支持度vs递减支持度 一直支持度: 对所有层都是用以致最小支持度 优点: 搜索时容易采用优化策

陈陈的专栏 2890

数据挖掘学习日记3·关联规则挖掘

目录 1 关联规则挖掘概念 2 关联规则基本模型 2.1 基本概念 2.2 关联规则的挖掘步骤 3 Apriori算法 3.1 介绍 3.2 实现步骤 3.3 伪代码 1 关联规则挖掘概念 一、定义 关联规则反映一个事物与其它事物之间的依赖和相互关联性。 经典例子为购物篮分析,通过分析购物篮数据来分析顾客经常同时购买哪些商品(购买习惯)。这是BI(Business I...

睦生 2445

APRIORI算法:深入数据挖掘的关联规则探索

本文还有配套的精品资源,点击获取 简介:数据挖掘是信息技术的关键领域,它通过关联规则挖掘来发现数据集中的有趣模式。APRIORI算法是该领域的经典算法之一,用于识别频繁项集和强关联规则。算法分为项集生成和剪枝验证两步,通过设定最小支持度阈值来确定频繁项集。文档和源代码详细解释了算法原理和实现过程,帮助理解如何在实践中应用APRIORI算法进行数据挖掘,以便揭示隐藏的模式和关...

weixin_28872035的博客 1284

数据挖掘实战:使用Python进行关联规则分析

数据挖掘是从大量、不完全、有噪声、模糊的实际数据中,提取隐藏在其中的、人们事先不知道的、有潜在使用价值的信息和知识的过程。它涉及到统计学、数据库技术和机器学习等多个领域的知识,旨在揭示数据背后深层次的模式和趋势。关联规则分析是数据挖掘中的一个重要分支,其目标是发现大量数据中项目间的有趣关系,这些关系通常表现为一个项目在某种条件下出现时,另一个项目也以一定的概率出现。关联规则广泛应用于零售市场篮子分析、生物信息学、网页点击流分析等领域。

weixin_33480380的博客 912

【海量数据挖掘/数据分析】 之 关联规则挖掘 Apriori 算法 (数据集、事务、频繁项集、关联规则、支持度、置信度)

Apriori 算法 是关联规则挖掘算法 ,关联规则 反映了对象之间 相互依赖关系 ,可以通过 一个对象 的行为或属性 预测 其它对象的行为或属性;关联规则不是 因果关系, 有可能有因果关系 , 有可能没有;如 : 购买商品时 , 啤酒 与 尿布 就有关联关系 , 这两个之间肯定没有因果关系 , 有一种未知的关联关系;关联规则挖掘步骤 :① 步骤一 : 找出 支持度 ≥最小支持度阈值的 频繁项集;② 步骤二 : 根据 频繁模式 生成 满足可信度阈值的 关联规则;

仙魁XAN 2万+

西电数据挖掘作业——关联规则aprior算法python实现

西电数据挖掘作业——关联规则aprior算法python实现,我自己在python3.6已经能够成功实现,没有问题

数据挖掘笔记:关联规则

关联规则,就是找到一堆东西中隐藏着的关系

a44267113的博客 2873

CHIP-Seq数据分析流程

文章目录CHIP-Seq数据分析流程相关软件安装数据下载将SRA转化为fastq文件数据质控,过滤数据质控然后进行质控,过滤低质量reads,去接头比对下载小鼠参考基因组的索引和注释文件比对sam文件转bam为bam文件建立索引载入IGV查看用MACS call peak安装MACS结果注释与可视化 CHIP-Seq数据分析流程 相关软件安装 所需要的软件有sratoolkit, fastqc,bowtie2,samtools,macs2,htseq-count,bedtools和前面RNA-seq数据分析

bio_meimei的博客 8789

如何搭建pikachu靶场

Pikachu靶场本地搭建指南 下载安装PHPStudy并启动Apache/MySQL服务 获取Pikachu靶场源码并解压到网站根目录 配置数据库连接信息(修改config.inc.php文件) 创建pikachu数据库(用户名/密码设为root) 访问http://localhost/pikachu测试功能 常见问题:数据库连接失败需检查服务状态和配置信息,页面报错需检查PHP版本兼容性。建议使用PHP7.3/7.4版本,在隔离环境中搭建使用。 (150字)

2401_85351702的博客 1276

《数据挖掘:实用案例分析》——2.3 关联规则

2.3 关联规则   我们经常会碰到这样的问题:   1)商业销售上,如何通过交叉销售得到更大的收入?  2)保险方面,如何分析索赔要求发现潜在的欺诈行为?  3)银行方面,如何分析顾客消费行业,以便有针对性地向其推荐感兴趣的服务?  4)哪些制造零件和设备设置与故障事件关联?  5)哪些病人和药物属性与结果关联?  6)哪些商品是已经购买商品A的人最...

weixin_34389926的博客 3863

PyCharm配置及使用Git教程

平时习惯在Windows下开发,但是我们又需要实时将远方仓库的代码clone到本地,也需要将自己修改的代码push到远端服务器。

酒酿小圆子呀~ 4万+

《Python数据挖掘:概念、方法与实践》——第2章关联规则挖掘

本节书摘来自华章社区《Python数据挖掘:概念、方法与实践》一书中的第2章关联规则挖掘,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区“华章社区”公众号查看 第2章关联规则挖掘在数据挖掘工具箱中,计量某个模式的频率是一项关键任务。在某些情况下,较频繁出现的模式可能最终成为更加重要的模式。如果我们可以发现经常同时出现的...

weixin_33966095的博客 170

别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器

本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。

weixin_28675839的博客 265

手把手教你学Simulink--复杂环境适应的四足机器人领域仿真建模实例:构建一个基于Simulink的四足机器人动态平衡保持仿真模型

通过上述步骤,你可以构建一个基本的基于Simulink的四足机器人动态平衡保持仿真模型。此模型不仅有助于理解四足机器人在复杂环境中的动态平衡控制原理,也为进一步优化提供了基础。随着技术的发展,还可以探索更多高级功能,如自适应步态调整、强化学习等,以提高机器人的智能性和适应性。

MHD0815的博客 235

使用pycaret来进行数据挖掘:关联规则挖掘

关联规则用于发现大型数据库中变量之间的有趣关系。它旨在使用一些有趣的方法来识别在数据库中发现的强规则。通过对关联规则的挖掘我们可以发现超市或者电商的大规模交易数据中商品之间的规律性,最著名的案例是“啤酒与尿布”的故事,20世纪90年代的美国超市中,超市管理人员分析销售数据时发现了一个令人难于理解的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品会经常出现在同一个购物篮中。还比如人们在超市的销售数据中发现,如果顾客同时购买面包和牛奶,他们很可能也会购买黄油。这样的信息可以为企业营销活动的决

weixin_42608414的博客 2735

leaflet 综合教程170+ 【目录 】(已包含162篇文章)

vue+leaflet系列教程旨在为开发者提供简单快捷的,。在每一个示例中,解释相应的API知识点,做到。注意本示例目录中的内容可能加载是vue+openlayers的示例, 本目录是要加载vue+leaflet的示例,只是内容少,逐渐更新中。

大剑师兰特的GIS世界 1万+

数据挖掘核心技术:分类算法与关联规则解析

数据挖掘作为从海量数据中提取知识的关键技术,其核心方法论围绕预测模型与模式发现展开。分类算法通过构建决策边界实现样本类别预测,典型如决策树、SVM等算法,其技术价值体现在金融风控、医疗诊断等需要精准判断的场景。模型评估体系则通过交叉验证、ROC曲线等方法确保预测可靠性,这是工程落地的重要保障。另一方面,频繁模式挖掘(如Apriori算法)和关联规则分析揭示了数据中隐藏的组合规律,这些技术在推荐系统、购物篮分析等场景展现出强大实用性。随着大数据发展,分布式计算框架和可解释性工具正推动这些传统技术解决更复杂的业

weixin_34063855的博客 239

【系统分析师】第6章-基础知识:企业信息化(核心总结)

企业信息化是数字化转型的核心,涵盖战略规划、技术应用和实施路径等方面。关键内容包括ERP、CRM、SCM等系统的定义与实施,以及数据仓库、商业智能等技术的应用。备考系统分析师需掌握信息化战略规划方法(如BSP、SDP)、系统建模工具,并能分析解决信息孤岛等问题。论文可围绕ERP实施、数据仓库应用等主题展开。企业信息化面临组织变革、技术选型等挑战,但能显著提升运营效率和竞争力。

数据知道的博客 6933

【STK】手把手教你利用STK进行弹道导弹和运载火箭发射仿真的相关方法全过程解析

写这个系列主要是这几年做了一些弹道导弹和运载火箭发射的相关仿真项目,stk软件由于其专业性在国内比较小众,相关的教程和书籍、经验贴都不是很多,因此新手在进行开发中容易遇到较多困难,把自己的一些经验体会写下来,一方面供自己总结回顾,另一方面也希望对大家有所帮助。这个系列计划分几篇文章写完,每章的内容结构相似,都分为①如何确定发射场位置和发射轨迹、②导入导弹和运载火箭模型、③设计模型分段动作、④飞行参数分析和相关应用这四个部分,每篇文章争取完整描述1-2个实际项目的操作过程。

weixin_44184852的博客 5985

如何在Java中实现高效的数据挖掘:从关联规则到频繁项集

大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨如何在Java中实现高效的数据挖掘,特别是关联规则挖掘和频繁项集的算法实现。典型的应用场景是购物篮分析,通过分析购物记录,找到经常一起购买的商品组合。频繁项集则是关联规则的基础,用来表示在交易数据中频繁出现的项集。Apriori算法是一种经典的频繁项集挖掘算法,它通过逐层搜索的方法,逐步构建频繁项集。生成关联规则的核心是计算各项集的支持度和置信度,并筛选出符合条件的规则。:在已知条件下,另一个项集出现的概率。

微赚淘客系统开发者博客 525

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

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

lazyn的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数据挖掘关联规则分析数据集:助力关联规则挖掘的强大资源

数据挖掘关联规则分析数据集:助力关联规则挖掘的强大资源 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数据挖掘领域,关联规则分析是发现数据之间潜在关系的重要方法。今天,我们将为您推荐一个专门为关联规则挖掘量身定制的开源项目——数据挖掘关联规则分析数据集。该数据集包含了两个精心设计的合成数据集,每个包含约10万条记录,旨在为研究人员和开发者提供丰富且实用的数据资源。 ...

gitblog_06735的博客 776

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数据挖掘的Apriori算法:如何发现关联规则

1.背景介绍 数据挖掘是指从大量数据中发现新的、有价值的信息和知识的过程。关联规则挖掘是数据挖掘的一个重要分支,主要用于发现数据之间存在的关联关系。Apriori算法是关联规则挖掘中最常用的方法之一,它可以发现数据集中出现的频繁项集和它们之间的关联规则。 在本文中,我们将详细介绍Apriori算法的核心概念、算法原理、具体操作步骤以及数学模型。同时,我们还将通过一个具体的代码实例来展示如何使用...

AI天才研究院 1210
上一篇: 有两个字符串数组a和b,寻找相同元素(a、b都很大)
下一篇: Apache启动失败,请检查相关配置
avanry
博客等级 码龄20年 4粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值