Apriori算法及其实现
- 格式:doc
- 大小:243.00 KB
- 文档页数:14
数据挖掘算法实验报告1)实验题目Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。
它将关联规则挖掘算法的设计分解为两个子问题:(1)找到所有支持度大于最小支持度的项集,这些项集称被为频繁项集(Frequent Itemset)。
(2)使用第一步产生的频繁集产生期望的规则。
在图书馆管理系统中积累了大量的读者借还书的历史记录,基于Apriori算法挖掘最大频繁项目集,由此产生关联规则。
数据格式可参阅文献参考文献:彭仪普,熊拥军: 关联挖掘在文献借阅历史数据分析中的应用.情报杂志. 2005年第8期(本实验我用的是书上的例题AllElectronics事物数据库的数据做的)2)算法基本思想的描述Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。
其核心是基于两阶段频集思想的递推算法。
该关联规则在分类上属于单维、单层、布尔关联规则。
在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。
然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。
然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。
一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。
为了生成所有频集,使用了递推的方法。
(1)L1 = find_frequent_1-itemsets(D);(2)for (k=2;Lk-1 ≠Φ ;k++) {(3)Ck = apriori_gen(Lk-1 ,min_sup);(4)for each transaction t ∈D{//scan D for counts(5)Ct = subset(Ck,t);//get the subsets of t that are candidates(6)for each candidate c ∈ Ct(7) c.count++;(8)}(9)Lk ={c ∈ Ck|c.count≥min_sup} (10)}(11)return L= ∪ k Lk;3)编程实现算法#include <stdio.h>#include <math.h>int l1[5]={0};int l2[5][5]={0};int l3[5][5][5]={0};void LoadIteml1(int data[9][4]){int i,j;for(i=0;i<9;i++){for(j=0;j<4;j++){switch(data[i][j]){case 0:break;case 1:l1[0]++;break;case 2:l1[1]++;break;case 3:l1[2]++;break;case 4:l1[3]++;break;case 5:l1[4]++;break;}}}printf("频繁一项集:\n");for(i=0;i<5;i++){printf("I%d:%d\n",i+1,l1[i]);}}int count2(int data[9][4],int m,int n){int i,j;int flag1=0,flag2=0,count=0;for(i=0;i<9;i++){for(j=0;j<4;j++){if(data[i][j]==m) flag1=1;else if(data[i][j]==n) flag2=1;}if(flag1==1 && flag2==1) count++;flag1=flag2=0;}return count;}void LoadIteml2(int data[9][4]){int i,j;for(i=0;i<5;i++){for(j=i+1;j<5;j++){l2[i][j]=count2(data,i+1,j+1);}}printf("频繁二项集:\n");for(i=0;i<5;i++){for(j=0;j<5;j++){if(l2[i][j]>1)printf("I%d I%d:%d\n",i+1,j+1,l2[i][j]);}}}int count3(int data[9][4],int m,int n,int a){int i,j,flag1=0,flag2=0,flag3=0;int count=0;for(i=0;i<9;i++){if(data[i][2]==0) continue;for(j=0;j<5;j++){if(data[i][j]==m) flag1=1;if(data[i][j]==n) flag2=1;if(data[i][j]==a) flag3=1;}if(flag1==1 && flag2==1 && flag3==1)count++;flag1=flag2=flag3=0;}return count;}void LoadIteml3(int data[9][4]){int i,j,k;for(i=0;i<5;i++){for(j=i+1;j<5;j++){for(k=j+1;k<5;k++){l3[i][j][k]=count3(data,i+1,j+1,k+1);}}}printf("频繁三项集:\n");for(i=0;i<5;i++){for(j=0;j<5;j++){for(k=0;k<5;k++){if(l3[i][j][k]>1)printf("I%d I%d I%d:%d\n",i+1,j+1,k+1,l3[i][j][k]);}}}}void LoadIteml4(int data[9][4]){printf("没有频繁四项集!算法结束!\n");}int main(){int data[9][4]={{1,2,5,0},{2,4,0,0},{2,3,0,0},{1,2,4,0},{1,3,0,0},{2,3,0,0},{1,3,0,0},{1,2,3,5},{1,2,3,0},};LoadIteml1(data);LoadIteml2(data);LoadIteml3(data);LoadIteml4(data);return 0;}4)输出运算结果。
⼗⼤经典算法之Apriori算法关联分析关联分析是⼀种在⼤规模数据集中寻找有趣关系的任务。
这些关系可以有两种形式:频繁项集(frequent item sets): 经常出现在⼀块的物品的集合。
关联规则(associational rules): 暗⽰两种物品之间可能存在很强的关系。
相关术语关联分析(关联规则学习): 从⼤规模数据集中寻找物品间的隐含关系被称作关联分析(associati analysis)或者关联规则学习(association rule learning)。
下⾯是⽤⼀个杂货店例⼦来说明这两个概念,如下图所⽰:频繁项集: {葡萄酒, 尿布, ⾖奶} 就是⼀个频繁项集的例⼦。
关联规则: 尿布 -> 葡萄酒就是⼀个关联规则。
这意味着如果顾客买了尿布,那么他很可能会买葡萄酒。
那么频繁的定义是什么呢?怎么样才算频繁呢?度量它们的⽅法有很多种,这⾥我们来简单的介绍下⽀持度和可信度。
⽀持度: 数据集中包含该项集的记录所占的⽐例。
例如上图中,{⾖奶} 的⽀持度为 4/5。
{⾖奶, 尿布} 的⽀持度为 3/5。
可信度: 针对⼀条诸如 {尿布} -> {葡萄酒} 这样具体的关联规则来定义的。
这条规则的可信度被定义为⽀持度({尿布, 葡萄酒})/⽀持度({尿布}),从图中可以看出⽀持度({尿布, 葡萄酒}) = 3/5,⽀持度({尿布}) = 4/5,所以 {尿布} -> {葡萄酒} 的可信度 = 3/5 / 4/5 = 3/4 = 0.75。
⽀持度和可信度是⽤来量化关联分析是否成功的⼀个⽅法。
假设想找到⽀持度⼤于 0.8 的所有项集,应该如何去做呢?⼀个办法是⽣成⼀个物品所有可能组合的清单,然后对每⼀种组合统计它出现的频繁程度,但是当物品成千上万时,上述做法就⾮常⾮常慢了。
我们需要详细分析下这种情况并讨论下 Apriori 原理,该原理会减少关联规则学习时所需的计算量。
Apriori 原理假设我们⼀共有 4 个商品: 商品0, 商品1, 商品2, 商品3。
关联规则apriori算法python关联规则是数据挖掘中常用的一种技术,通过挖掘数据集中各项之间的关联关系,发现它们之间的规律性,进而为商业决策、产品推荐等提供支持。
Apriori算法是实现关联规则挖掘的一种常用方法,其主要思想是通过寻找频繁项集,从而推导出关联规则。
在Python中实现Apriori算法,可以使用第三方库`mlxtend`。
首先需要导入相关库,包括`numpy`和`pandas`用于数据处理、`mlxtend`用于实现Apriori算法。
代码如下:```pythonimport numpy as npimport pandas as pdfrom mlxtend.frequent_patterns import apriorifrom mlxtend.frequent_patterns import association_rules ```接下来,需要读取数据集并进行预处理。
数据集应该是一个包含多个样本的二维数组,每个样本代表一个事务,每个事务包含多个项。
这里以示例数据集`groceries.csv`为例:```python# 读取数据data = pd.read_csv('groceries.csv', header=None)# 将数据转为one-hot编码data_encoded = pd.get_dummies(data)```接着,需要使用Apriori算法来寻找频繁项集。
`mlxtend`库提供了`apriori`函数实现此功能,函数的输入参数包括数据集、最小支持度、最大项集长度等。
最小支持度表示项集在数据集中的出现频率,通常取值在0.01-0.05之间,最大项集长度表示单个项集包含的最大项数,通常取值在3-5之间。
代码如下:```python# 使用Apriori算法寻找频繁项集frequent_itemsets = apriori(data_encoded,min_support=0.01, max_len=4)```最后,通过Apriori算法寻找频繁项集后,可以根据置信度等指标来筛选关联规则。
关联规则(Apriori算法)关联分析直观理解 关联分析中最有名的例⼦是“尿布与啤酒”。
据报道,美国中西部的⼀家连锁店发现,男⼈们会在周四购买尿布和啤酒。
这样商店实际上可以将尿布与啤酒放在⼀块,并确保在周四全价销售从⽽获利。
当然,这家商店并没有这么做。
频繁项集是指那些经常出现在⼀起的物品集合,⽐如{葡萄酒,尿布, ⾖奶}就是频繁项集的⼀个例⼦⽀持度(support) ⼀个项集的⽀持度(support)被定义为数据集中包含该项集的记录所占的⽐例 {⾖奶}的⽀持度为4/5。
{⾖奶,尿布}的⽀持度为3/5可信度(confidence ) 可信度或置信度(confidence)是针对⼀条诸如{尿布} ➞ {葡萄酒}的关联规则来定义的。
这条规则的可信度被定义为“⽀持度({尿布, 葡萄酒})/⽀持度({尿布})”。
由于{尿布, 葡萄酒}的⽀持度为3/5,尿布的⽀持度为4/5,所以“尿布➞葡萄酒”的可信度为3/4=0.75。
这意味着对于包含“尿布”的所有记录,我们的规则对其中75%的记录都适⽤。
Apriori算法的⽬标是找到最⼤的K项频繁集⽀持度和可信度是⽤来量化关联分析是否成功的⽅法。
假设想找到⽀持度⼤于0.8的所有项集,应该如何去做?⼀个办法是⽣成⼀个物品所有可能组合的清单,然后对每⼀种组合统计它出现的频繁程度,但当物品成千上万时,⾮常慢,这时就能⽤Apriori算法关联分析中最有名的例⼦是“尿布与啤酒”。
据报道,美国中西部的⼀家连锁店发现,男⼈们会在周四购买尿布和啤酒。
这样商店实际上可以将尿布与啤酒放在⼀块,并确保在周四全价销售从⽽获利。
当然,这家商店并没有这么做。
⼀般我们使⽤三个指标来度量⼀个关联规则,这三个指标分别是:⽀持度、置信度和提升度。
Support(⽀持度):表⽰同时包含A和B的事务占所有事务的⽐例。
如果⽤P(A)表⽰使⽤A事务的⽐例,那么Support=P(A&B)Confidence(可信度):表⽰使⽤包含A的事务中同时包含B事务的⽐例,即同时包含A和B的事务占包含A事务的⽐例。
空间关联算法apriori pythonApriori算法是一种常用的空间关联算法,它可以帮助快速发现数据集中的频繁项集。
这种算法常被应用在数据挖掘、市场营销以及推荐系统等领域。
在本文中,我们将提供一个Python实现的Apriori算法。
Apriori算法的基本思想是:如果一个项集是频繁的,那么它的子集也一定是频繁的。
因此,我们可以从单个项开始,逐渐地向上扩展项集的规模,直到得到所有频繁项集。
在扩展的过程中,我们可以利用事务的支持度来剪枝,舍弃一些不太可能成为频繁项集的候选项集。
首先,我们需要定义一些术语:- 事务(Transaction):一个包含多个项的集合,例如一个订单。
- 项(Item):指事务中的一个元素,可以是商品、服务或者其他东西。
- 支持度(Support):指包含某个项集的事务的数量占总事务的比例。
例如,有100个订单中有50个含有“牛奶”,那么“牛奶”的支持度为50%。
- 频繁项集(Frequent Itemset):支持度大于等于某个阈值的项集。
- 关联规则(Association Rule):一种形如A→B的规则,表示当有A时,很可能出现B。
其中,A和B都是项集。
现在,我们来看看Apriori算法的Python实现。
首先,我们需要定义一个函数来读取数据集。
在这个例子中,我们使用的是一个包含交易数据的CSV文件。
import csvdef load_csv(filename):dataset = []with open(filename, 'r') as file:reader = csv.reader(file)for row in reader:dataset.append(row)return dataset接下来,我们定义一个函数来生成最初的候选项集。
在这个阶段,我们只考虑单个项。
def create_c1(dataset):c1 = set()for transaction in dataset:for item in transaction:c1.add(frozenset([item]))return c1然后,我们需要一个函数来筛选候选项集,仅保留那些支持度大于等于阈值的项集。
查找候选码的判定方法在数据挖掘和机器学习领域中,候选码是一种非常重要的概念。
候选码是指在数据集中出现频率较高的一组项集,这些项集可以用来发现数据集中的关联规则。
在实际应用中,如何快速准确地查找候选码是一个非常重要的问题。
本文将介绍一些常用的查找候选码的判定方法。
1. Apriori算法Apriori算法是一种经典的查找候选码的方法。
该算法的基本思想是利用频繁项集的性质,从而减少候选项集的数量。
具体来说,Apriori算法分为两个步骤:(1)生成候选项集:首先扫描数据集,统计每个项的出现次数,然后根据最小支持度阈值,筛选出频繁项集。
接着,利用频繁项集的性质,生成下一级候选项集。
(2)剪枝:对于每个候选项集,检查其所有子集是否都是频繁项集。
如果不是,则该候选项集被剪枝。
通过这两个步骤,Apriori算法可以快速地查找候选码。
但是,该算法存在一些缺点,如需要多次扫描数据集、生成大量的候选项集等。
2. FP-Growth算法FP-Growth算法是一种基于频繁模式树的查找候选码的方法。
该算法的基本思想是将数据集压缩成一棵频繁模式树,然后利用该树来查找候选码。
具体来说,FP-Growth算法分为两个步骤:(1)构建频繁模式树:首先扫描数据集,统计每个项的出现次数,然后根据最小支持度阈值,筛选出频繁项集。
接着,利用频繁项集的性质,构建频繁模式树。
(2)查找候选码:对于每个频繁项集,从其对应的条件模式基中构建一棵条件模式树,然后递归地查找该树中的频繁项集。
通过这种方式,可以快速地查找候选码。
与Apriori算法相比,FP-Growth算法具有更快的速度和更少的内存消耗。
但是,该算法的实现较为复杂,需要对频繁模式树进行多次遍历。
3. Eclat算法Eclat算法是一种基于垂直数据格式的查找候选码的方法。
该算法的基本思想是将数据集转换成垂直数据格式,然后利用该格式来查找候选码。
具体来说,Eclat算法分为两个步骤:(1)转换数据格式:首先将数据集转换成垂直数据格式,即每个项对应一个事务ID集合。
Apriori算法详解之【一、相关概念和核心步骤】Apriori算法核心步骤感谢红兰整理的PPT,简单易懂,现在将其中精彩之处整理,与大家分享。
一、Apriori算法简介: Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。
Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。
二、挖掘步骤:1。
依据支持度找出所有频繁项集(频度)2.依据置信度产生关联规则(强度)三、基本概念对于A—〉B①支持度:P(A ∩B),既有A又有B的概率②置信度:P(B|A),在A发生的事件中同时发生B的概率p(AB)/P(A) 例如购物篮分析:牛奶⇒面包例子:[支持度:3%,置信度:40%]支持度3%:意味着3%顾客同时购买牛奶和面包置信度40%:意味着购买牛奶的顾客40%也购买面包③如果事件A中包含k个元素,那么称这个事件A为k项集事件A满足最小支持度阈值的事件称为频繁k项集.④同时满足最小支持度阈值和最小置信度阈值的规则称为强规则四、实现步骤Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法Apriori使用一种称作逐层搜索的迭代方法,“K—1项集”用于搜索“K项集”。
首先,找出频繁“1项集"的集合,该集合记作L1.L1用于找频繁“2项集"的集合L2,而L2用于找L3。
如此下去,直到不能找到“K项集".找每个Lk都需要一次数据库扫描.核心思想是:连接步和剪枝步。
连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。
剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。
反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从CK中删除.简单的讲,1、发现频繁项集,过程为(1)扫描(2)计数(3)比较(4)产生频繁项集(5)连接、剪枝,产生候选项集重复步骤(1)~(5)直到不能发现更大的频集2、产生关联规则,过程为:根据前面提到的置信度的定义,关联规则的产生如下:(1)对于每个频繁项集L,产生L的所有非空子集;(2)对于L的每个非空子集S,如果P(L)/P(S)≧min_conf则输出规则“SàL—S"注:L—S表示在项集L中除去S子集的项集一、Apriori算法伪代码实现:[plain]view plaincopy1.伪代码描述:2.// 找出频繁 1 项集3.L1 =find_frequent_1—itemsets(D);4.For(k=2;Lk-1 !=null;k++){5.// 产生候选,并剪枝6.Ck =apriori_gen(Lk-1 );7.// 扫描 D 进行候选计数8.For each 事务t in D{9.Ct =subset(Ck,t); // 得到t 的子集10.For each 候选 c 属于Ct11.c。
基于Apriori算法银行客户分类系统的设计与实现的
开题报告
1.研究背景与意义:
随着互联网时代的到来,银行业务的多样化和规模的扩大,银行客户数量不断增加。
银行需要通过分类来对客户进行有效地管理,制定不同的服务方案,增加客户黏性,提高银行业绩。
Apriori算法是一种常用的数据挖掘算法,可以挖掘数据集中的关联规则,是银行客户分类的有力工具。
本研究旨在应用Apriori算法设计银行客户分类系统,实现客户的有效分类和个性化服务。
2.研究内容与步骤:
(1)梳理相关文献,分析银行客户分类研究现状和存在的问题,并阐述Apriori算法在银行客户分类中的优势;
(2)收集银行客户数据,构建数据集;
(3)对数据集进行预处理,包括数据的清洗、缺失值的处理等;
(4)运用Apriori算法对银行客户数据进行挖掘,获取关联规则;
(5)根据关联规则对客户进行分类,构建银行客户分类系统;
(6)对银行客户分类系统进行测试和评价。
3.预期研究成果:
(1)论文:论文将就设计银行客户分类系统的过程和实现方案进行详细阐述,论述Apriori算法在客户分类中的应用价值,提出优化建议;
(2)银行客户分类系统:开发可以实现客户分类的软件,满足银行在客户管理方面的需求;
(3)研究经验:通过研究可积累数据挖掘领域的经验和技能,为后续相关领域的研究提供参考。
《数据挖掘》设计论文 院(系) 理学院 专 业 信息与计算科学 指导老师 刘建伟 班 级 101001班 姓 名 龙云祥 、黄健 时 间 2013年7月4日
Apriori算法及其实现 内容摘要 经典的关联规则数据挖掘算法Apriori 算法广泛应用于各种领域,通过对数据的关联性进行了分析和挖掘,挖掘出的这些信息在决策制定过程中具有重要的参考价值。信息技术的不断推广应用,如何充分利用这些数据信息为各个行业决策者提供决策支持成为一个十分迫切的又棘手的问题,人们除了利用现有的关系数据库标准查询语句得到一般的直观的信息以外,必须挖掘其内含的、未知的却又实际存在的数据关系。著名的Apriori算法是一种挖掘关联规则的算法。 本文通过对Apriori算法的基本思想,挖掘出内含的数据关系,并实现Apriori算法。 关键字:数据挖掘,关联规则,Apriori算法 目录 1 人员分工.................................................................................................................................. - 1 - 2 数据挖掘定义 .......................................................................................................................... - 1 - 3 关联规则介绍 .......................................................................................................................... - 3 - 4 Apriori算法背景介绍 ........................................................................................................... - 3 - 5 Apriori算法的描述 ............................................................................................................... - 5 - 5.1 Apriori算法的说明 ................................................................................................... - 5 - 4.2 Apriori算法的描述 ................................................................................................... - 6 - 4.3 Apriori算法的举例 ................................................................................................... - 6 - 6 设计要求.................................................................................................................................. - 7 - 7 设计原理.................................................................................................................................. - 7 - 8 程序流程图 .............................................................................................................................. - 8 - 9 程序运行环境 .......................................................................................................................... - 8 - 10 测试数据 ................................................................................................................................ - 8 - 11 程序运行结果 ........................................................................................................................ - 9 - 12 参考资料 .............................................................................................................................. - 10 - 13设计总结 ............................................................................................................................... - 11 - 13.1黄健总结 ................................................................................................................... - 11 - 13.2龙云祥总结 ............................................................................................................... - 11 - 14程序源代码见附录1 ............................................................................................................ - 11 - - 1 -
1 人员分工 黄健、龙云祥两人分工明确,对Apriori算法都已熟练掌握。 黄健:画出程序流程图,负责实现书上Apriori基本算法。 龙云祥:熟悉算法,测试程序,通过查阅资料,做出数据挖掘的流程,并了解Apriori改进的一些算法,主要负责论文。 2 数据挖掘定义 数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。与数据挖掘相近的同义词有数据融合、数据分析和决策支持等。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。 从广义上理解,数据、信息也是知识的表现形式,但是人们更把概念、规则、模式、规律和约束等看作知识。人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这- 2 -
一新兴的研究领域,形成新的技术热点。 数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。 简而言之,数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去数据收集和分析的目的是用于科学研究,另外,由于当时计算能力的限制,对大数据量进行分析的复杂数据分析方法受到很大限制。现在,由于各行业业务自动化的实现,商业领域产生了大量的业务数据,这些数据不再是为了分析的目的而收集的,而是由于纯机会的(Opportunistic)商业运作而产生。分析这些数据也不再是单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石中淘金一样,数据挖掘也因此而得名。 因此,数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。 DM 不能告诉你某个模型对你的企业的实际价值DM是一个工具,他只是帮助商业人士更深入、更容易地分析数据,但是无法告诉你某个模型对你的企业的实际价值,DM中得到的模型必须在现实生活中进行验证,DM不会在缺乏指导的情况下自动的发现模型。数据分析者必须知道你所选用的DM工具是如何工作的,采用的算法的原理是什么。DM永远不会替代有经验的商业分析师或管理人员所