文档库 最新最全的文档下载
当前位置:文档库 › 河南科技大学数据挖掘课程设计报告

河南科技大学数据挖掘课程设计报告

河南科技大学数据挖掘课程设计报告
河南科技大学数据挖掘课程设计报告

河南科技大学

课程设计说明书

课程名称__软件项目综合实践__

题目超市商品销售数据挖掘系统

学院信息工程学院

班级计科113

学生姓名彭逸帆

学号 111404060319

指导教师白秀玲、赵海霞、张蕾

日期 2014.9.22~2014.9.30

目录

第1章数据挖掘基本理论 (1)

§1.1数据挖掘的概念 (1)

§1.2数据挖掘的步骤 (1)

第2章系统分析 (1)

§2.1系统用户分析 (1)

§2.2系统功能分析 (2)

§2.3系统算法分析 (2)

第3章数据管理 (2)

§3.1数据管理的方法 (2)

§3.2数据管理的具体实现过程 (2)

第4章数据采集 (2)

§4.1数据采集的方法 (2)

§4.2数据采集的具体实现过程 (2)

第5章数据预处理 (2)

§5.1数据预处理的方法 (2)

§5.2数据预处理的具体实现过程 (4)

第6章数据挖掘 (4)

§6.1算法描述与流程图 (5)

§6.2数据结构的设计 (5)

§6.3算法的具体实现 (6)

第7章结果显示与解释评估 (6)

§7.1参数设置 (11)

§7.2结果显示界面的具体实现 (11)

§7.3解释评估 (11)

学习体会 (15)

参考文献 (15)

致谢 (15)

§第1章数据挖掘基本理论

§1.1数据挖掘的概念

数据挖掘又称为数据库中知识发现,它是一个从大量数据中抽取挖掘出来未知的、有价值的模式或规律等知识的复杂过程。

§1.2数据挖掘的步骤

首先进行数据预处理,从数据库里提取数据,使其形成集合列表形式,以便在程序中扫描数据库的时候,可以直接遍历此集合列表,即达到扫描数据的目的。然后生成K项频繁集。最后通过K项频繁集与最小信任度比较获得关联规则。并显示关联规则。生成K项频繁集的过程,首先是生成1项频繁集,之后利用递

归方法,直到不能再生成频繁集为止。

§第2章系统分析

§2.1 系统用户分析

利用数据挖掘技术可以帮助获得决策所需的多种知识。在许多情况下,用户并不知道数据存在哪些有价值的信息知识,因此对于一个数据挖掘系统而言,它应该能够同时搜索发现多种模式的知识,以满足用户的期望和实际需要。此外数据挖掘系统还应能够挖掘出多种层次(抽象水平)的模式知识。数据挖掘系统还应容许用户指导挖掘搜索有价值的模式知识。比如:作为一个商场主管,肯定想要知道商场顾客的购物习惯;尤其是希望了解在(一次)购物过程中,那些商品会在一起被(顾客所)购买。为帮助回答这一问题,就需要进行市场购物分析,即对顾客在商场购物交易记录数据进行分析。所分析的结果将帮助商场主管制定有针对性的市场营销和广告宣传计划,以及编撰合适的商品目录。比如:市场购物分析结果将帮助商家对商场内商品应如何合理摆放进行规划设计。其中一种策略就是将常常一起购买的商品摆放在相邻近的位置,以方便顾客同时购买这两件商品;如:如果顾客购买电脑的同时常也会购买一些金融管理类软件,那么将电脑软件摆放在电脑硬件附近显然将有助于促进这两种商品的销售;而另一种策略则是将电脑软件与电脑硬件分别摆放在商场的两端,这就会促使顾客在购买两种商品时,走更多的路从而达到诱导他们购买更多商品的目的。比如:顾客在决定购买一台昂贵电脑之后,在去购买相应金融管理软件的路上可能会看到安全系统软件,这时他就有可能购买这一类软件。市场购物分析可以帮助商场主管确定那些物品可以进行捆绑减价销售,如一个购买电脑的顾客很有可能购买一个捆绑减价销售的打印机。

§2.2 系统功能分析

我们组所开发的超市销售记录数据挖掘系统是采用关联规则挖掘的方法来挖掘出商家希望得到的销售信息。关联规则挖掘就是从大量的数据中挖掘出有价值描述数据项之间相互联系的有关知识。我们开发的超市销售记录数据挖掘系统主要应用就是市场购物分析。根据被放到一个购物袋的(购物)内容记录数据而发现的不同(被购买)商品之间所存在的关联知识无疑将会帮助商家分析顾客的购买习惯。如图- 所示。发现常在一起被购买的商品(关联知识)将帮助商家制定有针对性的市场营销策略。比如:顾客在购买牛奶时,是否也可能同时购买面包或会购买哪个牌子的面包,显然能够回答这些问题的有关信息肯定会有效地帮助商家进行有针对性的促销,以及进行合适的货架商品摆放。如可以将牛奶和面包放在相近的地方或许会促进这两个商品的销售。

将商场所有销售商品设为一个集合,每个商品(item)均为一个取布尔值(真/假)的变量以描述相应商品是否被(一个)顾客购买。因此每个顾客购物(袋)就可以用一个布尔向量来表示。分析相应布尔向量就可获得那些商品是在一起被购买(关联)的购物模式。如顾客购买电脑的同时也会购买金融管理软件的购物模式就可以用以下的关联规则来描述:

computer=>financial_management_software[support=2%,confidence=60% ]

关联规则的支持度(support)和信任度(confidence)是两个度量有关规则趣味性的方法。它们分别描述了一个被挖掘出的关联规则的有用性和确定性。规则的支持度为2%,就表示所分析的交易记录数据中有交易记录同时包含电脑和金融管理软件(即在一起被购买)。规则的60%信任度则表示有60%的顾客在购买电脑的同时还会购买金融管理软件。通常如果一个关联规则满足最小支持度阈值(minimum support threshold)和最小信任度阈值(minimum confidence threshole),那么就认为该关联规则是有意义的;而用户或专家可以设置最小支持度阈值和最小信任度阈值。

