数值数据离散化转换系统设计与实现
2023-02-22 10:00:36
论文总字数:13208字
摘 要
数据预处理是在数据挖掘的重要组成部分,现实世界大量数值数据以连续值形式存在,某些数据挖掘方法(例如分类等)适用于离散化属性值数据,数据离散化成为了预处理工作的重要组成部分。论文工作基于已有的代表性基于熵的离散化方法,设计实现数值数据离散化系统,实现对连续数值的离散化处理,为后续挖据分析做准备。关键词:数据挖掘;熵;离散化
Data of numerical discretization systems design and implementation
Abstract:Data preprocessing in data mining is an important part of the real world, a large amount of numerical data in the form of continuous value exists, some data mining methods, such as classification, etc.) is suitable for data discretization attribute value, the discrete data into to preprocessing work is an important part of. Paper work based on the existing representative discretization method based on entropy, numeric data discretization systems design, implementation of continuous numerical discretization processing, prepare the way for subsequent dig according to the analysis.
Key words: DM(data mining); entropy; Discretization
引 言
数据是数据对象以及数据属性的集合。而属性值则是一个与属性相关联的数值或者符号,更加具体的描述了属性[1]。数据又可以分成记录数据、图数据以及有序数据等。属性则可以分成名称类型属性、间隔类型属性、比率类型属性等,而不同类型的属性对应支持不同类型的运算集合。想要获得高质量的数据挖掘结果就需要高质量的数据来源,为了能更高质量的完成数据挖掘,可以先对数据进行一些转换和处理,也就是我们所说的数据预处理。数据预处理又包括了对数据的清洗、数据德集成、数据归约和数据转换以及数据的离散化[2]。在对数据进行预处理之前通常需要对数据进行总体的认识,也就是要把数据描述或简化成可以理解的模式。描述数据可通过中心趋势例如均值或者中位数,描述数据的分散程度则可以用方差和标准差,另外还有一些其他的方法例如散点图以及参数化方法等。由于现有的计算机还不能储存和处理无限精度的数据,但是一些算法的复杂度和它的属性值有关,也就衍生出了数据离散化,而数据的离散化就是对数据的属性值进行预处理,然后把它的数据属性值划分成有限个部分,再用标签替代原有的属性值。 所以当前我们要进行数据挖掘首先要对数据的离散化进一步的研究。
第一章 数据数值离散化研究
1.1课题背景
在学习传统的机器语言的过程中,我们通常将离散化作为一个非常边缘的学科来忽略它,但近年来,数据挖掘技术的不断发展和普及,数据的离散化变得越来越重要,尤其是在进行数据的规则提取和特征分类时尤为明显,我们在使用粗集理论研究数据挖掘时必须要对一些连续型的数据进行离散化处理,虽然数据的离散化研究目前来说还不算研究热点,但不可否认的是它确实是数据预处理过程中的一个相当汇总要的部分[3]。现如今的数据库中存在较多的是连续性的数据,但是现有的数据挖掘方法只能处理一些离散的数据,所以对连续属性数据进行离散化处理是必然的。如今连续数据的离散化已成为数据挖掘的必然工作之一直接影响了数据挖掘的质量,但是作为一个比较新兴领域,我们还要对离散化算法投入更多的研究,这也是研究数据数值离散化的一个重要原因[6]。
1.2论文组织
本文分为五个章节,各个章节的内容概述如下:
第一章:绪论。介绍了课题研究背景及论文组织结构。
第二章:数据数值离散化算法研究。介绍了离散化的概念;离散化的几种方法,包括基于卡方检验的离散化、基于自然分区的离散化以及基于信息增益的离散化算法。
第三章:系统设计。本章节主要研究了软件系统架构设计,实现了功能模块设计以及处理流程设计。
第四章:系统实现。介绍了系统开发工具、数据库的实现、主要功能模块实现以及界面的实现。
第五章:文章总结。概述了数据数值离散化系统的实现过程。
第二章 数据数值离散化算法
2.1 离散化
2.1.1 离散化的概念
数据离散化指的是对数据的属性进行预处理,它把数据的属性划分成一定部分,然后用这些部分的标签替代原有的恶属性值,事实上经过采集的数据已经进行过了离散化[5]。
数据离散化方法的基本思想是把一个具有连续值属性的系统s=(U,AT∪D),U代表的是有限非空集合,指的是对象空间或者域,AT是样本空间的非空属性集合,D则是属性集合,对于每个连续值属性a,a∈AT,它的值域就是样本空间U在属性a上的取值范围,由实数域上的区间[Va,Wa)表示。对于每一个连续值属性,可以在一个合适的分区中找到一系列的值。在分区Pα系统的初始系统应该具有相同的能力,分区的属性范围是不相交的子区间。每个子区间用符号的形式赋值,可以得到了一组离散化取值,这个过程就是对样本空间U的连续值属性进行离散化的过程。由于任何划分只是通过一组值域内的分割点序列(v.lt;v:…lt;v。)确定的,所以在系统中被指定为根据需要和离散化的过程是选择一个适当的划分顺序的一个连续范围内的一个连续的范围内的一个连续的范围,以便最终离散化结果[7]。
2.2 离散化算法
数据离散化的方法有分箱、聚类、自顶向下拆分、自底向上合并。本文主要研究集中通过拆分和合并进行离散化的方法,包括基于卡方检验的离散化方法、基于自然区分的离散化方法、基于信息增益的离散化方法。
2.2.1基于卡方检验的离散化
ChiMerge(D)
输入:数据={d1,d2,。。。,dn}。
输出:区间A1,A2,。。。,An。
- 把数据Dde属性H的每个属性划分成单独的区间A1,A2,。。。,An。
- 每个相邻区间Ai,Ai 1中的数据都要进行卡方检验所得到的变量就是所属区间即类别。
- 如果第二步中得到的最小卡方值对应区间是Ak,Ak 1,并且没有到达终止条件,那么就合并这两个区间,再次进行编号继续重复执行第二步。
- 直到算法结束后返回合并后的区间[1]。
2.2.2 基于自然分区的离散化
在处理一些实际问题的时候我们经常会使用经验型的方法,比如自然分区,而这种方法的意义就是把数值型的数据相对规整的分成自然分区。
- 假如一个区间中的不同值数量最高的有效位是3,6,7或9,那么这个区间可以等宽的分成三个区间。
- 而如果它的最高有效位是2,4或者8,那么将这个区间等宽的划分成4个区间。
- 若最高有效位是1,5或者10,就将该区间等宽划分成5个区间。
这样的一个方法可以作为一个实践过程中的参考,但是并没有比较严谨的科学依据,它的优点是简便易行。
2.2.3基于信息增益的离散化算法
这是一种自顶向下的拆分方法从属性的整体开始,使用一个边界对其属性值进行划分从而获得信息增益。在计算和确定分裂点时使用类来分布信息。该方法选取最小熵值作为其离散点的离散属性,然后用递归方法对结果区间进行划分,从而得到分层的离散化。也就是A的概念分层。
熵是衡量一个集合混乱程度的标准,如果一个数据有m个分类,那么这个集合的熵是
选择使信息增益最大的边界,使属性值离散化后的对分类信息的损失最小,这样的方法同样适用于子分区,可以一直分下去,直到满足终止条件。
2.3 离散化算法的分类
离散化算法根据监督性规则可以分成无监督算法和有监督算法两种。
- 无监督算法
不考虑属性和类别,等宽和等频两种算法是无监督的。
- 有监督算法
它考虑了属性和类别之间的关系,在离散化过程中的类别值作为参数。离散化算法根据方法又可以分成局部方法和全局方法两种。
- 局部方法
这种方法在离散化一个属性的时候先忽略对其他属性的影响
但这种方法容易破坏数据中的重要关系,所以通常我们认为这是一种次优方法。它的优点是方法相对简单易行,并且已经得到了广泛的应用。
- 全局方法
这种方法考虑到了属性之间的相互作用,比之局部方法能得到更好的离散化结果。
但是它的缺点是计算成本太高,很难得到广泛的应用,所以将来我们要研究的方向是如何降低全局方法的成本代价[8]。
第三章 系统设计
3.1 软件系统架构设计
3.1.1应用系统建设
本次系统的重点是完成连续性数值在信息增益的方法下进行离散化,从而建立起一个数据数值离散化系统,并且通过SOA面向服务管理架构的模式将各组件进行整合,从而完成系统的统一管理与维护。
3.1.2应用资源采集
本次系统对数据资源的采集、导入、处理以及展现。我们会通过资源采集工具对数据进行采样并统一管理维护,然后通过全面的借口管理体系对各模板进行搭建。
3.1.3数据的分析与展现
采集完成的数据将导入系统,实现有效的数据管理与展现,包括对数据的采集、分析、查询、统计、处理等模块。
3.2 功能模块设计
根据对数据的处理,本系统划分四个模块,分别是数据选取模块、属性选择模块、离散化处理模块以及数据的保存与展现模块。
(1)数据选取模块。用户可以根据需求从待离散化的数据工作表中选取需要离散化的数据并导入系统。
(2)属性选择模块。系统根据待离散化数据的特点选择离散化属性,同时对数据进行排序。
(3)离散化处理模块。对待离散化数据进行分裂,并且计算熵的值。
(4)数据的保存与展现模块。完成数据的保存功能和展现功能。
3.3处理流程设计
数据数值离散化系统的开发流程,先编写需求规格说明书,然后是系统体系结构设计、软件设计、系统集成、系统测试,最终完成产品开发。
系统需求分析:
规格说明书
体系结构设计
软件设计
系统集成
系统测试
产品
图3-1系统设计处理流程图
(1)软件设计。基于系统体系结构对系统软件进行详细设计,通常设计是并行的。
(2)系统集成。把系统软件和执行集成,进行调试,然后改进各个单元中出现的错误。
(3)系统测试。将已完成的系统进行测试,看是否满足规格说明书中的功能需求。
第四章 系统实现
4.1开发工具介绍
Visual Studio。NET是由微软公司开发的产品。NET平台下最为强大的开发工具,Visual Studio。NET提供了设计、编码、调试、数据库联接操作等基本功能,同时还为提供了一系列基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等一系列的高级功能。不管是企业应用程序的部署与发布,还是软件服务商,Visual Studio。NET都可以提供近乎完美的解决方案。Visual Studio 。NET的版本有Visual Studio 。NET2002、Visual Studio 。NET2003、Microsoft Visual Studio 2005、Microsoft Visual Studio 2008、Visual Studio 2010等几个版本[9]。
4.2 数据库设计
数据数值离散化系统是一个应用型系统,所有的待离散化数据都保存在数据库系统中,数据库的结构设计时在进行数据库开发过程中的一个重要问题所在。数据库的结构设计指的是各个表格的设计以及表之间的关系。对数据库的设计会直接影响系统的效率以及系统运行的结果。
4.2.1数据库需求分析
数据库结构设计的第一个阶段是对数据库进行需求分析,也就是收集数据及处理数据。本系统需求分析解决的两个问题:
(1)内容要求:收集离散化系统所需要的数据源,判断存储数据的标准。
(2)处理要求:研究离散化数据需要对数据进行怎样的处理,并研究Excel标中数据间的关系。
完成数据库需求分析后会得到一个数据字典,其中包括:
(1)数据项:也就是数据的名称、含义、长度、取值范围、类型等。
(2)数据结构:各个数据项的集合,指的是含有名称含义等意义的数据项。
(3)数据流:数据的处理过程,包括输入、输出和处理。
本系统的数据项及数据结构:
数据的基本信息,包括数据的行、列、分裂列、待分裂列等。
数据的基本属性。
4.2.2数据库概念结构设计
数据库的概念结构设计是在需求分析的基础上设计出满足用户需求的实体。
待离散数据
图4-1 数据实体E-R图
:
工作表
待分裂数据列
数据源
n 1 n 1
图4-2 数据关系E-R
4.2.3数据库逻辑结构设计
下图为数据的基本情况表,是待分裂数据及分裂数据的简单介绍。
表4-1数据基本情况表
列名 | 数据属性 | 可否为空 | 说明 |
A | 分裂列 | Not null | |
B | 待分裂列 | Noll | |
C | 待分裂列 | Noll | |
D | 待分裂列 | Noll |
4.3 主要功能模块实现
数据选取:主要实现了对数据源的选择以及导入功能。
属性选择:选择数据属性并且根据属性对数据进行升序降序排序。
剩余内容已隐藏,请支付后下载全文,论文总字数:13208字