数据预处理概论
数据预处理技术包括:聚集、抽样、维规约、特征子集选择、特征创建、离散化、二元化、变量变换。
先来看看属性的类型。
属性的类型:
标称:(定性的)(值仅仅是不同的名字,即只提供足够的信息以区分对象, 如雇员ID,性别);
序数(定性的)(值提供足够信息确定对象的序, ,如成绩,街道号码);
区间(定量的)(值之间的差别是有意义的,即存在测量单位 如日历日期,摄氏和华氏温度);
比率(定量的)(差和比率都是有意义的 如:年龄,长度,电流);
时序数据(也叫时间数据)是对记录数据的扩充,其中,每个记录包含一个与之相关联的时间;
序列数据是一个数据集合,它是个体项的序列,如词或字母的系列,除了没有时间戳之外,它与时序数据非常相似。时间序列数据是一种特殊的时序数据,其中每个记录都是一个时间序列,即一段时间的测量序列。
聚集:将两个或多个对象合并成单个对象。如将表的两列并成一列(删除属性),将表的多行并成一行。将按天的记录并成按月的记录(这种聚集常用于联机分析处理OLAP)。聚集动机:(1)导致需要较小的内存和处理时间;(2)通过高层而不是低层数据视图,聚集起到了辖域和标度转换的作用;(3)对象或属性群的性质通常比单个对象或属性的性质更加稳定;(4)缺点是:丢失有趣的细节。
抽样:分层抽样:从预先指定的组开始抽样。在最简单的情况下,尽管每组的大小不同,但是从每组抽取的对象个数相同。另一种变形是从每一组抽取的对象的数量正比于该组的大小。合适的样本容量可能很难确定,因此有时需要使用自适应和渐进抽样的方法:从一个小样本开始,然后增加样本容量直至得到足够容量的样本。
二元化:发现关联模式的算法要求数据是非对称的二元属性(只有属性的出现才是重要的)。一种分类属性二元化的技术如下:如果有m个分类值,将每个原始值唯一地赋予区间[0,m-1]中的一个整数。如果属性是有序的,则赋值必须保持序关系。然后,将这m个整数的每一个都变换成一个二进制数。由于需要个二进制位表示这些整数,使用n个二元属性表示这些二进制数。但是该方法不适合于非对称的二元属性,对于它必须为每一个分类值引入一个二元属性。
离散化:包括非监督离散化和监督离散化。
非监督离散化:连续属性的离散化:等宽(等宽区间)、等频或等深(每个区间的点一样多)、使用(诸如K均值等)聚类后的结果来离散化。
监督离散化:一种概念上的方法是以极大化区间纯度的方式确定分割点。然而,实践中这种方法可能需要任意确定区间纯度和最小化的区间大小。为了解决这一问题,一些基于统计学的方法用每个属性值来分割区间,并通过合并类似于根据统计检验的相邻区间来创建较大的区间。如果一个区间只包含一个类的值(该区间非常纯),则其熵为0,如果一个区间中的值类出现的频率相等(该区间尽可能不纯),则其熵最大。
一种划分连续属性的简单方法是:开始,将初始值切分成两个部分,使得两个结果区间产生最小熵。该技术只需要把每个值看作可能的分割点,因为假定区间包含有序值的集合。然后,取一个区间,通常选取具有最大熵的区间,重复分割过程,知道区间的个数达到用户指定的个数,或满足终止条件。OLAP的分析功能集中在从多维数据数组中创建汇总表的各种方法。 OLAP技术包括在不同的维上或在不同的属性上聚集数据。
众数:具有最高频率的数。对于多元数据,每个属性的散布可以独立于其他属性。
数据的散布更多地用协方差矩阵表示。两个属性的协方差矩阵是两个属性一起变化并依赖于变量大小的度量。协方差接近于0表明两个变量不具有(线性)关系。
用多维数组表示数据需要两个步骤:维的识别和分析所关注的属性的识别。
从表形式表示的数据集创建多维数据表示的过程:首先确定用作维的分类属性以及用作分析目标的定量属性(目标属性是定量的,因为多维数据分析的关键目标是观察聚集量,如总和和平均值),然后将表的每一行(对象)映射到多维数据的一个单元,单元的下标由被选作维的属性的值指定,而单元的值是目标属性的值,假定没有被数据定义的单元的值为0。
从多维角度看待数据的主要动机就是需要以多种方式聚集数据。计算聚集总会涉及固定某些属性(维)的值,在其余属性(维)的所有可能的值上求和。数据的多维表示,连同所有可能的总和(聚集)称作数据立方体(尽管叫立方体,每个维的大小(属性的个数)却不必相等,此外,数据立方体可能多余或少于三个维)。数据立方体是称为交叉表的统计学技术的推广。
转轴:在除两个维之外的所有维上聚集,结果是一个二维交叉表,只有两个指定的维作为留下的维;
切片:通过对一个或多个维指定特定的值,从整个多维数组中选择一组单元。
切块:通过指定属性区间选择单元子集,这等价于由整个数组定义子数组;
上卷:如将按天的数据按月聚集;
下钻:按月的数据分解为按天的。
上卷和下钻与聚集有关,然而不同于其他聚集,它是在一个维内聚集单元,而不是在整个维上聚集。多维数据分析将数据看作多维数组,并聚集数据,以便更好地分析数据的结构。
维规约:维规约可以删除不相关的特征并降低噪声。术语维规约通常用于这样的技术:通过创建新属性,将一些旧属性合并在一起来降低数据集的维度。通过选择旧属性的子集得到新属性称为特征子集选择或特征选择。维规约的一些常用的方法是使用线性代数的技术,将数据由高维空间投影到低维空间,特别是对于连续数据。主成分分析(PCA)是一种用于连续属性的线性代数技术,并且捕获数据的最大变差。奇异值分解是一种线性代数技术,它与PCA有关,并且也用于维规约。
特征子集选择:降低维度的另一种方法是近使用特征的一个子集。特征现在的理想方法是:将所有可能的特征子集作为感兴趣的数据挖掘算法的输入,然后选取产生最好结果的子集。这种方法在大部分情况下行不通,所以有三种标准的特征选择方法:嵌入、过滤和包装。
嵌入方法:特征选择作为数据挖掘算法的一部分自然地出现。特殊地,在数据挖掘算法运行期间,算法本身决定使用哪些属性和忽略哪些属性。
过滤方法:使用某种独立于数据挖掘任务的方法,在数据挖掘算法运行前进行特征选择。例如:我们可以选择属性的集合,它的属性对之间的相关度尽可能低。
包装方法:将目标数据挖掘算法作为黑盒,使用类似于前面介绍的理想算法的方法,但通常不枚举所有可能的子集来找出最佳属性子集。
过滤方法和包装方法的唯一不同是它们使用了不同的特征子集评估方法。对于包装方法,子集评估使用目标数据挖掘算法;对于过滤方法,子集评估技术不同于目标数据挖掘算法。特征子集产生的结果将比所有特征产生的结果更好,或者至少几乎一样好。
特征创建:常常可以由原来的属性创建新的属性集,更有效的捕获数据集中的重要信息。此外,新属性的数目可能比原属性少。
特征创建的三种方法:特征提取、映射数据到新的空间和特征构造。
特征提取:由原始数据创建新的特征集称作特征提取。最常使用的特征提取技术都是高度依赖于特定领域的。所以,一旦数据挖掘用于一个相对较新的领域,一个关键的任务就是开发新的特征和特征提取方法。
映射数据到新的空间:通过对时间序列实施傅里叶变换,将它转换成频率信息明显的表示,就能检测到这些模式。除傅里叶变换外,对于时间序列和其他类型的数据,已经证实小波变换也是非常有用的。
特征构造:原始数据集的特征具有必要的信息,但其形式不适合数据挖掘算法。在这种情况下,一个或多个由原始特征构造的新特征可能比原始特征更有用。尽管有一些努力试图通过考察已有特征的简单数字组合来自动地进行特征构造,但是最常见的方法还是使用专家意见构造特征。