§2.3系统算法分析

超市商品销售数据挖掘系统采用关联规则算法,主要进行数据管理。对数据

库中的数据进行管理和维护工作。数据采集。从数据库中采集数据,形成事务集合。数据预处理。将采集到的数据转换为可进行数据挖掘的形式。数据挖掘。采用关联规则中的Apriori算法对超市销售事务集合进行数据挖掘。结果显示与解释评估。把挖掘出的结果以一种直观的方式显示出来,并对挖掘出的结果进行评价。

§第3章数据管理

§3.1数据管理的方法

数据管理是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用,而实现数据有效管理的关键是数据组织,在数据库系统中所建立的数据结构,更充分地描述了数据间的内在联系,便于数据修改、更新与扩充,同时保证了数据的独立性、可靠性、安全性与完整性,减少了数据冗余,故提高了数据共享程度及数据管理效率。

我们在数据库中建立了一张表,用于存放所有的销售记录,每条销售记录都存放于这一张表中,用于后面的数据挖掘。并在录入数据库的过程中检查了数据的正确性,把异常数据剔除在外,确保了数据库的正确性、一致性。

§第4章数据采集

§4.1数据采集的方法

数据采集在数据挖掘的过程中是必不可少的,毕竟只有采集到了大量的、正确的、完整的数据,才能够为后面数据挖掘提供良好的基础,得到有价值的信息。本次课程设计中,我们通过走访超市向他们征询销售记录,在网上搜索相关的超市销售记录的方式收集到了两份数据,通过去除异常数据、冗余数据把两份数据合并到一张表里,为后面数据挖掘提供必要的条件,确保得到有价值的信息。

本软件在开发中,数据采集主要是借用程序和人工来实现的。通过人工的录入来输入超市的销售记录数据,然后再借用所编写的程序来筛选出所要挖掘的销售物品的信息,以备后期数据预处理和数据挖掘所使用。

§第5章数据预处理

§5.1 数据预处理的方法

实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约,数据离散化等。

这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间。

本次课程设计中主要用到了前四种方法即数据清理,数据集成,数据变换,数据归约完成数据入库前的数据预处理过程,由于种种原因最后选取的数据量不是很大,所以在这里并没有使用全部的数据预处理方法。

§第6章数据挖掘

§6.1算法描述与流程图

§6.1.1 算法描述

Apriori算法是挖掘产生布尔关联规则所需频繁项集的基本算法;它也是一个很有影响的关联规则挖掘算法。Apriori算法就是根据有关频繁项集特性的先验知识(prior knowledge)而命名的。该算法利用了一个层次顺序搜索的循环方法来完成频繁项集的挖掘工作。这一循环方法就是利用k-项集来产生(k+1)-项集。具体做法就是:首先找出频繁1-项集,记为L1;然后利用L1来挖掘L2,即频繁2-项集;不断如此循环下去直到无法发现更多的频繁k-项集为止。每挖掘一层Lk就需要扫描整个数据库一遍。为提高按层次搜索并产生相应频繁项集的处理效率。Apriori算法利用了一个重要性质,又称为Apriori性质来帮助有效缩小频繁项集的搜索空间。

Apriori性质:一个频繁项集中任一子集也应是频繁项集。

Apriori性质是根据以下观察而得出结论。根据定义:若一个项集I不满足最小支持度阈值s,那么该项集I就不是频繁项集,即P(I)

为了解释清楚Apriori性质是如何应用到频繁项集的挖掘中的,这里就以用Lk-1来产生Lk为例来说明具体应用方法。利用Lk-1来获得Lk主要包含两个处理步骤,即连接和删除操作步骤。

(1)连接步骤。为发现Lk,可以将Lk-1中两个项集相连接以获得一个Lk 的候选集合Ck。设l1和l2为Lk-1中的两个项集(元素),记号表示li[j] 中的第j个项;如li[k-2]就表示li中的倒数第二项。为方便起见,假设交易数

