ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:25.83KB ,
资源ID:5784544      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5784544.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据挖掘报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据挖掘报告.docx

1、数据挖掘报告摘要 数据挖掘技术可以在浩瀚的数据中进行统计、分析、综合、推理,发现数据内部关联,并作出预测,提供数据信息,为决策提供辅助支持。目前,数据挖掘技术已经广泛应用在商业领域,同样,可以将数据挖掘技术与国家教育项目相结合,对项目中的各类数据信息进行挖掘分析,提取隐藏的数据信息,为项目开发部门提供决策依据,进一步提高项目的科学性和高效性。本文结合自身参与教育部指定的关于城市集群竞争力项目的实践经验,分析数据挖掘技术在国家教育项目中应用的可行性,并以此为例,采用JAVA语言编写实现KNN算法。在项目实施方案中,以城市集群的数据为基础,完成数据挖掘的全过程:确定数据挖掘的对象和目标、数据清理和

2、预处理,对某个指标缺失的数据引入神经网络方法进行预测填补,对缺失较多的数据引入对比和类比的方法进行预测填补,采用KNN算法实现数据分类,形成指标体系。利用数据挖掘的结果,通过对指标数据的分析,预测决定城市集群竞争力的主要因素,从而为今后城市集群的发展方向和职能定位提供参考,为城镇体系的总体发展指明方向,为提高我国城市集群整体经济实力和综合竞争力提供一些有益的建议和对策,促进成熟集群向一体化方向发展,同时也可以为国内其他城市集群的发展提供给一些有益的参考。【关键词】 数据挖掘 KNN算法 数据分类 JAVA 城市集群竞争力第一章绪论1.1研究背景和研究意义1、研究背景 随着信息社会的发展,计算机

3、技术和数据库管理系统的应用,产生了大量的数据信息,数据库存储的数据量也在日益增长。但对于此数据却是“数据丰富,信息贫乏,人们迫切需要从此类数据中获取信息,即将此类数据转换成有用的信息和知识,并且被广泛应用于事物管理、信息检索和数据分析中。这种需求导致了对数据分析工具的需求扩大,数据挖掘技术就是在此信息技术发展下产生的。数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。数据挖掘涉及多学科技术的集成,包括数据库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息

4、检索、图像与信号处理和空间数据分析等。数据挖掘技术在商业等赢利性领域中已经取得了广泛的应用。但在高校、政府等非赢利组织的应用并不广泛。结合自身参与项目的经验,利用数据挖掘技术快速而又准确的从浩瀚的数据资源中提取出所需信息,从而在实际应用中将管理信息转化为可供决策使用的知识,这不仅具有理论价值,更具有极大的现实意义。2、研究意义本文利用数据挖掘的结果,通过对指标数据的分析,预测决定城市集群竞争力的主要因素,从而为今后城市集群的发展方向和职能定位提供参考,为城镇体系的总体发展指明方向,为提高我国城市集群整体经济实力和综合竞争力提供一些有益的建议和对策,促进成熟集群向一体化方向发展,同时也可以为国内

5、其他城市集群的发展提供给一些有益的参考。第二章数据挖掘技术的研究2.1 数据挖掘的功能数据挖掘的功能用于指定数据挖掘任务中要找的模式类型。数据挖掘任务一般分为两类:描述和预测。描述性挖掘任务记录数据库中数据的一般特性。预测性挖掘任务在当前数据上进行推断以及预测。 数据挖掘功能以及他们可以发现的模式类型为:一、概念描述数据可以与类或概念相关联,用汇总的、简洁的、精确的方式描述每个类或概念,概念描述就是产生数据特征化和比较的描述。 数据特征化是目标类数据的一般特征或特性的汇总。通常,用户指定类的数据通过数据库查询收集。数据特征的输出可以用多种形式提供。包括饼图、条图、曲线、多维数据立方体和包括交叉

