数据处理技术.docx
《数据处理技术.docx》由会员分享,可在线阅读,更多相关《数据处理技术.docx(25页珍藏版)》请在冰豆网上搜索。
![数据处理技术.docx](https://file1.bdocx.com/fileroot1/2023-2/26/9034d8de-54d6-4a74-92d7-252f27880bd0/9034d8de-54d6-4a74-92d7-252f27880bd01.gif)
数据处理技术
数据处理技术
一、数据标准化技术:
1、Min-max标准化
min-max标准化方法是对原始数据进行线性变换。
设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:
新数据=(原数据-极小值)/(极大值-极小值)
2、z-score标准化
这种方法基于原始数据的均值(mean)和标准差
(standarddeviation)进行数据的标准化。
将A的原始值x
使用z-score标准化到x'。
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
新数据=(原数据-均值)/标准差
spss默认的标准化方法就是z-score标准化。
用Excel进行z-score标准化的方法:
在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。
步骤如下:
1求出各变量(指标)的算术平均值(数学期望)xi和
标准差si;
2进行标准化处理:
zij=(xij-xi)/si
其中:
zij为标准化后的变量值;xij为实际变量值。
3将逆指标前的正负号对调。
标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。
3、Decimalscaling小数定标标准化这种方法通过移动数据的小数点位臵来进行标准化。
小数点移动多少位取决于属性A的取值中的最大绝对值。
将属性A的原始值x使用decimalscaling标准化到x'的计算方法是:
x'=x/(10*j)
其中,j是满足条件的最小整数。
例如假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。
注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。
除了上面提到的数据标准化外还有对数Logistic模式、
模糊量化模式等等:
4、对数Logistic模式新数据=1/(1+eA(-原数据))
5、模糊量化模式
新数据=1/2+1/2sin[二3.1415/(极大值-极小值)*(X-(极
大值-极小值)/2)];X为原数据。
二、数据清洗
1、定义数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。
(1)一致性检查
一致性检查(consistencycheck)是根据每个变量的合理取值范围和相互关系,检查数据是否合乎要求,发现超出正常范围、逻辑上不合理或者相互矛盾的数据。
例如,用1-7级量表测量的变量出现了0值,体重出现了负数,都应视为超出正常值域范围。
SPSSSAS、和Excel等计算机软件都能够根据定义的取值范围,自动识别每个超出范围的变量值。
具有逻辑上不一致性的答案可能以多种形式出现:
例如,许多调查对象说自己开车上班,又报告没有汽车;或者调查对象报告自己是某品牌的重度购买者和使用者,但同时又在熟悉程度量表上给了很低的分值。
发现不一致时,要列出问卷序号、记录序号、变量名称、错误类别等,便于进一步核对和纠正。
2)无效值和缺失值的处理
由于调查、编码和录入误差,数据中可能存在一些无效值和缺失值,需要给予适当的处理。
常用的处理方法有:
估算,整例删除,变量删除和成对删除。
估算(estimation)。
最简单的办法就是用某个变量的样本均值、中位数或众数代替无效值和缺失值。
这种办法简单,但没有充分考虑数据中已有的信息,误差可能较大。
另一种办法就是根据调查对象对其他问题的答案,通过变量之间的相关分析或逻辑推论进行估计。
例如,某一产品的拥有情况可能与家庭收入有关,可以根据调查对象的家庭收入推算拥有这一产品的可能性。
整例删除(casewisedeletion)是剔除含有缺失值的样本。
由于很多问卷都可能存在缺失值,这种做法的结果可能导致有效样本量大大减少,无法充分利用已经收集到的数据。
因此,只适合关键变量缺失,或者含有无效值或缺失值的样本比重很小的情况。
变量删除(variabledeletion)。
如果某一变量的无效值和缺失值很多,而且该变量对于所研究的问题不是特别重要,则可以考虑将该变量删除。
这种做法减少了供分析用的变量数目,但没有改变样本量。
成对删除(pairwisedeletion)是用一个特殊码(通常是9、
99、999等)代表无效值和缺失值,同时保留数据集中的全部变量和样本。
但是,在具体计算时只采用有完整答案的样本,因而不同的分析因涉及的变量不同,其有效样本量也会有所不同。
这是一种保守的处理方法,最大限度地保留了数据集中的可用信息。
采用不同的处理方法可能对分析结果产生影响,尤其是当缺失值的出现并非随机且变量之间明显相关时。
因此,在调查中应当尽量避免出现无效值和缺失值,保证数据的完整性。
2、数据清洗原理
利用有关技术如数理统计、数据挖掘或预定义的清理规
则将脏数据转化为满足数据质量要求的数据,如图所示
问值不HoiAd;
图数据洁旳乐理
3、数据清洗的实现方式与范围
按数据清洗的实现方式与范围,可分为4种:
(1)手工实现,通过人工检查,只要投入足够的人力物力财力,也能发现所有错误,但效率低下。
在大数据量的情况下几乎是不可能的
(2)通过专门编写的应用程序,这种方法能解决某个特定的问题,但不够灵活,特别是在清理过程需要反复进行(一般来说,数据清理一遍就达到要求的很少)时,导致程序复杂,清理过程变化时,工作量大。
而且这种方法也没有充分利用目前数据库提供的强大数据处理能力。
(3)解决某类特定应用域的问题,如根据概率统计学原理查找数值异常的记录,对姓名、地址、邮政编码等进行清理,这是目前研究得较多的领域,也是应用最成功的一类。
如商用系统:
TrillinmSoftware,SystemMatchMaketr等。
(4)与特定应用领域无关的数据清理,这一部分的研究主要集中在清理重复的记录上,如DataCleanserDataBladeModule,Integrity系统等。
这4种实现方法,由于后两种具有某种通用性,较大的实用性,引起了越来越多的注意。
但是不管哪种方法,大致都由
三个阶段组成:
①数据分析、定义错误类型;②搜索、识别错误记录;③修正错误。
第一阶段,尽管已有一些数据分析工具,但仍以人工分析为主。
在错误类型分为两大类:
单数据源与多数据源,并将它们又各分为结构级与记录级错误。
这种分类非常适合于解决数据仓库中的数据清理问题。
第二阶段,有两种基本的思路用于识别错误:
一种是发掘数据中存在的模式,然后利用这些模式清理数据;另一种是基于数据的,根据预定义的清理规则,查找不匹配的记录。
后者用得更多。
第三阶段,某些特定领域能够根据发现的错误模式,编制
程序或借助于外部标准源文件、数据字典一定程度上修正错误;对数值字段,有时能根据数理统计知识自动修正,但经常须编制复杂的程序或借助于人工干预完成。
绝大部分数据清理方案提供接口用于编制清理程序。
它们一般来说包括很多耗时的排序、比较、匹配过程,且这些过程多次重复,用户必须等待较长时间。
在一个交互式的数据清理方案。
系统将错误检测与清理紧密结合起来,用户能通过直观的图形化界面一步步地指定清理操作,且能立即看到此
时的清理结果,(仅仅在所见的数据上进行清理,所以速度很快)不满意清理效果时还能撤销上一步的操作,最后将所有
清理操作编译执行。
并且这种方案对清理循环错误非常有效。
许多数据清理工具提供了描述性语言解决用户友好性,降低用户编程复杂度。
如ARKTOS方案提供了XADL语言(一种基于预定义的DTD的XML语言)、SADL语言,在ATDX提供了一套宏操作(来自于SQL语句及外部函数),一种SQLLike命令语言,这些描述性语言都在一定程度上减轻了用户的编程难度,但各系统一般不具有互操作性,不能通用。
数据清理属于一个较新的研究领域,直接针对这方面的
研究并不多,中文数据清理更少。
现在的研究主要为解决两个问题:
发现异常、清理重复记录。
4、数据清洗的方法一般来说,数据清理是将数据库精简以除去重复记录,并使剩余部分转换成标准可接收格式的过程。
数据清理标准模型是将数据输入到数据清理处理器,通过一系列步骤“清理”数据,然后以期望的格式输出清理过的数据(如上图所示)。
数据清理从数据的准确性、完整性、一致性、惟一性、适时性、有效性几个方面来处理数据的丢失值、越界值、不一致代码、重复数据等问题。
数据清理一般针对具体应用,因而难以归纳统一的方法和步骤,但是根据数据不同可以给出相应的数据清理方法。
(1)解决不完整数据(即值缺失)的方法大多数情况下,缺失的值必须手工填入(即手工清理)。
当然,某些缺失值可以从本数据源或其它数据源推导出来,这就可以用平均值、最大值、最小值或更为复杂的概率估计代替缺失的值,从而达到清理的目的。
(2)错误值的检测及解决方法用统计分析的方法识别可能的错误值或异常值,如偏差分析、识别不遵守分布或回归方程的值,也可以用简单规则
库(常识性规则、业务特定规则等)检查数据值,或使用不同属性间的约束、外部的数据来检测和清理数据。
(3)重复记录的检测及消除方法数据库中属性值相同的记录被认为是重复记录,通过判断记录间的属性值是否相等来检测记录是否相等,相等的记录合并为一条记录(即合并/清除)。
合并/清除是消重的基本方法。
(4)不一致性(数据源内部及数据源之间)的检测及解决方法
从多数据源集成的数据可能有语义冲突,可定义完整性约束用于检测不一致性,也可通过分析数据发现联系,从而使得数据保持一致。
目前开发的数据清理工具大致可分为三类。
数据迁移工具允许指定简单的转换规则,如:
将字符串gender替换成sex。
sex公司的PrismWarehouse是一个流行的工具,就属于这类。
数据清洗工具使用领域特有的知识(如,邮政地址)对数据作清洗。
它们通常采用语法分析和模糊匹配技术完成对多数据源数据的清理。
某些工具可以指明源的“相对清洁
程度”。
工具Integrity和Trillum属于这一类。
数据审计工具可以通过扫描数据发现规律和联系。
因
此,这类工具可以看作是数据挖掘工具的变形
三、数据挖掘技术
数据挖掘的技术有很多种,按照不同的分类有不同的分类法。
下面着重讨论一下数据挖掘中常用的一些技术:
统计技术,关联规则,基于历史的分析,遗传算法,聚集检测,连接分析,决策树,神经网络,粗糙集,模糊集,回归分析,差别分析,概念描述等十三种常用的数据挖掘的技术。
1、统计技术统计技术对数据集进行挖掘的主要思想是:
统计的方法对给定的数据集合假设了一个分布或者概率模型(例如一个
正态分布)然后根据模型采用相应的方法来进行挖掘。
在数据库字段项之间存在两种关系:
函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。
可进行常用统计(求大量数据中的最大值、最小值、总和、平均值等)、回归分析(用
回归方程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等。
2、关联规则数据关联是数据库中存在的一类重要的可被发现的知识。
若两个或多个变量的取值之间存在某种规律性,就称为关联。
关联可分为简单关联、时序关联、因果关联。
关联分析的目的是找出数据库中隐藏的关联网。
有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。
3、基于历史的MBR(Memory-basedReasoning)分析先根据经验知识寻找相似的情况,然后将这些情况的信
息应用于当前的例子中。
这个就是MBR(MemoryBased
Reasoning)的本质。
MBR首先寻找和新记录相似的邻居,然后利用这些邻居对新数据进行分类和估值。
使用MBR有三个主要问题,寻找确定的历史数据;决定表示历史数据的最有效的方法;决定距离函数、联合函数和邻居的数量。
4、遗传算法GA(GeneticAlgorithms)基于进化理论,并采用遗传结合、遗传变异、以及自然
选择等设计方法的优化技术。
主要思想是:
根据适者生存的原则,形成由当前群体中最适合的规则组成新的群体,以及这些规则的后代。
典型情况下,规则的适合度(Fitness)用它
对训练样本集的分类准确率评估。
sunil已成功地开发了一个基于遗传算法的数据挖掘工具,利用该工具对两个飞机失事的真实数据库进行了数据挖掘实验,结果表明遗传算法是进行数据挖掘的有效方法之一。
遗传算法的应用还体现在与神经网络、粗集等技术的结合上。
如利用遗传算法优化神经网络结构,在不增加错误率的前提下,删除多余的连接和隐层单元;用遗传算法和bp算法结合训练神经网络,然后从网络提取规则等。
但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决。
5、聚集检测将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。
由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其它簇中的对象相异。
相异度是根据描述对象的属眭值来计算的,距离是经常采用的度量方式。
6、连接分析
连接分析,Linkanalysis,它的基本理论是图论。
图论的思想是寻找一个可以得出好结果但不是完美结果的算法,而不是去寻找完美的解的算法。
连接分析就是运用了这样的思想:
不完美的结果如果是可行的,那么这样的分析就是一个好的分析。
利用连接分析,可以从一些用户的行为中分析出一些模式;同时将产生的概念应用于更广的用户群体中。
7、决策树决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。
决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。
它的主要优点是描述简单,分类速度快,特别适合大规模的数据处理。
最有影响和最早的决策树方法是由
quinlan提出的著名的基于信息熵的id3算法。
它的主要问题是:
id3是非递增学习算法;id3决策树是单变量决策树,复杂概念的表达困难;同性间的相互关系强调不够;抗噪性差。
针对上述问题,出现了许多较好的改进算法,如schlimmer和fisher设计了id4递增式学习算法;钟鸣,陈文伟等提出了ible算法等。
8、神经网络在结构上,可以把一个神经网络划分为输入层、输出层和隐含层。
输入层的每个节点对应—个个的预测变量。
输出层的节点对应目标变量,可有多个。
在输入层和输出层之间是隐含层(对神经网络使用者来说不可见),隐含层的层数和每层节点的个数决定了神经网络的复杂度。
除了输入层的节点,神经网络的每个节点都与很多它前面的节点(称为此节点的输入节点)连接在一起,每个连接对应一个权重Wxy,此节点的值就是通过它所有输入节点的值与对应连接权重乘积的和作为—个函数的输入而得到,我们把这个函数称为活动函数或挤压函数。
神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,用于分类、预测和模式识别的前馈式神经网络模型;以hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以art模型、koholon模型为代表的,用于聚类的自组织映射方法。
神经网络方法
的缺点是"黑箱"性,人们难以理解网络的学习和决策过程。
9、粗糙集粗糙集理论基于给定训练数据内部的等价类的建立。
形成等价类的所有数据样本是不加区分的,即对于描述数据的属性,这些样本是等价的。
给定现实世界数据,通常有些类不能被可用的属性区分。
粗糙集就是用来近似或粗略地定义这种类。
粗集理论是一种研究不精确、不确定知识的数学工具。
粗集方法有几个优点:
不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。
粗集处理的对象是类似二维关系表的信息表。
但粗集的数学基础是集合论,难以直接处理连续的属性。
而现实信息表中连续属性是普遍存在的。
因此连续属性的离散化是制约粗集理论实用化的难点。
10、模糊集模糊集理论将模糊逻辑引入数据挖掘分类系统,允许定义“模糊”域值或边界。
模糊逻辑使用0.0和1.0之间的真值表示一个特定的值是一个给定成员的程度,而不是用类或集合的精确截断。
模糊逻辑提供了在高抽象层处理的便利。
即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。
系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的
亦此亦彼性的。
李德毅等人在传统模糊理论和概率统计的基
础上,提出了定性定量不确定性转换模型--云模型,并形成
了云理论。
11、回归分析回归分析分为线性回归、多元回归和非线性同归。
在线性回归中,数据用直线建模,多元回归是线性回归的扩展,涉及多个预测变量。
非线性回归是在基本线性模型上添加多项式项形成非线性同门模型。
12、差别分析差别分析的目的是试图发现数据中的异常情况,如噪音数据,欺诈数据等异常数据,从而获得有用信息。
13、概念描述概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。
概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别,生成一个类的特征性描述只涉及该类对象中所有对象的共性。
14、覆盖正例排斥反例方法它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。
首先在正例集合中任选一个种子,到反例集合中逐个比较。
与字段取值构成的选择子相容则舍去,相反则保留。
按此思想循环所有正例种子,将得到正例的规则(选择子的合取式)。
比较典型的算法有michalski的aq11方法、洪家荣改进的aq15方法以及他的ae5方法。
四、二十大数据可视化工具点评
如今学习应用数据可视化的渠道有很多,你可以跟踪一些专家博客,但更重要的一点是实践/实操,你必须对目前可用的数据可视化工具有个大致了解。
以下是Netmagzine列
举的二十大数据可视化工具,无论你是准备制作简单的图表还是复杂的图谱或者信息图,这些工具都能满足你的需要。
更加美妙的是,这些工具大多免费。
第一部分:
入门级工具
I.
Excel
Excel的图形化功能并不强大,但Excel是分析数据的理想工具,上图是Excel生成的热力地图
作为一个入门级工具,Excel是快速分析数据的理想工
具,也能创建供内部使用的数据图,但是Excel在颜色、线
条和样式上可选择的范围有限,这也意味着用Excel很难制
作出能符合专业出版物和网站需要的数据图。
但是作为一个
高效的内部沟通工具,Excel应当是你百宝箱中必备的工具
之一。
2.CSV/JS0N
CSV(逗号分隔值)和JSON(JavaScript对象注释)虽然
并不是真正的可视化工具,但却是常见的数据格式。
你必须
理解他们的结构,并懂得如何从这些文件中导入或者导出数
据。
以下将要介绍的所有数据可视化工具都支持CSV、JSON
中至少一种格式
第二部分:
在线数据可视化工具
3.
GoogleChartAPI
GoogleChartAPI工具集中取消了静态图片功能,目前
只提供动态图表工具。
能够在所有支持SVG'Canvas和VML
的浏览器中使用,但是GoogleChart的一个大问题是:
图表
在客户端生成,这意味着那些不支持JavaScript的设备将无
法使用,此外也无法离线使用或者将结果另存其他格式,之前的静态图片就不存在这个问题。
尽管存在上述问题,不可否认的是GoogleChartAPI的功能异常丰富,如果没有特别
的定制化需要,或者对Google视觉风格的抵触,那么你大可
以从GoogleChart开始。
4.Flot
1$in(x)
1cos(x)t
j^os(x)of7丄
>0=0.35
f\
fy
\
1JFI
jf
w
err
nr.Tn
1.0
05
0.0
05
a.o
Flot是一个优秀的线框图表库,支持所有支持canvas的
浏览器(目前主流的浏览器如火狐、IE、Chrome等都支持)
5.Rapha?
l
Rapha?
是创建图表和图形的JavaScript库,与其他库最大的不同是输出格式仅限SVG和VML。
SVG是矢量格式,在任何分辨率下的显示效果都很好。
6.D3
D3(DataDrivenDocuments)是支持SVG渲染的另一种
JavaScript库。
但是D3能够提供大量线性图和条形图之外的复杂图表样式,例如Voronoi图、树形图、圆形集群和单词云等。
虽然D3能够提供非常花哨的互动图表,但你在选择数据可视化工具时,需要牢记的一点是:
知道在何时保持简洁。
7.
Visual.ly
如果你需要制作信息图而不仅仅是数据可视化,目前也
有大把的工具可用。
Visual.ly就是最流行的一个选择。
虽然
Visual.ly的主要定位是:
信息图设计师的在线集市”但是
也提供了大量信息图模板。
虽然功能还有很多限制,但是
Visual.ly绝对是个能激发你灵感的地方
第三部分:
互动图形用户界面(GUI)控制
如果数据可视化的互动性强大到可以作为GUI界面会
怎样?
随着在线数据可视化的发展,按钮、下拉列表和滑块都在进化成更加复杂的界面元素,例如能够调整数据范围
的互动图形元素,推拉这些图形元素时输入参数和输出结果数据会同步改变,在这种情况下,图形控制和内容已经合为一体。
以下这些工具能够帮你实现这些功能:
8.
Crossfilter
当我们为方便客户浏览数据开发出更加复杂的工具时,我们已经能够创建出既是图表,又是互动图形用户界面的小程序。
JavaScript库Crossfilter就是这样的工具。
Crossfilter应用:
当你调整一个图表中的输入范围时,其他关联图表的数据也会随之改变。
9.Tangle
Thecoefficientsandftinciipnarc
Somecjianrtpkfrequencyreip