据库中各交易记录中各项均已按字典排序。若Lk-1的连接操作记为Lk-1⊕Lk-1 ,它表示若l1和l2中的前(k-2)项是相同的,也就是说若有(l1[1]=l2[1])∧…∧(l1[k-2]=l2[k-2]) ∧(l1[k-1]

(2)删除步骤。Ck是Lk的一个超集,它其中的各元素(项集)不一定都是频繁项集,但所有的频繁-项集一定都在Ck中,即有Lk包含于Ck。扫描一遍数据库就可以决定Ck中各候选项集(元素)的支持频度,并由此获得Lk中各个元素(频繁k-项集)。所有频度不小于最小支持频度的候选项集就是属于Lk的

频繁项集。然而由于Ck中的候选项集很多,如此操作所涉及的计算量(时间)是非常大的,为了减少Ck的大小,就需要利用Apriori性质:“一个非频繁(k-1)-

项集不可能成为频繁k-项集的一个子集”。因此若一个候选k-项集中任一子集((k-1)-项集)不属于Lk-1,那么该候选k-项集就不可能成为一个频繁k-项集,因而也就可以将其从Ck中删去。

§6.1.2 算法流程图

图6-1 算法流程

§6.2数据结构的设计

因为挖掘过程中始终都是对项集进行操作,所以主要是对数据项集的数据结构设计,采用如下设计:

class AprioriSet

{string _TID;

List _Item;

public string TID

{

get

{ return _TID; }

set

{_TID = value; }

}

public List Item

{

get

{ return _Item; }

set

{ _Item = value;}

}

public AprioriSet(string tID, List item)

{

_TID = tID;

_Item = item;

}}

§6.3算法的具体实现

public Apriori()

{

try

{

originDataList = DBHelper.getList("select productsID from record");

originDataList=DBHelper.transOriginListToStringList(originDataList);

}

catch

{

throw;

}

}

#region "工具"

#endregion

///

///得到所有的频繁项集

///

///

public Dictionary getFrequentItems()

{

Dictionary frequentCollectionMap = new Dictionary

int>();//所有的频繁项集

DBHelper.DictionaryAddAll(ref frequentCollectionMap, getNewFrequentItems());

Dictionary itemkFcMap = new Dictionary();

DBHelper.DictionaryAddAll(ref itemkFcMap, getNewFrequentItems());

while (itemkFcMap != null && itemkFcMap.Count() != 0)

{

Dictionary candidateCollection =

getCandidateCollection(itemkFcMap);

foreach (string trans in originDataList)

{

for (int j = 0; j < candidateCollection.Count; j++)

{

KeyValuePair kvp = candidateCollection.ElementAt(j);

bool flag = true; //用来判断交易中是否出现候选项,如果出现计数加1

string[] candidateItems = kvp.Key.Split(new string[]

{ ITEM_SPLIT }, System.StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < candidateItems.Length; i++)

{

if (trans.IndexOf(candidateItems[i] + ITEM_SPLIT) == -1)

{

flag = false;

break;

}

}

if (flag)

{

int count = kvp.Value;

candidateCollection.Remove(kvp.Key);

candidateCollection.Add(kvp.Key, kvp.Value + 1);

}

}

}

itemkFcMap.Clear();

foreach (KeyValuePair kvp in candidateCollection)

{

int count = kvp.Value;

if (count >= SUPPORT)

{

itemkFcMap.Add(kvp.Key, kvp.Value);

}

}

//合并所有频繁集

DBHelper.DictionaryAddAll(ref frequentCollectionMap, itemkFcMap);

}

return frequentCollectionMap;

}

///

///得到满足支持度的频繁项集

///

///

private Dictionary getNewFrequentItems()

{

Dictionary FIDictionary1 = new Dictionary();

Dictionary FIDictionary2 = new Dictionary(); //频繁1项集

foreach (string originItems in originDataList)

{

string[] items = originItems.Split(new string[] { ITEM_SPLIT }, System.StringSplitOptions.RemoveEmptyEntries);

foreach (string item in items)

{

int count = 0;

bool result = FIDictionary1.TryGetValue(item + ITEM_SPLIT, out count);

if (!result)

{

FIDictionary1[item + ITEM_SPLIT] = 1;

}

else

{

FIDictionary1[item + ITEM_SPLIT] = count + 1;

}

}

}

Dictionary.KeyCollection keySet = FIDictionary1.Keys;

foreach (string key in keySet)

{

int count = FIDictionary1[key];

if (count >= SUPPORT)

{

FIDictionary2[key] = count;

}

}

return FIDictionary2;

}

///

///

///

///

private Dictionary getCandidateCollection(Dictionary itemkFcMap)

{

Dictionary candidateCollection = new Dictionary();

Dictionary.KeyCollection itemkSet1 = itemkFcMap.Keys;

Dictionary.KeyCollection itemkSet2 = itemkFcMap.Keys;

foreach (string itemk1 in itemkSet1)

{

foreach (string itemk2 in itemkSet2)

{

string[] tmp1 = itemk1.Split(new string[]

{ ITEM_SPLIT }, System.StringSplitOptions.RemoveEmptyEntries);

string[] tmp2 = itemk2.Split(new string[]

{ ITEM_SPLIT }, System.StringSplitOptions.RemoveEmptyEntries);

string c = "";

if (tmp1.Length == 1)

{

if (tmp1[0].CompareTo(tmp2[0]) < 0)

{

c = tmp1[0] + ITEM_SPLIT + tmp2[0] + ITEM_SPLIT;

}

}

else

{

bool flag = true;

for (int i = 0; i < tmp1.Length - 1; i++)

{

if (!tmp1[i].Equals(tmp2[i]))

{

flag = false;

break;

}

}

if(flag && (tmp1[tmp1.Length - 1].CompareTo(tmp2[tmp2.Length - 1]) < 0))

{

c = itemk1 + tmp2[tmp2.Length - 1] + ITEM_SPLIT;

}

}

bool hasInfrequentSubSet = false;

if (!c.Equals(""))

{

string[] tmpC = c.Split(new string[] { ITEM_SPLIT },

System.StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < tmpC.Length; i++)

{

string subC = "";

for (int j = 0; j < tmpC.Length; j++)

{

if (i != j)

{

subC = subC + tmpC[j] + ITEM_SPLIT;

}

}

int mValue = 0;

if (!itemkFcMap.TryGetValue(subC, out mValue))

{

hasInfrequentSubSet = true;

break;

}

}

}

else

{

hasInfrequentSubSet = true;

}

if (!hasInfrequentSubSet)

{

candidateCollection[c] = 0;

}

}

}

return candidateCollection;

}

}

}

§第7章结果显示与解释评估

§7.1 参数设置

本系统所用参数包括:最小支持度、最小置信度。最小支持度用于筛选出商品的频繁项集集合,从而算出支持度;最小置信度用于筛选出符合要求的商品集合之间信任度集合。通过最小支持度和最小置信度用户可以根据实际需要来决定筛选的程度。

§7.2 结果显示界面的具体实现

数据呈现界面主要使用的组件有:ADOConnection,ADOQuery,DataSource, DBGrid,Button.

各个组件的功能:

ADOConnection的功能是建立与数据库的连接;

ADOQuery的功能是用于检索和操作由合法的SQL语句产生的数据集,也可以执行一条SQL命令;

DataSource的功能是作为数据控制组件DBGrid,DBEdit的数据传送通道;

DBGrid的功能是为前端应用程序提供浏览数据库数据的表格,这些表格操作者编辑数据;

Button(刷新)的功能是执行重新输出销售记录表的所有数据的命令;

数据挖掘界面主要使用的组件有:ADOConnection,ADOQuery,DataSource, Label,edit,GroupBox,ListBox,Button。

各个组件的功能:

ADOConnection的功能是建立与数据库的连接;

ADOQuery的功能是用于检索和操作由合法的SQL语句产生的数据集,也可以执行一条SQL命令;

DataSource的功能是作为数据控制组件DBGrid,DBEdit的数据传送通道;

Label(最小支持度,最小置信度)的功能是显示文字符号作为标签使用;

Edit的功能是显示、修改数据库表中当前记录的字段数据;

GroupBox的功能是组合框,把一些相关组件组合一起;