6、表在内的多维表。结果描述也可以用概化关系或规则形式。数据区分是将目标类对象的一般特性与一个或多个对比类对象的一般特性比较。目标类和对比类由用户指定,而对应的数据通过数据库查询检索。输出的形式类似于特征描述,但区分描述应当包括比较度量,帮助区分目标类和对比类。用规则表示的区分描述成为区分规则。二、关联分析关联分析发现关联规则,这些规则展示属性值频繁地在给定数据集中一起出现的条件。即两个或两个以上数据项的取值之间存在某种规律性,就称为关联,可以建立起这些数据项的关联规则。关联分析广泛用于购物篮或事务数据分析。包含单个谓词的关联规则称作单维关联规则。在多个属性或谓词之间的关联,采用多维数据库,每个属

7、性称为一维,则此规则称作多维关联规则。数据关联是数据库中存在的一类重要的、可被发现的知识,它反映一个事件和其他事件之间依赖或关联。如果两项或多项属性之问存在关联,那么其中一项的属性值就可以依据其他属性值进行预测。在大型数据库中,关联规则可以产生很多,这就需要进行筛选。一般用“支持度和“可信度两个阈值来淘汰那些无用的关联规则。三、分类和预测分类是指找出描述并区分数据类或概念的模型(或函数),以便能够使用模型预测类标记未知的对象类。分类是数据挖掘中应用得最多的任务。分类就是找出一个类别的概念描述,并用这种描述来构造模型。可采用多种形式如分类规则、判定树、数学公式或神经网络。等导出模型对训练数据集(

8、即其类标记已知的数据对象)的分析。分类可以用来预测数据对象的类标记。然而,在某些应用中,人们可能希望预测某些空缺的或不知道的数据值,而不是类标记。当被预测的值是数值数据时,通常称之为预测。预测是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行预测。典型的预测方法是回归分析,即利用大量的历史数据,以时间为变量建立线性或非线性回归方程。预测时,只要输入任意的时间值,通过回归方程就可求出该时间的状态。尽管预测可以涉及数据值预测和类标记预测,通常预测限于值预测,并因此不同于分类。预测也包含基于可用数据的分布趋势识别。在分类和预测之前可能需要进行相关分析,它试图识别对于分类和预测

9、无用的属性并排除。四、聚类分析与分类和预测不同,聚类(clustering)分析数据对象,而不考虑已知的类标记。一般情况下,训练数据中不提供类标记,因为不知道从何开始。聚类,可以用于产生这种标记。对象根据最大化类内的相似性、最小化类问的相似性的原则进行聚类或分组。即对象的簇(聚类)这样形成,使得在一个簇中的对象具有很高的相似性,而与其他簇中的对象很不相似。所形成的每个簇可以看作一个对象类,由它可以导出规则。聚类也便于分类编制,将观察到的内容组织成类分层结构,把类似的事件组织在一起。五、异常分析数据中可能包含一些数据对象,他们与数据的一般行为或模型不一致,这些数据对象是异常的,大部分数据挖掘方法

10、将异常数据视为噪声而丢弃,异常分析就是探测和分析那些不符合数据的一般模型的数据对象,并对其建模。然而,在一些应用中(如欺骗检测),罕见的事件可能比正常出现的那些更有趣,称作孤立点挖掘。六、演变分析数据演变分析描述行为随时间变化的对象的规律或趋势,并对其建模。尽管这可能包括时间相关数据的特征化、区分、关联、分类或聚类,这类分析的不同特点包括时间序列数据分析、序列或周期模式匹配和基于类似性的数据分析。2.2 数据挖掘的对象关系数据库系统广泛地用于商务应用。随着数据库技术的发展,出现了各种高级数据库系统,以适应新的数据库应用需要。新的数据库应用包括处理空间数据(如地图)、工程设计数据(如建筑设计、系

11、统部件、集成电路)、超文本和多媒体数据(包括文本、影象、图象和声音数据)、时间相关的数据(如历史数据或股票交易数据)和WWW(通过Internet可以使巨大的、广泛分布的信息存储)。依据不同的数据类型,数据挖掘的对象包括以下几种:一、关系数据库当数据挖掘用于关系数据库时,可以进一步搜索趋势或数据模式。例如,数据挖掘系统可以分析顾客数据,根据顾客的收人、年龄和以前的信用信息预测新顾客的信用风险。数据挖掘系统也可以检测偏差,如与以前的年份相比,哪种商品的销售出入预料。这种偏差可以进一步考察(例如,包装是否有变化,或价格是否大幅度提高)。关系数据库是数据挖掘最流行的、最丰富的数据源,因此它是我们数据

