数据挖掘报告Word文档格式.docx

上传人:b****5 文档编号:18771659 上传时间:2023-01-01 格式:DOCX 页数:16 大小:25.83KB
下载 相关 举报
数据挖掘报告Word文档格式.docx_第1页
第1页 / 共16页
数据挖掘报告Word文档格式.docx_第2页
第2页 / 共16页
数据挖掘报告Word文档格式.docx_第3页
第3页 / 共16页
数据挖掘报告Word文档格式.docx_第4页
第4页 / 共16页
数据挖掘报告Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据挖掘报告Word文档格式.docx

《数据挖掘报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据挖掘报告Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

数据挖掘报告Word文档格式.docx

描述和预测。

描述性挖掘任务记录数据库中数据的一般特性。

预测性挖掘任务在当前数据上进行推断以及预测。

数据挖掘功能以及他们可以发现的模式类型为:

一、概念描述

数据可以与类或概念相关联,用汇总的、简洁的、精确的方式描述每个类或概念,概念描述就是产生数据特征化和比较的描述。

数据特征化是目标类数据的一般特征或特性的汇总。

通常,用户指定类的

数据通过数据库查询收集。

数据特征的输出可以用多种形式提供。

包括饼图、

条图、曲线、多维数据立方体和包括交叉表在内的多维表。

结果描述也可以用

概化关系或规则形式。

数据区分是将目标类对象的一般特性与一个或多个对比类对象的一般特性

比较。

目标类和对比类由用户指定,而对应的数据通过数据库查询检索。

输出

的形式类似于特征描述,但区分描述应当包括比较度量,帮助区分目标类和对

比类。

用规则表示的区分描述成为区分规则。

二、关联分析

关联分析发现关联规则,这些规则展示属性值频繁地在给定数据集中一起出

现的条件。

即两个或两个以上数据项的取值之间存在某种规律性,就称为关联,

可以建立起这些数据项的关联规则。

关联分析广泛用于购物篮或事务数据分析。

包含单个谓词的关联规则称作单维关联规则。

在多个属性或谓词之间的关联,

采用多维数据库,每个属性称为一维,则此规则称作多维关联规则。

数据关联是数据库中存在的一类重要的、可被发现的知识,它反映一个事

件和其他事件之间依赖或关联。

如果两项或多项属性之问存在关联,那么其中

一项的属性值就可以依据其他属性值进行预测。

在大型数据库中,关联规则可

以产生很多,这就需要进行筛选。

一般用“支持度"

和“可信度"

两个阈值来淘汰那些无用的关联规则。

三、分类和预测

分类是指找出描述并区分数据类或概念的模型(或函数),以便能够使用模型预测类标记未知的对象类。

分类是数据挖掘中应用得最多的任务。

分类就是找出一个类别的概念描述,并用这种描述来构造模型。

可采用多种形式如分类规则、判定树、数学公式或神经网络。

等导出模型对训练数据集(即其类标记已知的数据对象)的分析。

分类可以用来预测数据对象的类标记。

然而,在某些应用中,人们可能希

望预测某些空缺的或不知道的数据值,而不是类标记。

当被预测的值是数值数

据时,通常称之为预测。

预测是利用历史数据找出变化规律,建立模型,并由

此模型对未来数据的种类及特征进行预测。

典型的预测方法是回归分析,即利用大量的历史数据,以时间为变量建立

线性或非线性回归方程。

预测时,只要输入任意的时间值,通过回归方程就可

求出该时间的状态。

尽管预测可以涉及数据值预测和类标记预测,通常预测限

于值预测,并因此不同于分类。

预测也包含基于可用数据的分布趋势识别。

在分类和预测之前可能需要进行相关分析,它试图识别对于分类和预测无用的属性并排除。

四、聚类分析

与分类和预测不同,聚类(clustering)分析数据对象,而不考虑已知的类标记。

一般情况下,训练数据中不提供类标记,因为不知道从何开始。

聚类,可以用于产生这种标记。

对象根据最大化类内的相似性、最小化类问的相似性的原则进行聚类或分组。

即对象的簇(聚类)这样形成,使得在一个簇中的对象具有很高的相似性,‘而与其他簇中的对象很不相似。

所形成的每个簇可以看作一个对象类,由它可以导出规则。

聚类也便于分类编制,将观察到的内容组织成类分层结构,把类似的事件组织在一起。

五、异常分析

数据中可能包含一些数据对象,他们与数据的一般行为或模型不一致,这些数据对象是异常的,大部分数据挖掘方法将异常数据视为噪声而丢弃,异常分析就是探测和分析那些不符合数据的一般模型的数据对象,并对其建模。