ListBox显示数据库表中一个指定字段的数据;

Button(开始挖掘)的功能是执行输入数据最小支持度和最小置信度到表中;§7.3解释评估

用可视化的形式显示出数据挖掘的成果,固然为用户提供了使用上的方便,尤其是我们利用了极简的操作界面和很少的操作按钮,避免的用户在使用中的复杂,但是正是由于这种简单的界面和操作,屏蔽了内部处理的细节和步骤,使用户只是单单使用程序而不是理解程序,对程序本身而言是安全的,但对用户而言是隐秘的。

学习体会

通过这次的课程设计,然我对数据挖掘技术有了一个整体的认识。同样在编写程序的时候也遇到了这样或那样的问题。但在老师及同学们的帮助下,艰难的完成了这个系统。这让我对数据挖掘技术以后的深入学习打下了良好的基础。通过课程设计,既复习了以前的旧知识,又学到了一些新的知识。当然我们也遇到了各种问题,这些问题,又都是课本上很少提到的、更深一层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。

但是在整个课程设计阶段,自己还有很多不足的地方,一旦遇到很难解决的问题,陷入困境后,很难自己独立的解决问题,常常需要老师的引导。在今后的学习工作过程中还要加强独立解决问题的能力。总而言之,这次数据挖掘程序设计实践让我们收获很大。

所以尽管遇到了一些问题,但是却学到了很多知识,同时也找到了自己的不

足和其他同学的优点,明白了团结合作的重要性,总之很感谢这次课程设计以及

指导老师和小组成员们。

参考文献

[1] 萨师煊,王珊. 数据库系统概论. 高等教育出版社 2006-5 第五版

[2] Margarent H.Dunham. 数据挖掘教程. 清华大学出版社 2005-1 第一版

[3] 陈文伟. 数据仓库与数据挖掘. 人民邮电出版社 2004-4第一版

致谢

感谢白秀玲、赵海霞、张蕾老师的悉心指导,感谢同组同学对我的帮助,正是由于我们齐心协力,同策同力才使得这次课程设计成功完成,并让我学到了很多东西。

数据挖掘实验报告

《数据挖掘》Weka实验报告 姓名_学号_ 指导教师 开课学期2015 至2016 学年 2 学期完成日期2015年6月12日

1.实验目的 基于https://www.wendangku.net/doc/4f18550462.html,/ml/datasets/Breast+Cancer+WiscOnsin+%28Ori- ginal%29的数据,使用数据挖掘中的分类算法,运用Weka平台的基本功能对数据集进行分类,对算法结果进行性能比较,画出性能比较图,另外针对不同数量的训练集进行对比实验,并画出性能比较图训练并测试。 2.实验环境 实验采用Weka平台,数据使用来自https://www.wendangku.net/doc/4f18550462.html,/ml/Datasets/Br- east+Cancer+WiscOnsin+%28Original%29,主要使用其中的Breast Cancer Wisc- onsin (Original) Data Set数据。Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka使用Java写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。 3.实验步骤 3.1数据预处理 本实验是针对威斯康辛州(原始)的乳腺癌数据集进行分类,该表含有Sample code number(样本代码),Clump Thickness(丛厚度),Uniformity of Cell Size (均匀的细胞大小),Uniformity of Cell Shape (均匀的细胞形状),Marginal Adhesion(边际粘连),Single Epithelial Cell Size(单一的上皮细胞大小),Bare Nuclei(裸核),Bland Chromatin(平淡的染色质),Normal Nucleoli(正常的核仁),Mitoses(有丝分裂),Class(分类),其中第二项到第十项取值均为1-10,分类中2代表良性,4代表恶性。通过实验,希望能找出患乳腺癌客户各指标的分布情况。 该数据的数据属性如下: 1. Sample code number(numeric),样本代码; 2. Clump Thickness(numeric),丛厚度;

数据挖掘聚类算法课程设计报告

数据挖掘聚类问题(Plants Data Set)实验报告 1.数据源描述 1.1数据特征 本实验用到的是关于植物信息的数据集,其中包含了每一种植物(种类和科属)以及它们生长的地区。数据集中总共有68个地区,主要分布在美国和加拿大。一条数据(对应于文件中的一行)包含一种植物(或者某一科属)及其在上述68个地区中的分布情况。可以这样理解,该数据集中每一条数据包含两部分内容,如下图所示。 图1 数据格式 例如一条数据:abronia fragrans,az,co,ks,mt,ne,nm,nd,ok,sd,tx,ut,wa,wy。其中abronia fragrans是植物名称(abronia是科属,fragrans是名称),从az一直到wy 是该植物的分布区域,采用缩写形式表示,如az代表的是美国Arizona州。植物名称和分布地区用逗号隔开,各地区之间也用逗号隔开。 1.2任务要求 聚类。采用聚类算法根据某种特征对所给数据集进行聚类分析,对于聚类形成的簇要使得簇内数据对象之间的差异尽可能小,簇之间的差距尽可能大。 2.数据预处理 2.1数据清理 所给数据集中包含一些对聚类过程无用的冗余数据。数据集中全部数据的组织结构是:先给出某一科属的植物及其所有分布地区,然后给出该科属下的具体植物及其分布地区。例如: ①abelmoschus,ct,dc,fl,hi,il,ky,la,md,mi,ms,nc,sc,va,pr,vi ②abelmoschus esculentus,ct,dc,fl,il,ky,la,md,mi,ms,nc,sc,va,pr,vi ③abelmoschus moschatus,hi,pr 上述数据中第①行给出了所有属于abelmoschus这一科属的植物的分布地区,接下来的②③两行分别列出了属于abelmoschus科属的两种具体植物及其分布地区。从中可以看出后两行给出的所有地区的并集正是第一行给出的地区集

数据挖掘实验报告(一)

数据挖掘实验报告(一) 数据预处理 姓名:李圣杰 班级:计算机1304 学号:1311610602