12、挖掘研究的主要数据形式。二、数据仓库一般,数据仓库用多维数据库结构建模。数据仓库的实际物理结构可以是关系数据存储或多维数据立方体。它提供数据的多维视图,并允许预计算和快速访问汇总的数据。通过提供多维数据视图和汇总数据的预计算,数据仓库非常适合联机分析处理(OLAP)。OLAP允许在不同的抽象层提供数据。同时允许用户在不同的汇总级别观察数据。三、事务数据库一般地说,事务数据库由一个文件组成,其中每个记录代表一个事务。事物数据库可有一些相关联的附加表。事务可以存放在表中,由于大部分关系数据库系统不支持嵌套关系结构,而记录数据为一个嵌套关系,使用事务数据库通常存放在一表格式的展开文件中,或展开到类似

13、的标准关系中。当需要识别频繁的事物之间的关联时即可采用通过事务数据的数据挖掘系统。四、文本数据库文本数据库是包含对象文字描述的数据库。通常,这种词描述不是简单的关键词,而是正片文档。文本数据库可能是高度非结构化的(如www页)、半结构化的(如email)或结构化的(如图书馆数据库)。文本数据库上的数据挖掘可以发现对象类的一般描述,以及关键字或内容的关联和文本对象的聚类行为。为做到这一点,需要将标准的数据挖掘技术与信息检索技术和文本数据特有的层次构造(如字典和辞典),以及面向学科的(如化学、医学、法律或经济)术语分类系统集成在一起。五、多媒体数据库多媒体数据库存放图象、音频和视频数据。它们用于基

14、于图象内容的检索、声音传递、视频点播、www和识别口语命令的基于语音的用户界面等方面。多媒体数据库必须支持大对象,如视频这样的数据对象可能需要兆字节级的存储。还需要特殊的存储和搜索技术。因为视频和音频数据需要以稳定的、预先确定的速率实时检索,防止图象或声音间断和系统缓冲区溢出,因此这种数据称为连续媒体数据。对于多媒体数据库挖掘,需要将存储和搜索技术与标准的数据挖掘方法集成在一起。有前途的方法包括构造多媒体数据立方体、多媒体数据的多特征提取和基于相似性的模式匹配。2.3 数据挖掘的过程数据挖掘的过程实际是一个数据库知识的发现过程。依据发现过程可以分为以下几个步骤执行:一、确定挖掘目标清晰明确的定

15、义出问题,认清数据挖掘的最终业务目标。一般来说,目标可以是关联规则发现、数据分类、回归、聚类、数据汇总、概念描述、相关分析建模或误差检测及预测或综合应用等。二、数据准备在数据准备阶段又可以进一步细分为三步:数据集成、数据选择和预处理、数据变换和压缩。1数据集成。选择一个数据集或针对一个变量或数据样本的子集,在这个集合上进行挖掘。此时应考虑如何选取同类的数据,考虑过程中的动态情况和变化、采样策略、样本是否足够、自由度和其他一些问题。2数据选择和预处理。考虑如何正确去除噪声模型或解决噪声问题,决定采取何种策略去解决丢失的数据或数据库设计不完善带来的问题,以及解决时间序列信息和正确标准化等问题。3数