然而,在一些应用中(如欺骗检测),罕见的事件可能比正常出现的那些更有趣,称作孤立点挖掘。

六、演变分析

数据演变分析描述行为随时间变化的对象的规律或趋势,并对其建模。

尽管这可能包括时间相关数据的特征化、区分、关联、分类或聚类,这类分析的不同特点包括时间序列数据分析、序列或周期模式匹配和基于类似性的数据分析。

2.2数据挖掘的对象

关系数据库系统广泛地用于商务应用。

随着数据库技术的发展,出现了各种高级数据库系统,以适应新的数据库应用需要。

新的数据库应用包括处理空间数据(如地图)、工程设计数据(如建筑设计、系统部件、集成电路)、超文本和多媒体数据(包括文本、影象、图象和声音数据)、时间相关的数据(如历史数据或股票交易数据)和WWW(通过Internet可以使巨大的、广泛分布的信息存储)。

依据不同的数据类型,数据挖掘的对象包括以下几种:

一、关系数据库

当数据挖掘用于关系数据库时,可以进一步搜索趋势或数据模式。

例如,数据挖掘系统可以分析顾客数据,根据顾客的收人、年龄和以前的信用信息预测新顾客的信用风险。

数据挖掘系统也可以检测偏差,如与以前的年份相比,哪种商品的销售出入预料。

这种偏差可以进一步考察(例如,包装是否有变化,或价格是否大幅度提高)。

关系数据库是数据挖掘最流行的、最丰富的数据源,因此它是我们数据挖掘研究的主要数据形式。

二、数据仓库

一般,数据仓库用多维数据库结构建模。

数据仓库的实际物理结构可以是关系数据存储或多维数据立方体。

它提供数据的多维视图,并允许预计算和快速访问汇总的数据。

通过提供多维数据视图和汇总数据的预计算,数据仓库非常适合联机分析处理(OLAP)。

OLAP允许在不同的抽象层提供数据。

同时允许用户在不同的汇总级别观察数据。

三、事务数据库

一般地说,事务数据库由一个文件组成,其中每个记录代表一个事务。

事物数据库可有一些相关联的附加表。

事务可以存放在表中,由于大部分关系数据库系统不支持嵌套关系结构,而记录数据为一个嵌套关系,使用事务数据库通常存放在一表格式的展开文件中,或展开到类似的标准关系中。

当需要识别频繁的事物之间的关联时即可采用通过事务数据的数据挖掘系统。

四、文本数据库

文本数据库是包含对象文字描述的数据库。

通常,这种词描述不是简单的关键词,而是正片文档。

文本数据库可能是高度非结构化的(如www页)、半结构化的(如email))或结构化的(如图书馆数据库)。

文本数据库上的数据挖掘可以发现对象类的一般描述,以及关键字或内容的关联和文本对象的聚类行为。

为做到这一点,需要将标准的数据挖掘技术与信息检索技术和文本数据特有的层次构造(如字典和辞典),以及面向学科的(如化学、医学、法律或经济)术语分类系统集成在一起。

五、多媒体数据库

多媒体数据库存放图象、音频和视频数据。

它们用于基于图象内容的检索、

声音传递、视频点播、www和识别口语命令的基于语音的用户界面等方面。

多媒体数据库必须支持大对象,如视频这样的数据对象可能需要兆字节级的存储。

还需要特殊的存储和搜索技术。

因为视频和音频数据需要以稳定的、预先确定的速率实时检索,防止图象或声音间断和系统缓冲区溢出,因此这种数据称为连续媒体数据。

对于多媒体数据库挖掘,需要将存储和搜索技术与标准的数据挖掘方法集成在一起。

有前途的方法包括构造多媒体数据立方体、多媒体数据的多特征提取和基于相似性的模式匹配。

2.3数据挖掘的过程

数据挖掘的过程实际是一个数据库知识的发现过程。

依据发现过程可以分为以下几个步骤执行:

一、确定挖掘目标

清晰明确的定义出问题,认清数据挖掘的最终业务目标。

一般来说,目标可以是关联规则发现、数据分类、回归、聚类、数据汇总、概念描述、相关分析建模或误差检测及预测或综合应用等。

二、数据准备

在数据准备阶段又可以进一步细分为三步:

数据集成、数据选择和预处理、

数据变换和压缩。

1.数据集成。

选择一个数据集或针对一个变量或数据样本的子集,在这个

集合上进行挖掘。