一、实验目的 1.学习均值平滑,中值平滑,边界值平滑的基本原理 2.掌握链表的使用方法 3.掌握文件读取的方法 二、实验设备 PC一台,dev-c++5.11 三、实验内容 数据平滑 假定用于分析的数据包含属性age。数据元组中age的值如下(按递增序):13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70。使用你所熟悉的程序设计语言进行编程,实现如下功能(要求程序具有通用性): (a) 使用按箱平均值平滑法对以上数据进行平滑,箱的深度为3。 (b) 使用按箱中值平滑法对以上数据进行平滑,箱的深度为3。 (c) 使用按箱边界值平滑法对以上数据进行平滑,箱的深度为3。 四、实验原理 使用c语言,对数据文件进行读取,存入带头节点的指针链表中,同时计数,均值求三个数的平均值,中值求中间的一个数的值,边界值将中间的数转换为离边界较近的边界值 五、实验步骤 代码 #include #include #include #define DEEP 3 #define DATAFILE "data.txt" #define VPT 10 //定义结构体 typedef struct chain{ int num; struct chain *next; }* data; //定义全局变量 data head,p,q; FILE *fp; int num,sum,count=0; int i,j; int *box; void mean(); void medain(); void boundary(); int main () { //定义头指针 head=(data)malloc(sizeof(struc t chain)); head->next=NULL; /*打开文件*/ fp=fopen(DATAFILE,"r"); if(!fp) exit(0); p=head; while(!feof(fp)){

数据仓库与数据挖掘课程设计报告书

目录 1. 绪论 (2) 1.1项目背景 (2) 1.2 提出问题 (2) 2 数据库仓库与数据集的概念介绍 (2) 2.1数据仓库 (2) 2.2数据集 (2) 3 数据仓库 (3) 3.1 数据仓库的设计 (3) 3.1.1数据仓库的概念模型设计 (3) 3.1.2数据仓库的逻辑模型设计 (3) 3.2 数据仓库的建立 (3) 3.2.1数据仓库数据集 (3) 3.2.2建立维表 (4) 4.数据挖掘操作 (4) 4.1数据预处理 (4) 4.1.1描述性数据汇总 (4) 4.2决策树 (4) 5、实验心得 (12) 6、大总结 (12)