16、据变换和压缩。根据任务的目标,查找有用的特性来表示数据。利用空间压缩或变换的方法来减少要考虑的有效数目或找到数据的不变表示,一般方法把数据投影到某个空间上以利于问题解决。三、数据挖掘1选择数据挖掘方法。根据数据库知识发现过程的目标,选择相应的数据挖掘方法。如统计分析、机器学习、模式识别方法和人工神经元方法等。2选择数据挖掘算法。选择用来查找模式或符合数据的模型的算法,确定合适的模型和参数。另外,数据挖掘方法必须和目标相匹配。3数据挖掘。查找感兴趣的模式。模式一般表示为一种特殊的形式或一套表达式,如关联规则、分类规则或分类树,回归结构和聚类集等。四、评估与表示1结果表达。尽量直观地表示挖掘结果,

17、便于用户理解和使用,可利用可视化方法表示为图表等形式。2结果评价。筛选和评价挖掘结果中的有用部分,查找可接受的结果。可定义兴趣度指标,考虑结果的正确度、新颖度、有用性和简单性,把知识从输出中过滤出来。利用可视化方法帮助用户决定所提取知识的有效性和对基本的数据或现象做出结论。3知识巩固。把挖掘出的知识结合到执行系统中,了解这些知识的作用或证明这些知识。用预选知识且可信的知识来检查和验证所挖掘的知识,解决可能存在的矛盾,也可以只是简单地记录所挖掘出的知识,并把它报告给用户,由用户进一步分析。2.4 数据挖掘算法 数据挖掘的核心部分就是数据挖掘算法,设计数据挖掘算法的方法很多,不同的方法服务于不同的

18、目标,每种方法都有自己的优缺点。因此,一个功能全面的数据挖掘系统应该综合利用各种不同的方法。常用的数据挖掘算法主要包括: 1、决策树方法:利用信息论中的信息增益寻找数据库中具有最大信息量的字段,建立决策树的一个结点,再根据字段的不同取值建立树的分支,在每个分支子集中重复建立树的下层结点和分支的过程。 2、神经网络方法:是一组连接的输入、输出单元,其中每个连接都与一个权相联。在学习阶段,通过调整神经网络的权,使得能够预测输入样本的正确类标号来学习。由于单元之间的连接,神经网络学习又称连接者学习。 3、遗传算法:是一种优化技术,试图结合自然进化的思想。基于达尔文的进化论中基因重组、突变和自然选择等

19、概念。利用生物进化的一系列概念进行问题的搜索,最终达到优化的目的。 4、KNN算法:是一种理论上比较成熟的分类和回归算法,该方法定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 5、粗糙集方法:可以用于分类,发现不准确数据或噪声数据内在的结构联系,它用于离散值属性。粗糙集理论基于给定训练数据内部的等价类的建立。形成等价类的所有数据样本是不加区分的,即对于描述数据的属性,这些样本是等价的。 6、模糊集方法:利用模糊集合理论,对实际问题进行模糊判断、模糊决策、模糊模式识别等。对于数据挖掘系统进行分类,模糊逻辑是有用的。它提供了在高抽象层处理的便利。第三章 KNN算法介绍与实

20、现3.1 KNN算法介绍 通过参与城市集群竞争力项目的实践,结合自己所学的JAVA语言,为了更好的利用KNN算法实现项目数据的分类和预测,采取了用JAVA语言编写和改进KNN算法的方式。1、KNN的优缺点优点:原理简单,实现起来比较方便。支持增量学习。能对超多边形的复杂决策空间建模。缺点:计算开销大,需要有效的存储技术和并行硬件的支撑。2、KNN算法原理基于类比学习,通过比较训练元组和测试元组的相似度来学习。将训练元组和测试元组看作是n维(若元组有n的属性)空间内的点,给定一条测试元组,搜索n维空间,找出与测试元组最相近的k个点(即训练元组),最后取这k个点中的多数类作为测试元组的类别。相近的