此时应考虑如何选取同类的数据,考虑过程中的动态情况和变化、采样策略、样本是否足够、自由度和其他一些问题。

2.数据选择和预处理。

考虑如何正确去除噪声模型或解决噪声问题,决定采取何种策略去解决丢失的数据或数据库设计不完善带来的问题,以及解决时间序列信息和正确标准化等问题。

3.数据变换和压缩。

根据任务的目标,查找有用的特性来表示数据。

利用

空间压缩或变换的方法来减少要考虑的有效数目或找到数据的不变表示,一般方法把数据投影到某个空间上以利于问题解决。

三、数据挖掘

1.选择数据挖掘方法。

根据数据库知识发现过程的目标,选择相应的数据挖掘方法。

如统计分析、机器学习、模式识别方法和人工神经元方法等。

2.选择数据挖掘算法。

选择用来查找模式或符合数据的模型的算法,确定合适的模型和参数。

另外,数据挖掘方法必须和目标相匹配。

3.数据挖掘。

查找感兴趣的模式。

模式一般表示为一种特殊的形式或一套表达式,如关联规则、分类规则或分类树,回归结构和聚类集等。

四、评估与表示

1.结果表达。

尽量直观地表示挖掘结果,便于用户理解和使用,可利用可视化方法表示为图表等形式。

2.结果评价。

筛选和评价挖掘结果中的有用部分,查找可接受的结果。

可定义兴趣度指标,考虑结果的正确度、新颖度、有用性和简单性,把知识从输出中过滤出来。

利用可视化方法帮助用户决定所提取知识的有效性和对基本的数据或现象做出结论。

3.知识巩固。

把挖掘出的知识结合到执行系统中,了解这些知识的作用或证明这些知识。

用预选知识且可信的知识来检查和验证所挖掘的知识,解决可能存在的矛盾,也可以只是简单地记录所挖掘出的知识,并把它报告给用户,由用户进一步分析。

2.4数据挖掘算法

数据挖掘的核心部分就是数据挖掘算法,设计数据挖掘算法的方法很多,不同的方法服务于不同的目标,每种方法都有自己的优缺点。

因此,一个功能全面的数据挖掘系统应该综合利用各种不同的方法。

常用的数据挖掘算法主要包括:

1、决策树方法:

利用信息论中的信息增益寻找数据库中具有最大信息量的字段,建立决策树的一个结点,再根据字段的不同取值建立树的分支,在每个分

支子集中重复建立树的下层结点和分支的过程。

2、神经网络方法:

是一组连接的输入、输出单元,其中每个连接都与一个权相联。

在学习阶段,通过调整神经网络的权,使得能够预测输入样本的正确类标号来学习。

由于单元之间的连接,神经网络学习又称连接者学习。

3、遗传算法:

是一种优化技术,试图结合自然进化的思想。

基于达尔文的进化论中基因重组、突变和自然选择等概念。

利用生物进化的一系列概念进行问题的搜索,最终达到优化的目的。

4、KNN算法:

是一种理论上比较成熟的分类和回归算法,该方法定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

5、粗糙集方法:

可以用于分类,发现不准确数据或噪声数据内在的结构联系,它用于离散值属性。

粗糙集理论基于给定训练数据内部的等价类的建立。

形成等价类的所有数据样本是不加区分的,即对于描述数据的属性,这些样本是等

价的。

6、模糊集方法:

利用模糊集合理论,对实际问题进行模糊判断、模糊决策、模糊模式识别等。

对于数据挖掘系统进行分类,模糊逻辑是有用的。

它提供了在

高抽象层处理的便利。

第三章KNN算法介绍与实现

3.1KNN算法介绍

通过参与城市集群竞争力项目的实践,结合自己所学的JAVA语言,为了更好的利用KNN算法实现项目数据的分类和预测,采取了用JAVA语言编写和改进KNN算法的方式。

1、KNN的优缺点

优点:

原理简单,实现起来比较方便。

支持增量学习。

能对超多边形的复杂决策空间建模。

缺点:

计算开销大,需要有效的存储技术和并行硬件的支撑。

2、KNN算法原理

基于类比学习,通过比较训练元组和测试元组的相似度来学习。

将训练元组和测试元组看作是n维(若元组有n的属性)空间内的点,给定一条测试元组,搜索n维空间,找出与测试元组最相近的k个点(即训练元组),最后取这k个点中的多数类作为测试元组的类别。

相近的度量方法:

用空间内两个点的距离来度量。

距离越大,表示两个点越不相似。

距离的选择:

可采用欧几里得距离、曼哈顿距离或其它距离度量。

多采用欧几里得距离。