1. 绪论 1.1项目背景 在现在大数据时代,各行各业需要对商品及相关关节的数据进行收集处理,尤其零售行业,于企业对产品的市场需求进行科学合理的分析,从而预测出将来的市场,制定出高效的决策,给企业带来经济收益。 1.2 提出问题 对于超市的商品的购买时期和购买数量的如何决定,才可以使销售量最大,不积压商品,不缺货,对不同时期季节和不同人群制定不同方案,使企业收益最大,通过数据挖掘对数据进行决策树分析,关联分析,顺序分析与决策分析等可以制定出最佳方案。 2 数据库仓库与数据集的概念介绍 2.1数据仓库 数据仓库是为企业所有级别的决策制定过程提供支持的所有类型数据的战略集合。它是单个数据存储,出于分析性报告和决策支持的目的而创建。为企业提供需要业务智能来指导业务流程改进和监视时间、成本、质量和控制。 数据仓库是决策系统支持(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。 2.2数据集 数据集是指一种由数据所组成的集合。Data set(或dataset)是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。

数据挖掘实验报告资料

大数据理论与技术读书报告 -----K最近邻分类算法 指导老师: 陈莉 学生姓名: 李阳帆 学号: 201531467 专业: 计算机技术 日期 :2016年8月31日

摘要 数据挖掘是机器学习领域内广泛研究的知识领域,是将人工智能技术和数据库技术紧密结合,让计算机帮助人们从庞大的数据中智能地、自动地提取出有价值的知识模式,以满足人们不同应用的需要。K 近邻算法(KNN)是基于统计的分类方法,是大数据理论与分析的分类算法中比较常用的一种方法。该算法具有直观、无需先验统计知识、无师学习等特点,目前已经成为数据挖掘技术的理论和应用研究方法之一。本文主要研究了K 近邻分类算法,首先简要地介绍了数据挖掘中的各种分类算法,详细地阐述了K 近邻算法的基本原理和应用领域,最后在matlab环境里仿真实现,并对实验结果进行分析,提出了改进的方法。 关键词:K 近邻,聚类算法,权重,复杂度,准确度

1.引言 (1) 2.研究目的与意义 (1) 3.算法思想 (2) 4.算法实现 (2) 4.1 参数设置 (2) 4.2数据集 (2) 4.3实验步骤 (3) 4.4实验结果与分析 (3) 5.总结与反思 (4) 附件1 (6)

1.引言 随着数据库技术的飞速发展,人工智能领域的一个分支—— 机器学习的研究自 20 世纪 50 年代开始以来也取得了很大进展。用数据库管理系统来存储数据,用机器学习的方法来分析数据,挖掘大量数据背后的知识,这两者的结合促成了数据库中的知识发现(Knowledge Discovery in Databases,简记 KDD)的产生,也称作数据挖掘(Data Ming,简记 DM)。 数据挖掘是信息技术自然演化的结果。信息技术的发展大致可以描述为如下的过程:初期的是简单的数据收集和数据库的构造;后来发展到对数据的管理,包括:数据存储、检索以及数据库事务处理;再后来发展到对数据的分析和理解, 这时候出现了数据仓库技术和数据挖掘技术。数据挖掘是涉及数据库和人工智能等学科的一门当前相当活跃的研究领域。 数据挖掘是机器学习领域内广泛研究的知识领域,是将人工智能技术和数据库技术紧密结合,让计算机帮助人们从庞大的数据中智能地、自动地抽取出有价值的知识模式,以满足人们不同应用的需要[1]。目前,数据挖掘已经成为一个具有迫切实现需要的很有前途的热点研究课题。 2.研究目的与意义 近邻方法是在一组历史数据记录中寻找一个或者若干个与当前记录最相似的历史纪录的已知特征值来预测当前记录的未知或遗失特征值[14]。近邻方法是数据挖掘分类算法中比较常用的一种方法。K 近邻算法(简称 KNN)是基于统计的分类方法[15]。KNN 分类算法根据待识样本在特征空间中 K 个最近邻样本中的多数样本的类别来进行分类,因此具有直观、无需先验统计知识、无师学习等特点,从而成为非参数分类的一种重要方法。 大多数分类方法是基于向量空间模型的。当前在分类方法中,对任意两个向量: x= ) ,..., , ( 2 1x x x n和) ,..., , (' ' 2 ' 1 'x x x x n 存在 3 种最通用的距离度量:欧氏距离、余弦距 离[16]和内积[17]。有两种常用的分类策略:一种是计算待分类向量到所有训练集中的向量间的距离:如 K 近邻选择K个距离最小的向量然后进行综合,以决定其类别。另一种是用训练集中的向量构成类别向量,仅计算待分类向量到所有类别向量的距离,选择一个距离最小的类别向量决定类别的归属。很明显,距离计算在分类中起关键作用。由于以上 3 种距离度量不涉及向量的特征之间的关系,这使得距离的计算不精确,从而影响分类的效果。

数据仓库与数据挖掘课程设计

数据仓库与数据挖掘课 程设计 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

目录 1. 绪论 (2) 项目背景 (2) 提出问题 (2) 2 数据库仓库与数据集的概念介绍 (2) 数据仓库 (2) 数据集 (2) 3 数据仓库 (3) 数据仓库的设计 (3) 数据仓库的概念模型设计 (3) 数据仓库的逻辑模型设计 (3) 数据仓库的建立 (3) 数据仓库数据集 (3) 建立维表 (4) 4.数据挖掘操作 (4) 数据预处理 (4) 描述性数据汇总 (4) 决策树 (4) 5、实验心得 (12) 6、大总结 (12) 1. 绪论 项目背景 在现在大数据时代,各行各业需要对商品及相关关节的数据进行收集处理,尤其零售行业,于企业对产品的市场需求进行科学合理的分析,从而预测出将来的市场,制定出高效的决策,给企业带来经济收益。 提出问题 对于超市的商品的购买时期和购买数量的如何决定,才可以使销售量最大,不积压商品,不缺货,对不同时期季节和不同人群制定不同方案,使企业收益最大,通过数据挖掘对数据进行决策树分析,关联分析,顺序分析与决策分析等可以制定出最佳方案。

2 数据库仓库与数据集的概念介绍 数据仓库 数据仓库是为企业所有级别的决策制定过程提供支持的所有类型数据的战略集合。它是单个数据存储,出于分析性报告和决策支持的目的而创建。为企业提供需要业务智能来指导业务流程改进和监视时间、成本、质量和控制。 数据仓库是决策系统支持(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。 数据集 数据集是指一种由数据所组成的集合。Data set(或dataset)是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。 3 数据仓库 数据仓库的设计 3.1.1数据仓库的概念模型设计 概念模型的设计是整个概念模型开发过程的三阶段。设计阶段依据概念模型分析以及分析过程中收集的任何数据,完成星型模型和雪花型模型的设计。如果仅依赖ERD,那只能对商品、销售、客户主题设计成如图所示的概念模型。这种模型适合于传统的数据库设计,但不适合于数据仓库的设计。 3.1.2数据仓库的逻辑模型设计 逻辑建模是数据仓库实施中的重要一环,因为它能直接反映出各个业务的需求,同时对系统的物理实施有着重要的指导作用,它的作用在于可以通过实体和关系勾勒出企业的数据蓝图,数据仓库的逻辑模型设计任务主要有:分析主题域,确定要装载到数据仓库的主题、确认粒度层次划分、确认数据分割策略、关系模式的定义和记录系统定义、确认数据抽取模型等。逻辑模型最终设计成果包括每个主题的逻辑定义,并将相关内容记录在数据仓库的元数据中、粒度划分、数据分割策略、表划分和数据来源等。 数据仓库的建立 3.2.1数据仓库数据集 一般说来,一个数据集市是按照某一特定部门的决策支持需求而组织起来的、针对一组主题的应用系统。例如,财务部拥有自己的数据集市,用来进行财务方面的报表和分析,市场推广部、销售部等也拥有各自专用的数据集市,用来为本部门的决策支持提供辅助手段。数据集市大都采用多维数据库技术,这种技术对数据的分析而言也许是最优的,

数据挖掘报告

哈尔滨工业大学 数据挖掘理论与算法实验报告(2016年度秋季学期) 课程编码S1300019C 授课教师邹兆年 学生姓名汪瑞 学号 16S003011 学院计算机学院

一、实验内容 决策树算法是一种有监督学习的分类算法;kmeans是一种无监督的聚类算法。 本次实验实现了以上两种算法。在决策树算法中采用了不同的样本划分方式、不同的分支属性的选择标准。在kmeans算法中,比较了不同初始质心产生的差异。 本实验主要使用python语言实现,使用了sklearn包作为实验工具。 二、实验设计 1.决策树算法 1.1读取数据集 本次实验主要使用的数据集是汽车价值数据。有6个属性,命名和属性值分别如下: buying: vhigh, high, med, low. maint: vhigh, high, med, low. doors: 2, 3, 4, 5more. persons: 2, 4, more. lug_boot: small, med, big. safety: low, med, high. 分类属性是汽车价值,共4类,如下: class values:unacc, acc, good, vgood 该数据集不存在空缺值。

由于sklearn.tree只能使用数值数据,因此需要对数据进行预处理,将所有标签类属性值转换为整形。 1.2数据集划分 数据集预处理完毕后,对该数据进行数据集划分。数据集划分方法有hold-out法、k-fold交叉验证法以及有放回抽样法(boottrap)。 Hold—out法在pthon中的实现是使用如下语句: 其中,cv是sklearn中cross_validation包,train_test_split 方法的参数分别是数据集、数据集大小、测试集所占比、随机生成方法的可

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

数据挖掘实验报告-关联规则挖掘

数据挖掘实验报告(二)关联规则挖掘 姓名:李圣杰 班级:计算机1304 学号:1311610602

一、实验目的 1. 1.掌握关联规则挖掘的Apriori算法; 2.将Apriori算法用具体的编程语言实现。 二、实验设备 PC一台,dev-c++5.11 三、实验内容 根据下列的Apriori算法进行编程:

四、实验步骤 1.编制程序。 2.调试程序。可采用下面的数据库D作为原始数据调试程序,得到的候选1项集、2项集、3项集分别为C1、C2、C3,得到的频繁1项集、2项集、3项集分别为L1、L2、L3。

代码 #include #include #define D 4 //事务的个数 #define MinSupCount 2 //最小事务支持度数 void main() { char a[4][5]={ {'A','C','D'}, {'B','C','E'}, {'A','B','C','E'}, {'B','E'} }; char b[20],d[100],t,b2[100][10],b21[100 ][10]; int i,j,k,x=0,flag=1,c[20]={0},x1=0,i1 =0,j1,counter=0,c1[100]={0},flag1= 1,j2,u=0,c2[100]={0},n[20],v=1; int count[100],temp; for(i=0;i=MinSupCount) { d[x1]=b[k]; count[x1]=c[k]; x1++; } } //对选出的项集中的元素进行排序 for(i=0;i

Python课程设计

智能系统开发课程设计 ¥ 通讯录信息管理系统 姓名张培琳 学院信息与电气工程学院 专业信息工程 : 2011 年级 学号680 指导教师周树森 2014 年 12月5日

】 1 引言 (1) 课题背景 (1) 所用技术 (1) 2 系统分析 (2) 3 系统设计 (2) 结构分析 (2) 数据库设计 (3) 4 系统实现 (4) \ 步骤及截图 (4) 代码实现 (6) 5 结束语 (9)

学生信息管理系统 张培琳 (信息与电气工程学院,信息工程专业,2011级2班,680) 摘要:本文是一个通讯录信息管理系统,主要功能有后台管理员可以添加,删除修改联系人的信息,前台供用户使用的界面,用户可以根据姓名查询联系人的信息。 关键词:Eclipse;Python Django;数据库(mysql);html; 1 引言 课题背景 通讯录已经成为是我们每个人日常不可或缺的一样东西。一个功能齐全、简单易用的通讯录信息管理系统能有效的减轻我们每个人记住联系人信息的负担,它的内容对于我们日常管理联系人来说都至关重要。所以通讯录信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。近年来,随着我们网络信息的发展我们每个人的社交的规模不断扩大,联系人数量急剧增加,有关的各种信息量也能成倍增长。面对庞大的信息量需要有通讯录信息管理系统来提高管理工作的效率。本系统主要用于联系人信息管理,总体任务是实现信息关系的系统化、规范化和自动化,其主要任务是用计算机对联系人各种信息进行日常管理,如查询、修改、增加、删除等,是通讯录信息的管理向着规范化、简单化、有效化的发展。 所用技术 Python是一种开源的、解析性的,面向对象的语言编程。它语法优雅,可读性强,让程序员注重功能实现,而非代码本身实现细节。现广泛运用于Web开发、运维自动化、测试自动化及数据挖掘等多个行业和领域。Python语言有很大的优势:比Java、C++简单更易于使用;比PHP易懂易学并且用途更广;比Perl 更简洁的语法、更简单的设计,更具可读性、更易于维护,有助于减少Bug。但它的性能不如Java、C、C++这类编译性语言强大。因此本系统开发选用Python 语言编写。

数据分析与挖掘实验报告

数据分析与挖掘实验报告

《数据挖掘》实验报告 目录 1.关联规则的基本概念和方法 (1) 1.1数据挖掘 (1) 1.1.1数据挖掘的概念 (1) 1.1.2数据挖掘的方法与技术 (2) 1.2关联规则 (5) 1.2.1关联规则的概念 (5) 1.2.2关联规则的实现——Apriori算法 (7) 2.用Matlab实现关联规则 (12) 2.1Matlab概述 (12) 2.2基于Matlab的Apriori算法 (13) 3.用java实现关联规则 (19) 3.1java界面描述 (19) 3.2java关键代码描述 (23) 4、实验总结 (29) 4.1实验的不足和改进 (29) 4.2实验心得 (30)

1.关联规则的基本概念和方法 1.1数据挖掘 1.1.1数据挖掘的概念 计算机技术和通信技术的迅猛发展将人类社会带入到了信息时代。在最近十几年里,数据库中存储的数据急剧增大。数据挖掘就是信息技术自然进化的结果。数据挖掘可以从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的,人们事先不知道的但又是潜在有用的信息和知识的过程。 许多人将数据挖掘视为另一个流行词汇数据中的知识发现(KDD)的同义词,而另一些人只是把数据挖掘视为知识发现过程的一个基本步骤。知识发现过程如下: ·数据清理(消除噪声和删除不一致的数据)·数据集成(多种数据源可以组合在一起)·数据转换(从数据库中提取和分析任务相关的数据) ·数据变换(从汇总或聚集操作,把数据变换和统一成适合挖掘的形式) ·数据挖掘(基本步骤,使用智能方法提取数

据模式) ·模式评估(根据某种兴趣度度量,识别代表知识的真正有趣的模式) ·知识表示(使用可视化和知识表示技术,向用户提供挖掘的知识)。 1.1.2数据挖掘的方法与技术 数据挖掘吸纳了诸如数据库和数据仓库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像和信号处理以及空间数据分析技术的集成等许多应用领域的大量技术。数据挖掘主要包括以下方法。神经网络方法:神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关注。典型的神经网络模型主要分3大类:以感知机、bp反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以hopfield 的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以art 模型、koholon模型为代表的,用于聚类的自组

大数据挖掘weka大数据分类实验报告材料

一、实验目的 使用数据挖掘中的分类算法,对数据集进行分类训练并测试。应用不同的分类算法,比较他们之间的不同。与此同时了解Weka平台的基本功能与使用方法。 二、实验环境 实验采用Weka 平台,数据使用Weka安装目录下data文件夹下的默认数据集iris.arff。 Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka使用Java 写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。 三、数据预处理 Weka平台支持ARFF格式和CSV格式的数据。由于本次使用平台自带的ARFF格式数据,所以不存在格式转换的过程。实验所用的ARFF格式数据集如图1所示 图1 ARFF格式数据集(iris.arff)

对于iris数据集,它包含了150个实例(每个分类包含50个实例),共有sepal length、sepal width、petal length、petal width和class五种属性。期中前四种属性为数值类型,class属性为分类属性,表示实例所对应的的类别。该数据集中的全部实例共可分为三类:Iris Setosa、Iris Versicolour和Iris Virginica。 实验数据集中所有的数据都是实验所需的,因此不存在属性筛选的问题。若所采用的数据集中存在大量的与实验无关的属性,则需要使用weka平台的Filter(过滤器)实现属性的筛选。 实验所需的训练集和测试集均为iris.arff。 四、实验过程及结果 应用iris数据集,分别采用LibSVM、C4.5决策树分类器和朴素贝叶斯分类器进行测试和评价,分别在训练数据上训练出分类模型,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最好的分类模型以及该模型所有设置的最优参数。最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。 1、LibSVM分类 Weka 平台内部没有集成libSVM分类器,要使用该分类器,需要下载libsvm.jar并导入到Weka中。 用“Explorer”打开数据集“iris.arff”,并在Explorer中将功能面板切换到“Classify”。点“Choose”按钮选择“functions(weka.classifiers.functions.LibSVM)”,选择LibSVM分类算法。 在Test Options 面板中选择Cross-Validatioin folds=10,即十折交叉验证。然后点击“start”按钮:

数据挖掘实验报告1

实验一 ID3算法实现 一、实验目的 通过编程实现决策树算法,信息增益的计算、数据子集划分、决策树的构建过程。加深对相关算法的理解过程。 实验类型:验证 计划课间:4学时 二、实验内容 1、分析决策树算法的实现流程; 2、分析信息增益的计算、数据子集划分、决策树的构建过程; 3、根据算法描述编程实现算法,调试运行; 4、对所给数据集进行验算,得到分析结果。 三、实验方法 算法描述: 以代表训练样本的单个结点开始建树; 若样本都在同一个类,则该结点成为树叶,并用该类标记; 否则,算法使用信息增益作为启发信息,选择能够最好地将样本分类的属性; 对测试属性的每个已知值,创建一个分支,并据此划分样本; 算法使用同样的过程,递归形成每个划分上的样本决策树 递归划分步骤,当下列条件之一成立时停止: 给定结点的所有样本属于同一类; 没有剩余属性可以进一步划分样本,在此情况下,采用多数表决进行 四、实验步骤 1、算法实现过程中需要使用的数据结构描述: Struct {int Attrib_Col; // 当前节点对应属性 int Value; // 对应边值 Tree_Node* Left_Node; // 子树 Tree_Node* Right_Node // 同层其他节点 Boolean IsLeaf; // 是否叶子节点 int ClassNo; // 对应分类标号 }Tree_Node; 2、整体算法流程

主程序: InputData(); T=Build_ID3(Data,Record_No, Num_Attrib); OutputRule(T); 释放内存; 3、相关子函数: 3.1、 InputData() { 输入属性集大小Num_Attrib; 输入样本数Num_Record; 分配内存Data[Num_Record][Num_Attrib]; 输入样本数据Data[Num_Record][Num_Attrib]; 获取类别数C(从最后一列中得到); } 3.2、Build_ID3(Data,Record_No, Num_Attrib) { Int Class_Distribute[C]; If (Record_No==0) { return Null } N=new tree_node(); 计算Data中各类的分布情况存入Class_Distribute Temp_Num_Attrib=0; For (i=0;i=0) Temp_Num_Attrib++; If Temp_Num_Attrib==0 { N->ClassNo=最多的类; N->IsLeaf=TRUE; N->Left_Node=NULL;N->Right_Node=NULL; Return N; } If Class_Distribute中仅一类的分布大于0 { N->ClassNo=该类; N->IsLeaf=TRUE; N->Left_Node=NULL;N->Right_Node=NULL; Return N; } InforGain=0;CurrentCol=-1; For i=0;i

《数据仓库与数据挖掘》课程设计报告模板

江西理工大学应用科学学院 《数据仓库与数据挖掘》课程设计报告 题目:某超市数据集的OLAP分析及数据挖掘 系别: 班级: 姓名: 二〇一二年六月

目录 一、建立数据仓库数据库结构和设置数据源 (1) 1.任务描述 (2) 2.建立数据仓库数据库 ................................................................................................................ 3.设置数据源 ................................................................................................................................ 二、销售数据OLAP分析............................................................................................... 1.任务描述 .................................................................................................................................... 2.设计星型架构多维数据集(Sales) ............................................................................................. 3.设计存储和数据集处理 ............................................................................................................ 4.OLAP分析................................................................................................................................. 三、人力资源数据OLAP分析....................................................................................... 1.任务描述.................................................................................................................................... 2.设计父子维度的多维数据集(HR) ............................................................................................ 3.修改多维数据集(HR)的结构.................................................................................................... 4.设计存储和数据集处理............................................................................................................ 5.OLAP分析 ................................................................................................................................ 四、数据仓库及多维数据集其它操作 ........................................................................... 1.任务描述.................................................................................................................................... 2.设置数据仓库及多维数据集角色及权限 ................................................................................ 3.查看元数据................................................................................................................................ 4.创建对策.................................................................................................................................... 5.钻取............................................................................................................................................ 6.建立远程Internet 连接............................................................................................................ 五、数据仓库高级操作 ................................................................................................... 1.任务描述 .................................................................................................................................... 2.创建分区 .................................................................................................................................... 3.创建虚拟多维数据集 ................................................................................................................ 4.DTS调度多维数据集处理........................................................................................................ 5.备份/还原数据仓库 ................................................................................................................. 六、数据挖掘 ................................................................................................................... 1.任务描述 .................................................................................................................................... 2.创建揭示客户模式的决策树挖掘模型 .................................................................................... 3.决策树挖掘结果分析 ................................................................................................................ 4.创建聚类挖掘模型 .................................................................................................................... 5.聚类挖掘结果分析 .................................................................................................................... 6.创建基于关系数据表的决策树挖掘模型 ................................................................................ 7.浏览“相关性网络”视图 ........................................................................................................

相关文档
相关文档 最新文档