21、度量方法:用空间内两个点的距离来度量。距离越大,表示两个点越不相似。距离的选择:可采用欧几里得距离、曼哈顿距离或其它距离度量。多采用欧几里得距离。3、KNN算法中的细节处理数值属性规范化:将数值属性规范到0-1区间以便于计算,也可防止大数值型属性对分类的主导作用。 可选的方法有:v = (v - vmin)/ (vmax - vmin),当然也可以采用其它的规范化方法。比较的属性是分类类型而不是数值类型的:同则差为0,异则差为1。有时候可以作更为精确的处理,比如黑色与白色的差肯定要大于灰色与白色的差。缺失值的处理:取最大的可能差,对于分类属性,如果属性A的一个或两个对应值丢失,则取差值为1;如

22、果A是数值属性,若两个比较的元组A属性值均缺失,则取差值为1,若只有一个缺失,另一个值为v,则取差值为1-v和0-v中的最大值。确定K的值:通过实验确定。进行若干次实验,取分类误差率最小的k值。 对噪声数据或不相关属性的处理:对属性赋予相关性权重w,w越大说明属性对分类的影响越相关。对噪声数据可以将所在的元组直接cut掉。4、KNN算法流程准备数据,对数据进行预处理 选用合适的数据结构存储训练数据和测试元组 设定参数,如k 维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组 随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号

23、和距离存入优先级队列 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax进行比较。若L=Lmax,则舍弃该元组,遍历下一个元组。若L Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。5、KNN算法的改进策略将存储的训练元组预先排序并安排在搜索树中(如何排序有待研究) 并行实现 部分距离计算,取n个属性的“子集”计算出部分距离,若超过设定的阈值则停止对当前元组作进一步计算。

24、转向下一个元组。 剪枝或精简:删除证明是“无用的”元组。 3.2 KNN算法的JAVA实现1、JAVA代码:package KNN;/* KNN结点类,用来存储最近邻的k个元组相关的信息*/public class KNNNode private int index; / 元组标号 private double distance; / 与测试元组的距离 private String c; / 所属类别 public KNNNode(int index, double distance, String c) super(); this.index = index; this.distance =

25、 distance; this.c = c; public int getIndex() return index; public void setIndex(int index) this.index = index; public double getDistance() return distance; public void setDistance(double distance) this.distance = distance; public String getC() return c; public void setC(String c) this.c = c; package

26、 KNN; /* KNN算法主体类*/import java.util.ArrayList;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.PriorityQueue;public class KNN /* * 设置优先级队列的比较函数,距离越大,优先级越高 */ private Comparator comparator = new Comparator() public int compare(KNNNode o1

27、, KNNNode o2) if (o1.getDistance() = o2.getDistance() return 1; else return 0; ; /* * 获取K个不同的随机数 * param k 随机数的个数 * param max 随机数最大的范围 * return 生成的随机数数组 */ public List getRandKNum(int k, int max) List rand = new ArrayList(k); for (int i = 0; i k; i+) int temp = (int) (Math.random() * max); if (!rand

28、.contains(temp) rand.add(temp); else i-; return rand; /* * 计算测试元组与训练元组之前的距离 * param d1 测试元组 * param d2 训练元组 * return 距离值 */ public double calDistance(List d1, List d2) double distance = 0.00; for (int i = 0; i d1.size(); i+) distance += (d1.get(i) - d2.get(i) * (d1.get(i) - d2.get(i); return distanc

29、e; /* * 执行KNN算法,获取测试元组的类别 * param datas 训练数据集 * param testData 测试元组 * param k 设定的K值 * return 测试元组的类别 */ public String knn(ListList datas, List testData, int k) PriorityQueue pq = new PriorityQueue(k, comparator); List randNum = getRandKNum(k, datas.size(); for (int i = 0; i k; i+) int index = randNu

30、m.get(i); List currData = datas.get(index); String c = currData.get(currData.size() - 1).toString(); KNNNode node = new KNNNode(index, calDistance(testData, currData), c); pq.add(node); for (int i = 0; i datas.size(); i+) List t = datas.get(i); double distance = calDistance(testData, t); KNNNode top = pq.peek(); if (top.getDistance() distance) pq.remove(); pq.add(new KNNNode(i, distance, t.get(t.size() - 1).toString();

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

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