3、KNN算法中的细节处理

∙数值属性规范化:

将数值属性规范到0-1区间以便于计算,也可防止大数值型属性对分类的主导作用。

可选的方法有:

v'

=(v-vmin)/(vmax-vmin),当然也可以采用其它的规范化方法。

∙比较的属性是分类类型而不是数值类型的:

同则差为0,异则差为1。

有时候可以作更为精确的处理,比如黑色与白色的差肯定要大于灰色与白色的差。

∙缺失值的处理:

取最大的可能差,对于分类属性,如果属性A的一个或两个对应值丢失,则取差值为1;

如果A是数值属性,若两个比较的元组A属性值均缺失,则取差值为1,若只有一个缺失,另一个值为v,则取差值为|1-v|和|0-v|中的最大值。

∙确定K的值:

通过实验确定。

进行若干次实验,取分类误差率最小的k值。

∙对噪声数据或不相关属性的处理:

对属性赋予相关性权重w,w越大说明属性对分类的影响越相关。

对噪声数据可以将所在的元组直接cut掉。

4、KNN算法流程

∙准备数据,对数据进行预处理

∙选用合适的数据结构存储训练数据和测试元组

∙设定参数,如k

∙维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组

∙随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列

∙遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax进行比较。

若L>

=Lmax,则舍弃该元组,遍历下一个元组。

若L<

Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。

∙遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。

∙测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。

5、KNN算法的改进策略

∙将存储的训练元组预先排序并安排在搜索树中(如何排序有待研究)

∙并行实现

∙部分距离计算,取n个属性的“子集”计算出部分距离,若超过设定的阈值则停止对当前元组作进一步计算。

转向下一个元组。

∙剪枝或精简:

删除证明是“无用的”元组。

3.2KNN算法的JAVA实现

1、JAVA代码:

packageKNN;

/*KNN结点类,用来存储最近邻的k个元组相关的信息*/

publicclassKNNNode{

privateintindex;

//元组标号

privatedoubledistance;

//与测试元组的距离

privateStringc;

//所属类别

publicKNNNode(intindex,doubledistance,Stringc){

super();

this.index=index;

this.distance=distance;

this.c=c;

}

publicintgetIndex(){

returnindex;

publicvoidsetIndex(intindex){

publicdoublegetDistance(){

returndistance;

publicvoidsetDistance(doubledistance){

publicStringgetC(){

returnc;

publicvoidsetC(Stringc){

}

/*KNN算法主体类*/

importjava.util.ArrayList;

importjava.util.Comparator;

importjava.util.HashMap;

importjava.util.List;

importjava.util.Map;

importjava.util.PriorityQueue;

publicclassKNN{

/**

*设置优先级队列的比较函数,距离越大,优先级越高

*/

privateComparator<

KNNNode>

comparator=newComparator<

(){

publicintcompare(KNNNodeo1,KNNNodeo2){

if(o1.getDistance()>

=o2.getDistance()){

return1;

}else{

return0;

}

}

};

*获取K个不同的随机数

*@paramk随机数的个数

*@parammax随机数最大的范围

*@return生成的随机数数组

publicList<

Integer>

getRandKNum(intk,intmax){

List<

rand=newArrayList<

(k);

for(inti=0;

i<

k;

i++){

inttemp=(int)(Math.random()*max);

if(!

rand.contains(temp)){

rand.add(temp);

i--;

returnrand;

*计算测试元组与训练元组之前的距离

*@paramd1测试元组

*@paramd2训练元组

*@return距离值

publicdoublecalDistance(List<

Double>

d1,List<

d2){

doubledistance=0.00;

d1.size();

distance+=(d1.get(i)-d2.get(i))*(d1.get(i)-d2.get(i));

*执行KNN算法,获取测试元组的类别

*@paramdatas训练数据集

*@paramtestData测试元组

*@paramk设定的K值

*@return测试元组的类别

publicStringknn(List<

List<

>

datas,List<

testData,intk){

PriorityQueue<

pq=newPriorityQueue<

(k,comparator);

randNum=getRandKNum(k,datas.size());

intindex=randNum.get(i);

List<

currData=datas.get(index);

Stringc=currData.get(currData.size()-1).toString();

KNNNodenode=newKNNNode(index,calDistance(testData,currData),c);

pq.add(node);

datas.size();

t=datas.get(i);

doubledistance=calDistance(testData,t);

KNNNodetop=pq.peek();

if(top.getDistance()>

distance){

pq.remove();

pq.add(newKNNNode(i,distance,t.get(t.size()-1).toString()));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1