数据
本章讨论一些与数据相关的问题,他们对于数据挖掘的成败至关重要。
1.数据类型
2.数据的质量
3,使数据适合挖掘的预处理步骤:处理一方面是要提高数据的质量,另一方面要让数据更好地适应特定的数据挖掘技术和工具。
4.根据数据联系分析数据:数据分析的异种方法是找出数据对象之间的联系,之后使这些联系而不是数据对象本身来进行其余的分析
数据类型
数据集可以看作数据对象的集合。
数据对象:记录、点、向量、模式、事件、案例、样本、观测或实体
属性:有时也叫变量、特征、字段、特性或维
测量标度:将数值或符号值与对象的属性相关联的规则(函数)【形式上,测量过程是使用测量标度将一个值与一个特定对象的特定属性相关联】
属性类型:属性的性质不必与用来度量它的值的性质相同。换句话说,用来代表属性的值可能具有不同于属性本身的性质,并且反之亦然。例如雇员的年龄与ID(ID的数值毫无意义)
数据集类型
常见三个特性:
1.维度
2.稀疏性
3.分辨率:常常可以在不同的分辨率下得到数据,并且在不同的分辨率下数据的性质也不同
记录数据
许多数据挖掘任务都假定数据集是记录(数据对象)的汇集,每个记录包含固定的数据字段(属性)集。
几种不同类型的记录数据:
(1)事务数据或购物篮数据:事务数据是一种特殊类型的记录数据,其中每个记录(事务)涉及一系列的项。考虑一个杂货铺。顾客一侧购物所购买的商品的集合就构成一个事务,而购买的商品是项。这种类型的数据称作购物篮数据。
(2)数据矩阵:如果一个数据集族中的所有数据对象都具有相同的数值属性集,则数据对象可以看作多维空间中的点(向量),其中每个维代表对象的一个不同属性。这样的数据对象集可以用一个m×n的矩阵表示,其中m行,一个对象一行;n列,一个属性一列。
(3)稀疏数据矩阵:稀疏数据矩阵是数据矩阵的一种特殊情况,其中属性的类型相同并且是非对称的,即只有非零值才是重要的。
基于图像的数据
图形可以方便而有效地表示数据。我们考虑两种特殊情况:(1)图形捕获数据对象之间的联系(2)数据对象本身用图形表示
有序数据
对于某些数据类型,属性具有涉及时间或空间序的联系。
(1)时序数据:也称为时间数据,可以看作记录数据的扩充,其中每个记录包括一个与之相关联的时间
(2)序列数据:序列数据是一个数据集合,它是各个实体的序列,如词或字母的序列。除了没有时间戳之外,它与时序数据非常相似,只是有序序列考虑项的位置。
(3)时间序列数据:时间序列数据是一种特殊的时序数据,其中每个记录都是一个时间序列,即一段时间以来的测量序列。在分析时间数据时,重要的是要考虑时间自相关,即如果每个测量的时间很接近,则这些测量的值通常非常相似。
(4)空间数据:空间数据的一个重要特点是空间自相关性,即物理上靠近的对象趋向于在其他方面也相似。
数据质量
数据挖掘着眼于两个方面:(1)数据质量问题的检测和纠正。(2)使用可以容忍低质量数据的算法。第一步的检测和纠正,通常称作数据清理。
期望数据完美是不现实的。由于人的错误、测量设备的限制或数据收集过程的漏洞都可能导致问题。数据的值乃至整个数据对象都可能会丢失。在有些情况下,可能有不真实的或重复的对象,即对应于单个“实际”对象出现了多个数据对象。
术语测量误差:是指测量过程中导致的问题。一个常见的问题是:在某种程度上,记录的值与实际值不同。对于连续属性,测量值与实际值的差称为误差。
术语数据收集错误:是指诸如遗漏数据对象或属性值,或不当地包含了其他数据对象等错误。
噪声:测量误差的随机部分。这可能涉及值被扭曲或加入谬误对象。常用于包含时间或空间分量的数据
伪像:数据错误可能是更确定性现象的结果,如一组照片在同一地方出现条纹。
精度:(同一个量的)重复测量值之间的接近程度
偏倚:测量值与被测量之间的系统的变差
准确率:被测量的测量值与实际值之间的接近度
离群点:在某种意义上具有不同于数据集中其他大部分数据对象的特征的数据对象,或是相对于该属性的典型值来说不寻常的属性值。我们也称其为异常对象或异常值。
遗漏值:一个对象遗漏一个或多个属性值的情况并不少见。有时可能会出现信息收集不全的情况,例如有的人拒绝透露年龄或体重。有许多处理遗漏值的策略,每种策略可能适用于特定的情况。
策略例如:
(1)删除数据对象或属性
(2)估计遗漏值
(3)在分析时忽略遗漏值
不一致的值:数据可能包含不一致的值。检测到不一致后,有时可以对数据进行更正。产品代码可能有“校验”数字,或者可以通过一个备案的已知产品代码列表,复核产品代码,如果发现它不正确但接近一个已知代码,则纠正它。纠正不一致需要额外的或冗余的信息。
重复数据:数据集可能包含重复或几乎重复的数据对象。术语去重复通常用来表示处理这些问题的过程。
数据预处理
我们讨论以下主题:
1.聚集
2.抽样
3.维归约
4.特征子集选择
5.特征创建
6.离散化和二元化
7.变量变换
这些项目分为两类,即选择分析所需要的数据对象和属性以及创建/改变属性。这两种情况的目标都是改善数据挖掘分析工作,减少时间,降低成本和提高质量。
聚集
聚集将两个或多个对象合并成单个对象。考虑一个由事务(数据对象)组成的数据集,它记录一年中不同日期在各地商店的商品日销售情况。
这里显而易见的问题是如何创建聚集事务,即在创建代表单个商店或日期的聚集事务时,如何合并所有记录的每个属性的值。定量属性通常通过求和或求平均值进行聚集。定性属性可以忽略或汇总成在一个商店销售的所有商品的集合。
抽样
抽样是一种选择数据对象子集进行分析的常用方法。在统计学中,抽样长期用于数据的事先调查和最终的数据分析。
有效抽样的主要原理如下:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。而样本是有代表性的。前提是它近似地具有与原数据集相同的(感兴趣的)性质。
抽样方法:
1.简单随机抽样:(1)无放回抽样(2)有放回抽样
2.分层抽样:它从预先指定的组开始抽样。
3.渐进抽样:合适的样本容量可能很难确定,因此有时需要使用自适应或渐进抽样方法。这些方法从一个小样本开始,然后增加样本容量直至得到足够容量的样本。尽管这种技术不需要在开始就确定正确的样本容量,但是需要评估样本的方法,确定它是否足够大。
维归约
数据集可能包含大量特征。维归约有多方面的好处。关键好处是,如果维度较低,许多数据挖掘算法的效果就会更好。这一部分是因为维归约可以删除不相关的特征并降低噪声,一部分是因为维灾难。另一个好处是维归约可以使模型更容易理解,因为模型可能只涉及较少的属性。此外,维归约也可以更容易让数据可视化。即使维归约没有将数据归约到二维或三维,数据也可以通过观察属性对或三元组属性达到可视化,并且这种组合的数目也会大大减少。最后,使用维归约降低了数据挖掘算法的时间和内存需求。
术语维归约通常用于这样的技术:通过创建新属性,将一些旧属性合并在一起来降低数据集的维度。通过选择旧属性的子集得到新属性,这种维归约称为特征子集选择或特征选择。
1.维灾难
随维度的增加,数据分析变得越来越困难。
2.维归约的线性代数技术
维归约的一些最常用的方法是使用线性代数技术,将数据由高维空间投影到低维空间,特别是对于连续数据。例,PCA,SVD.
特征子集选择
降低维度的另一种方法是仅使用特征的一个子集。尽管看起来这种方法可能丢失信息,但是在存在冗余或不相关的特征的时候,情况并非如此。冗余特征重复了包含在一个或多个其他属性中的许多或所有信息。不相关特征包含对于手头的数据挖掘任务几乎完全没用的信息。冗余和不相关的特征可能降低分类的准确率,影响所发现的聚类的质量。
尽管使用常识或领域知识可以立即消除一些不相关的和冗余的属性,但是选择最佳的特征子集通常需要系统的方法。特征选择的理想方法是:将所有可能的特征子集作为感兴趣的数据挖掘算法的输入,然后选取产生最好结果的子集。这种方法的优点是反映了最终使用的数据挖掘方法的目的和偏爱。然而,由于涉及n个属性的子集多大2n个,这种方法在大部分情况下行不通,因此需要其他策略。有三种标准的特征选择方法:嵌入、过滤和包装。
嵌入
特征选择作为数据挖掘算法的一部分是理所当然的。特别是在数据挖掘算法运行期间,算法本身决定使用哪些属性和忽略哪些属性。构造决策树分类器的算法通常以这种方式运行。
过滤
使用某种独立于数据挖掘任务的方法,在数据挖掘算法运行前进行特征选择,例如我们可以选择属性的集合,它的属性对之间的相关度尽可能低。、
包装
这些方法将目标数据挖掘算法作为黑盒,使用类似于前面介绍的理想方法,但通常并不枚举所有可能的子集来找出最佳属性子集
1.特征子集选择体系结构
特征子集选择过程流程图
从概念上讲,特征子集选择是搜索所有可能的特征子集的过程。可以使用许多不同类型的搜索策略,但是搜素策略的计算花费应当降低,并且应当找到最优或近似最优的特征子集。通常不可能同时满足这两个要求,需要折中权衡。
搜索的一个不可缺少的组成部分是评估步骤,根据已经考虑的子集评价当前的特征子集。这需要一种评估度量,针对诸如分类或聚类等数据挖掘任务,确定属性特征子集的质量。对于过滤方法,这种度量试图预测实际的数据挖掘算法在给定的属性集上执行的效果如何;对于包装方法,评估包括实际运行目标数据挖掘应用,子集评估函数就是通常用于度量数据挖掘结果的评判标准。
因为子集的数量可能很大,考察所有的子集可能不现实,因此需要某种停止搜索判断。其策略通常基于如下一个或多个条件:迭代次数,子集评估的度量值是否最优或超过给定的阈值,一个特定大小的子集是否已经得到,大小和评估标准是否同时达到,使用搜索策略得到的选择是否可以实现改进。
最后,一旦选定特征子集,就要验证目标数据挖掘算法在选定子集上的结果。一种直截了当的评估方法是用全部特征的集合运行算法,并将全部结果与使用该特征子集得到的结果进行比较。如果顺利的话,特征子集产生的结果将比使用所有特征产生的结果更好,或者至少几乎一样好。另一个验证方法是使用一些不同的特征选择算法得到特征子集,然后比较数据挖掘算法在每个子集上的运行结果。
2.特征加权
特征加权是另一种保留或删除特征的方法。特征越重要赋予的权值越大,而不太重要的特征赋予较小的权值。
特征创建
三种创建新属性的方法:
1.特征提取
2.映射数据到新空间:使用一种完全不同的视角挖掘数据可能揭示出重要和有趣的特征。例如傅里叶变换、小波变换等
3.特征构造
离散化和二元化
有些数据挖掘算法,特别是某些分类算法,要求数据是分类属性形式。发现关联模式的算法要求数据是二元属性形式。这样,常常需要将连续属性变换成分类属性(离散化),并且连续和离散属性可能都需要变换成一个或多个二元属性(二元化)。此外,如果一个分类属性具有大量不同值(类别),或者某些值出现不频繁,则对于某些数据挖掘任务,通过合并某些值减少类别的数目可能是有益的。
1.二元化
2.连续属性离散化
3.具有过多值的分类属性
变量变换
变量变换是指用于变量的所有值的变换。(尽管我们也偶尔用属性变换这个术语,但是遵循习惯用法,我们使用变量指代属性。)换言之,对于每个对象,变化都作用于该对象的变量值。
1.简单函数
2.规范化或标准化
相似性和相异性的度量
由于两个对象之间的邻近度是两个对象对应属性之间的邻近度的函数,因此我们首先介绍如何度量仅包含一个简单属性的对象之间的邻近度,然后考虑具有多个属性的对象的邻近度度量。这包括相关和欧几里得距离度量,以及Jaccard和余弦相似性度量。前二者适用于时间序列这样的稠密数据或二维点,后二者适用于像文档这样的稀疏数据。
两个对象之间的相似度的非正式定义是这两个对象相似程度的数值度量。因而,两个对象越相似,他们的相似度就越高。通常,相似度是非负的,并常常在0(不相似)和1(完全相似)之间取值
两个对象之间的相异度是这两个对象差异程度的数值度量。对象越类似,他们的相异度就越低。
变换
通常使用变换把相似度转换成相异度或相反,或者把近似度变换到一个特定区间,如[0,1]
通常,邻近度度量(特别是相似度)被定义为或变换到区间[0,1]中的值。这样的动机是使用一种适当的尺度,由邻近度的值表明两个对象之间的相似(或相异)程度。这种变换通常是比较直截了当的。