数据挖掘实验三报告

合集下载

数据挖掘第三次实验报告

数据挖掘第三次实验报告

第三次实验报告班级:数理系091001学号:091001102姓名:高攀指导老师:刘建伟Aprior算法1•实验目的:首先从理论角度分析了关联规则挖掘算法与聚类挖掘算法原理及其应用领域,然后介绍了Aprior算法的实现及封装,并设计了可视化界面,对算法进行了测试。

2•实验要求:利用Aprior算法实现Algonthm数学计算方法。

3•实验原理:Apnori算法使用一种称作逐层迭代的候选产生测试(candidate generation and test)的方法,k-项目集用于探索(k+1)-项目集。

首先,找出频繁1-项目集的集合,该集合记作L。

L 用于找频繁2-向募集到集合L ,而L用于找L ,如此卞去,直到不能找到频繁k-项目集。

找每一个L均需要一次数据库的扫描。

4•实验内容:package datanunuig;unport java.io.*;unport java.util.*;/***A bare bone clean uuplementation of the Apriori*algoiitlmi for finding frequent itemsets. Good for educational*puiposes and as a root class for experiinenting on*optimizations・**In the latest version the use of DataHaiidler is added for readmg*the database・**@autlior Michael Holler*@version 0.& 16.03.2004*/public class Apiiori {iiit pass; // number of passesiiit total; // total number of frequent itemsetsiiit iniiisup; // minimal support of itemsetString filename; // the filename of the databaseItem loot; // the root item of the TrieBufieredWiiter wiitei7/ the buffer to write the output toDataHaiidler dh; // the handler for the database* Default constnictur for creating a Apnori object. */public ApiioriQ {this.pass = 0;this.niiiisup = 4;this.dh = new DataHandler(n test.dat M); this.root = new Item(0);}*Construetur for creatmg a Apiiori object with parameters・**@param filename the name of the database file*@param niiiisup the minimal support tlueshold*@param outfile the name of the output file*/public Apiion(String filename, mt inuisup, Strmg outfile) { this.pass = 0;this.nuiisup = nrnisup;this.dh = new DataHandler(filenaiiie);this.root = new Item(0);try{if (!outfile.equals(,Mr)) {writer = new BufferedWriter(new FileWriter(outfile)); } } catch (Exception e) {}}/***Construetur for creatmg a Apiiori object with parameters・*This one is used with other mining algoritlmis・**@param niiiisup the minimal support tlueshold*@param datahandler the handler for the database*/public Aprioii(int ininsup, DataHandler dataliaiidler) { this.pass = 0;this.nuiisup = nrnisup;this.dh = dataliandler;this.root = new Item(0);}*The worklioise method for the basic implementation of*the Apriori algoiitlun・*/public void fiiidFrequentSetsQ {boolean running = tme;mt candidates = 0, transactions= 0, pinned = 0, itenisets;wliile (running) {this.pass++;candidates = this.generateCandidates(this.root, new VectoiQ, 1); transactions = this. count SupponQ;pinned = this.piiineCandidates(this.root);itemsets = candidates - pinned;〃correct the candidate count on first pass for priiitiiigif (this.pass == 1)candidates = total;total += itenisets;if (itemsets <= this.pass && tliis.pass > 1) {running = false;}System.out.piiiitlii(H pass: n + tliis.pass +total: M + total +", candidates:" + candidates +pnmed: M + pruned);*Method for generatmg new candidates・*Copies the siblmgs of an item to its children.**©param item the item to wliich generated items are added*@param depth the deptli of recursion*@return the number of new candidates generated*/public mt generateCandidates(Item item. Vector current, mt depth) { Vector v = item.getChildren(); Item cluld = item;mt generated = 0;for (Enumeiation e = v.elements(); e.hasMoieElementsQ;) { cluld = (Item)e.nextElement();current.add(cluld);if (depth == this.pass-1) {generated += tliis.copySiblmgs(cluld. v, curient);} else {generated += this.generateCandidates(cluld, current, depth+1); }current.remove(cluld);}return generated;}*Method for copying the siblmgs of an Item to its children.*the item to which the siblmgs are copied the siblmgs to becopiedthe current itemset to be generated the number of siblmgscopied public mt copySiblmgs(Item item. Vector siblings,Vector cunent) {Enumeration e = siblmgs.elements();Item parent = item;Item sibling = new Item();iiit copied = 0;wliile (siblmg.getLabelQ < paient.getLabelQ && e.hasMoreElementsQ) { sibling = (Item)e.nextElementQ;}wliile (e.hasMoieElementsQ) {sibling = (Item)e.nextElementQ;current.add(siblmg);if (this.pass <= 2 || this.checkSubsets(cunent, this.ioot.getChildien(), 0、1)){ parent.addCluld(new Item(sibling.getLabel()));copied++;}current.remove(siblmg);return copied;}*@param item*@param siblings *@param current *©return*/}*Checks if the subsets of the itemset to be generated aie all fiequent. **@param current *@param children *@param niaik*@param depth *©return*/ the current itemset to be generatedthe children in the trie on this depththe mark in the current iteniset depth of recursion tme if the subsets are fiequent, else falsepublic boolean checkSubsets(Vector current, Vector cliildren, mt mark, int depth) { boolean ok = true;Item cluld;iiit index;iiit i = depth;if (cluldien == null) return false;wliile (ok && (maik <= i)) {uidex = children. indexOf(cuiTent. element At(i));if (index >= 0) {if (depth < tliis.pass-1) {cluld = (Item)children.elementAt(iiidex);ok = checkSubsets(cuirent, cliild.getChildienQ, i+1,depth+1); }} else {ok = false;}i-;}return ok;}/***Method for countmg the supports of the candidates*generated on tliis pass.**@return the number of transactions from wliich*the support was counted*/public mt countSupport() {iiit rowcount = 0;mt[] items;this.dh.open();for (items = this.dh.read(); items.length > 0; items = tliis.dh.readQ) { iowcount++;if (this.pass == 1) {this.root.mc Support。

数据挖掘安全实验报告

数据挖掘安全实验报告

一、实验背景随着信息技术的飞速发展,数据挖掘技术在各个领域得到了广泛应用。

然而,数据挖掘过程中涉及的大量个人信息和敏感数据,使得数据挖掘的安全和隐私问题日益突出。

为了提高数据挖掘的安全性,本实验针对数据挖掘过程中的安全风险进行了深入研究,并提出了相应的解决方案。

二、实验目的1. 分析数据挖掘过程中的安全风险;2. 设计数据挖掘安全实验方案;3. 验证实验方案的有效性;4. 提出提高数据挖掘安全性的建议。

三、实验方法1. 文献调研:通过查阅相关文献,了解数据挖掘安全领域的最新研究成果,为实验提供理论基础;2. 实验设计:根据文献调研结果,设计数据挖掘安全实验方案,包括实验环境、实验数据、实验方法等;3. 实验实施:在实验环境中,按照实验方案进行数据挖掘实验,并记录实验数据;4. 数据分析:对实验数据进行分析,评估实验方案的有效性;5. 结果总结:根据实验结果,提出提高数据挖掘安全性的建议。

四、实验内容1. 数据挖掘安全风险分析(1)数据泄露:数据挖掘过程中,未经授权的访问、篡改或泄露个人信息和敏感数据;(2)数据篡改:攻击者通过篡改数据,影响数据挖掘结果的准确性;(3)隐私侵犯:数据挖掘过程中,收集、存储、处理个人隐私信息时,可能侵犯个人隐私;(4)数据质量:数据挖掘过程中,数据质量低下可能导致挖掘结果不准确。

2. 数据挖掘安全实验方案(1)实验环境:搭建一个数据挖掘实验平台,包括数据源、数据挖掘工具、安全防护设备等;(2)实验数据:选取具有代表性的数据集,包括个人隐私信息、敏感数据等;(3)实验方法:采用数据加密、访问控制、数据脱敏等技术,提高数据挖掘安全性。

3. 实验实施(1)数据加密:对实验数据进行加密处理,确保数据在传输和存储过程中的安全性;(2)访问控制:设置访问权限,限制未经授权的访问;(3)数据脱敏:对个人隐私信息进行脱敏处理,降低隐私泄露风险;(4)数据质量检查:对实验数据进行质量检查,确保数据挖掘结果的准确性。

数据挖掘实验报告结论(3篇)

数据挖掘实验报告结论(3篇)

第1篇一、实验概述本次数据挖掘实验以Apriori算法为核心,通过对GutenBerg和DBLP两个数据集进行关联规则挖掘,旨在探讨数据挖掘技术在知识发现中的应用。

实验过程中,我们遵循数据挖掘的一般流程,包括数据预处理、关联规则挖掘、结果分析和可视化等步骤。

二、实验结果分析1. 数据预处理在实验开始之前,我们对GutenBerg和DBLP数据集进行了预处理,包括数据清洗、数据集成和数据变换等。

通过对数据集的分析,我们发现了以下问题:(1)数据缺失:部分数据集存在缺失值,需要通过插补或删除缺失数据的方法进行处理。

(2)数据不一致:数据集中存在不同格式的数据,需要进行统一处理。

(3)数据噪声:数据集中存在一些异常值,需要通过滤波或聚类等方法进行处理。

2. 关联规则挖掘在数据预处理完成后,我们使用Apriori算法对数据集进行关联规则挖掘。

实验中,我们设置了不同的最小支持度和最小置信度阈值,以挖掘出不同粒度的关联规则。

以下是实验结果分析:(1)GutenBerg数据集在GutenBerg数据集中,我们以句子为篮子粒度,挖掘了林肯演讲集的关联规则。

通过分析挖掘结果,我们发现:- 单词“the”和“of”在句子中频繁出现,表明这两个词在林肯演讲中具有较高的出现频率。

- “and”和“to”等连接词也具有较高的出现频率,说明林肯演讲中句子结构较为复杂。

- 部分单词组合具有较高的置信度,如“war”和“soldier”,表明在林肯演讲中提到“war”时,很可能同时提到“soldier”。

(2)DBLP数据集在DBLP数据集中,我们以作者为单位,挖掘了作者之间的合作关系。

实验结果表明:- 部分作者之间存在较强的合作关系,如同一研究领域内的作者。

- 部分作者在多个研究领域均有合作关系,表明他们在不同领域具有一定的学术影响力。

3. 结果分析和可视化为了更好地展示实验结果,我们对挖掘出的关联规则进行了可视化处理。

通过可视化,我们可以直观地看出以下信息:(1)频繁项集的分布情况:通过柱状图展示频繁项集的分布情况,便于分析不同项集的出现频率。

生物数据挖掘聚类分析实验报告

生物数据挖掘聚类分析实验报告

实验三 聚类分析一、实验目的1. 了解典型聚类算法2. 熟悉聚类分析算法的思路与步骤3. 掌握运用Matlab 对数据集做聚类分析的方法二、实验内容1. 运用Matlab 对数据集做K 均值聚类分析2. 运用Matlab 对数据集做基于密度的聚类分析三、实验步骤1.写出对聚类算法的理解聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。

聚类(Cluster )分析是由若干模式(Pattern )组成的,通常,模式是一个度量(Measurement )的向量,或者是多维空间中的一个点。

聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。

在数据中发现数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好。

在进行聚类分析时,出于不同的目的和要求,可以选择不同的统计量和聚类方法。

2.写出K-means 算法步骤通过迭代把数据对象划分到不同的簇中,以求目标函数最大化,从而使生成的簇尽可能地紧凑和独立。

具体步骤如下:(1)首先,随机选取k 个对象作为初始的k 个簇的质心;(2)然后,将其余对象根据其与各个簇质心的距离分配到最近的簇;(3)再要求形成的簇的质心。

这个迭代重定位过程不断重复,直到目标函数最小化为止。

设p 表示数据对象,i c 表示 簇i C 的均值,通常采用的目标函数形式为平法误差准则函数: 21||||∑∑=∈-=k i C p i i c p E (欧几里得距离)3.写出DBSCAN 算法步骤与均值漂移聚类类似,DBSCAN 也是基于密度的聚类算法。

具体步骤如下:(1)首先确定半径r 和minPoints. 从一个没有被访问过的任意数据点开始,以这个点为中心,r为半径的圆内包含的点的数量是否大于或等于minPoints,如果大于或等于minPoints则改点被标记为central point,反之则会被标记为noise point。

数据挖掘实验报告三

数据挖掘实验报告三

实验三一、实验原理K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。

在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。

算法原理:(1) 随机选取k个中心点;(2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类;(3) 更新中心点为每类的均值;(4) j<-j+1 ,重复(2)(3)迭代更新,直至误差小到某个值或者到达一定的迭代步数,误差不变.空间复杂度o(N)时间复杂度o(I*K*N)其中N为样本点个数,K为中心点个数,I为迭代次数二、实验目的:1、利用R实现数据标准化。

2、利用R实现K-Meams聚类过程。

3、了解K-Means聚类算法在客户价值分析实例中的应用。

三、实验内容依据航空公司客户价值分析的LRFMC模型提取客户信息的LRFMC指标。

对其进行标准差标准化并保存后,采用k-means算法完成客户的聚类,分析每类的客户特征,从而获得每类客户的价值。

编写R程序,完成客户的k-means聚类,获得聚类中心与类标号,并统计每个类别的客户数四、实验步骤1、依据航空公司客户价值分析的LRFMC模型提取客户信息的LRFMC指标。

2、确定要探索分析的变量3、利用R实现数据标准化。

4、采用k-means算法完成客户的聚类,分析每类的客户特征,从而获得每类客户的价值。

五、实验结果客户的k-means聚类,获得聚类中心与类标号,并统计每个类别的客户数六、思考与分析使用不同的预处理对数据进行变化,在使用k-means算法进行聚类,对比聚类的结果。

kmenas算法首先选择K个初始质心,其中K是用户指定的参数,即所期望的簇的个数。

这样做的前提是我们已经知道数据集中包含多少个簇.1.与层次聚类结合经常会产生较好的聚类结果的一个有趣策略是,首先采用层次凝聚算法决定结果粗的数目,并找到一个初始聚类,然后用迭代重定位来改进该聚类。

数据挖掘实验报告

数据挖掘实验报告

数据挖掘实验报告数据挖掘是一门涉及发现、提取和分析大量数据的技术和过程,它可以揭示出隐藏在数据背后的模式、关系和趋势,对决策和预测具有重要的价值。

本文将介绍我在数据挖掘实验中的一些主要收获和心得体会。

实验一:数据预处理在数据挖掘的整个过程中,最重要的一环就是数据预处理。

数据预处理包括数据清洗、数据集成、数据转换和数据规约等步骤,目的是为了提高数据的质量和可用性。

首先,我对所使用的数据集进行了初步的观察和探索。

发现数据集中存在着一些缺失值和异常值。

为此,我使用了一些常见的缺失值处理方法,如均值替代、中值替代和删除等。

对于异常值,我采用了离群值检测和修正等方法,使得数据在后续的分析过程中更加真实可信。

其次,我进行了数据集成的工作。

数据集合并是为了整合多个来源的数据,从而得到更全面和综合的信息。

在这个过程中,我需要考虑数据的一致性和冗余情况。

通过采用数据压缩和去重等技术,我成功地完成了数据集成的工作。

接着,我进行了数据转换的处理。

数据转换是为了将原始的数据转换成适合数据挖掘算法处理的形式。

在这个实验中,我采用了数据标准化和归一化等方法,使得不同属性之间具备了可比性和可计算性,从而便于后续的分析过程。

最后,我进行了数据规约的操作。

数据规约的目的在于减少数据的维数和复杂度,以提高数据挖掘的效果。

在这个阶段,我采用了主成分分析和属性筛选等方法,通过压缩数据集的维度和减少冗余属性,成功地简化了数据结构,提高了挖掘效率。

实验二:关联规则挖掘关联规则挖掘是数据挖掘中常用的一种方法,它用于发现数据集中项集之间的关联关系。

在这个实验中,我使用了Apriori算法来进行关联规则的挖掘。

首先,我对数据进行了预处理,包括数据清洗和转换。

然后,我选择了适当的最小支持度和最小置信度阈值,通过对数据集的扫描和频繁项集生成,找出了数据集中的频繁项集。

接着,我使用了关联规则挖掘算法,从频繁项集中挖掘出了具有一定置信度的关联规则。

在实验过程中,我发现挖掘出的关联规则具有一定的实用性和可行性。

数据仓库与数据挖掘实验报告3

数据仓库与数据挖掘实验报告3
《数据仓库与数据挖掘》课程实验报告
开课实验室:经济管理基础实验室(一)2013年6月10日
学院
经济管理学院
年级、专业、班
信息管理101
姓名
张江平目
名称
数据仓库的数据挖掘
指导教师
黄传峰
教师评语
教师签名:
年月日
一、实验目的、内容、原理与环境
1、实验目的
通过本实验的学习,使学生掌握在SQL Server 2005示例数据仓库环境下关联规则和数据分类(决策树)应用的知识,训练其把教材上的内容应用到实际中的技能,为今后继续关联规则知识的学习奠定基础。
经济管理基础实验室一2013学院经济管理学院年级专业班信息管理101姓名张江平成绩课程名称数据仓库与数据挖掘实验项目数据仓库的数据挖掘指导教师一实验目的内容原理与环境1实验目的通过本实验的学习使学生掌握在sqlserver2005示例数据仓库环境下关联规则和数据分类决策树应用的知识训练其把教材上的内容应用到实际中的技能为今后继续关联规则知识的学习奠定基础
2、实验内容
在SQL Server 2005示例数据仓库环境下关联规则和数据分类(决策树)的应用两个部分的内容。
3、实验原理、方法和手段
1.关联规则:项目与项集,关联规则的支持度与最小支持度,关联规则的可信度与最小可信度。
2.数据分类(决策树):精确度,查全率和查准率,信息增益,信息增益比。
4、实验组织运行要求
根据本实验的特点、要求和具体条件,采用“以学生自主训练为主的开放模式组织教学”。
5、实验环境
SQL Server 2005示例数据仓库环境。
二、实验步骤
三、实验总结
数据仓库的数据挖掘在SQL Server 2005示例数据仓库环境下通过对关联规则的项目与项集,关联规则的支持度与最小支持度,关联规则的可信度与最小可信度;数据分类(决策树)的精确度,查全率和查准率,信息增益,信息增益比两个内容根据本实验的特点、要求和具体条件,采用“以学生自主训练为主的开放模式组织教学”。掌握在SQL Server 2005示例数据仓库环境下关联规则和数据分类(决策树)应用的知识,训练其把教材上的内容应用到实际中的技能,为今后继续关联规则知识的学习奠定基础。

weka数据挖掘实验3报告

weka数据挖掘实验3报告

数据挖掘实验报告姓名:邢金雁学号:091070106专业:电子商务实验三一、实验名称:基于聚类分析的信息获取二、实验目的:通过一个已有的训练数据集,观察训练集中的实例,进行聚类信息获取,更好地理解和掌握聚类分析算法基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。

三、实验要求1、熟悉Weka平台2、掌握聚类分析算法3、对数据进行预处理,利用Weka和不同参数设置进行聚类分析,对比结果,得出结论,对问题进行总结。

四、实验平台新西兰怀卡托大学研制的Weka系统实验方法和步骤过程1.首先对于原始数据做预处理,步骤同实验二2.用Weka打开bank-data.arff文件,进行相应设置后开始分析图1——K=6,seed=10的结果3.实验分析(1)K=6,seed=50:Within cluster sum of squared errors: 1576.5199261033185 (2)K=6,seed=95:Within cluster sum of squared errors: 1546.8697861466735 (3)K=6,seed=100:Within cluster sum of squarederrors:1555.6241507629218(4)K=6,seed=105:Within cluster sum of squarederrors:1529.4152722569527(5)K=6,seed=110:Within cluster sum of squarederrors:1584.8762574241377因此选择数值最小的seed=105图2——seed=105的“Cluster centroids”和“Clustered Instances”部分图3——可视化的聚类结果图4——保存的聚类结果文件实验问题解答1.在Weka中实现K均值聚类的数据预处理中:(1)为什么要将children属性变成分类型?答:因为K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:基于Weka 进行关联规则挖掘
实验步骤
1.利用Weka对数据集contact-lenses.arff进行Apriori关联规则挖掘。

要求:
描述数据集;解释Apriori 算法及流程;解释Weka 中有关Apriori 的参数;解释输出结果
Apriori 算法:
1、发现频繁项集,过程为
(1)扫描
(2)计数
(3)比较
(4)产生频繁项集
(5)连接、剪枝,产生候选项集
(6)重复步骤(1)~(5)直到不能发现更大的频集
2、产生关联规则
(1)对于每个频繁项集L,产生L的所有非空子集;
(2)对于L的每个非空子集S,如果
P(L)/P(S)≧min_conf(最小置信度阈值)
则输出规则“S=>L-S”
Weka 中有关Apriori 的参数:
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 如果设置为真,则算法会以冗余模式运行。

对数据集contact-lenses.arff进行Apriori关联规则挖掘的结果:
由输出:共进行16轮搜索,生成11个频繁1项集,21个频繁2项集,6个频繁3项集;产生10条(设置的)关联规则;
如第一条规则,tear-prod-rate=reduced ==>contact-lenses=none 的置信度为1,即在
tear-prod-rate=reduced 的条件下,contact-lenses=none的概率为1;
2.根据CarInfo.txt 和CarInfo Description.txt 两个文件将CarInfo.txt 转换成CarInfo.arff 文件,并进行Apriori 关联规则挖掘。

要求同1
将txt文件数据复制到excel中并保存为CSV格式,在weka中打开CSV文件,并保存为arff文件即可。

其他同1;
3.解释FPGrowth 算法;解释Weka 中关于FPGrowth 算法的参数;比较FPGrowth 和Apriori 算法的区别
FPGrowth 算法:
1、构造项头表:扫描数据库一遍,得到频繁项的集合F和每个频繁项的支持度。

把F按支持度递降排序,记为L。

2、构造原始FPTree:把数据库中每个事物的频繁项按照L中的顺序进行重排。

并按照重排之后的顺序把每个事物的每个频繁项插入以null为根的FPTree中。

如果插入时频繁项节点已经存在了,则把该频繁项节点支持度加1;如果该节点不存在,则创建支持度为1的节点,并把该节点链接到项头表中。

3、对FP树挖掘:
由长度为1的叶子节点开始,构造它的条件模式基,然后构造它的条件FP树,并递归的在该树上进行挖掘,模式增长通过后缀模式与条件FP树昌盛的频繁模式连接实现。

FPGrowth 算法的参数:
1.delta:以此数值为迭代递减单位。

不断减小支持度直至达到最小支持度或产生了满足数量要求的规则。

2.findAllRulesForSupportLevel:查找满足最小支持下限和最小度量约束的所有规则。

打开此模式将禁用迭代支持减少过程,以查找指定数量的规则。

3.lowerBoundMinSupport:最小支持度下界
4.maxNumberOfItems:频繁项集中最多项的个数
5.metricType:度量类型。

设置对规则进行排序的度量依据。

可以是:置信度(类关联规则只能用置信度挖掘),提升度(lift),杠杆率(leverage),确信度(conviction)。

6.在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越关联。

7.minMetric:最小度量
8.numRulesToFind:要发现的规则数
9.positiveIndex:设置要被视为正索引的二进制值属性的索引。

对稀疏数据没有影响(在这种情况下,第一个索引(即非零值)总是被视为正值。

对一元值属性没有影响(即当使用Weka Apriori样式格式用于市场篮子数据时,使用缺少值“?”表示项目不存在。

10.rulesMustContain:打印出只包含这些项的规则
11.transactionsMustContain:将FPGrowth的输入限制为包含这些项的事务(实例)。

提供一个逗号分隔的属性名称列表。

12.upperBoundMinSupport:最小支持度上界
eORForMustContainList:对规则使用OR而不是AND必须包含列表。

FPGrowth 和Apriori 算法的区别:
FP-growth算法比Apriori算法快一个数量级,在空间复杂度方面也比Apriori也有数量级级别的优化。

但是对于海量数据,FP-growth的时空复杂度仍然很高,可以采用的改进方法包括数据库划分,数据采样等等。

相关文档
最新文档