首页 > 编程知识 正文

下面哪种不属于数据预处理的方法?(),数据预处理的过程包括

时间:2023-05-05 15:05:25 阅读:135317 作者:2386

预处理数据需要很多时间,虽然很麻烦,但这是必不可少的非常重要的步骤。 在数据可用于计算的前提下,我们认为数据预处理过程能够提高分析结果的准确性,缩短计算过程是数据预处理的目的。 本文只说明了这些预处理方法的用途和实施的过程,没有涉及编程的内容,预处理的过程可以通过各种语言编程来实现。 我个人认为,没有办法直接适用于任何任务,最好根据实际任务选择调整处理方法。

数据预处理方法大致可分为数据清理、数据集成、数据转换、数据规约四大类。

1 .数据清理主要是针对数值上各种异常情况的处理,根据数值异常情况,数据清理常见的有: 缺损值处理、离群值和噪声值处理、异常范围和类型值处理。

1.1 缺失值处理

缺少值会导致数据记录中的一些信息丢失,并且一些不稳健的模型可能会由于缺少值而无法计算数据。 缺失值的处理一般有废弃和推定两种思路。

可以只丢弃缺少项的值,也可以丢弃包含缺少项的整个数据记录。 这需要确认该数据记录中是否有其他数据有价值。 特别是在数据样本较少的情况下,需要进行权衡。

如果不想舍弃缺损值,需要估算缺损值。 报价的方法有几种,最直接的是让有经验的人手工填写。 除此之外的一般方法如下。

(一)替代。 替换为具有缺少值的属性上所有值的平均值(在这种情况下,可以加权)或某个分位值。 对于时间系列,可以用相邻数据记录的值(或平均值)进行替换。

(2)填充。 可以用“类似”记录中记录的缺少值和缺少值来填充缺少值。 但是,这里首先需要定义“类似的”。 这可能会成为棘手的问题。 k最近,通过聚类等方法推测缺失的值就是这样的想法。 关于时间序列,可以使用线性插值或非线性插值等插值方法。

(3)基于统计模型的估计。 根据缺少的值建立统计模型,估计模型参数,然后预测缺少的值。

1.2 离群和噪声值处理

实际上噪声包含的范围比较广,在计算过程中浪费的或导致噪声的都被称为噪声,1.1节中所述的缺失值、1.3节中所述的异常范围以及类型值是噪声的范畴

离群点是指与数据整体的特征有很大的不同。 离群点是否为噪声需要通过实际应用场景来判断。 例如,在制作系统整体的模型的情况下,偏离点可以视为噪声。 那无益于模型的建立,也影响模型的正确性。 在一些图案识别领域,需要考虑离群点是噪声还是有助于图案创建的点。 因为模式总是以少量的样品为对象。

在上面关于离群点的说明中,我认为应该有“离群点的数据量”的问题。 可以将与数据整体特征差别较大的点称为离群点,但如果与数据整体特征差别较大,此时必须考虑能否将这些点称为离群点。

识别离群点是比处理离群点更重要的问题。 基于统计学的方法、基于距离的检测、基于密度的监测,如DBSCAN聚类法等识别离群点的方法有很多,本文不涉及这方面的内容,不再赘述。

噪声的处理可以根据情况来进行,在消隐点处理之前确定该点是否有用,如果不需要则作为噪声来处理,如果有用则留下。

1.3 异常范围及类型值处理

异常范围类型,是指记录数据超过了当前场景下属性可取的值的范围,例如,记录一个人的身高为300cm或是月收入为负的也是明显不合理的。 类型值意味着属性的值类型是错误的。 例如,记录一个人的身高“超过”。

对于这两种情况,在数据记录的异常是规则的情况下,例如身高记录的数据是“312、365、373 .”的顺序的话,原记录有可能为“112、165、173 .”。 在异常值随机的情况下,可以将这些异常值作为缺失值处理。

2 .数据集成数据集主要增加样本数据量。

2.1 数据拼接

数据拼接在数据库操作中很常见,将多个数据组合成一个数据集。 缝合数据取决于不同数据集之间具有相同的属性(或关键字或其他特性)。 根据数据库类型的不同,缝合原则可能会有所不同,例如关系数据库、半关系数据库或非关系数据库。

3 .数据转换数据转换包括许多方法,作用也不一样。 数据转换的目的可以简单概括为改变数据的特征,使计算和新信息的发现变得容易(。 请参阅。 典型的数据转换过程包括离散化、区间化、二元化、归一化(有时称为标准化)、特征转换和创建、函数转换等方法。

3.1 离散化

如果您不太关注值的小范围变化,或者希望将连续属性作为离散属性处理

时,可以使用离散化方法,这可以简化计算,提高模型准确率。       

        一般来说离散化是将排序数据划分为多个空间,例如将 [0,10] 离散为[0,2),[2,4),[4,6),[6,8),[8,10],这样可以将一个连续取值的属性转换为离散取值的属性来处理。

       我们还可以将一个取值比较“密”的离散属性进一步离散化,这是离散化中的另外一种情况,例如一个离散属性的取值集合为{0,1,2,3,4,5,6,7,8,9,10},那么此时可以将该取值集合进一步离散化为{0,1,2},{3,4,5},{6,7,8},{9,10}。

       在实际应用时,对于标量型取值,可以将每个离散区间用一个新的值表示,不管是采用取中位值还是求平均等方法;而对于标称型取值,可以重新定义一组标称取值表示,例如 {极差,差,较差},{一般},{较好,好,极好},可以重新定义成{下},{中},{下},也可以选取其中一个值来代替整体,如 {差},{一般},{好}

       离散化过程需要考虑两点:(1)如何确定离散区间(集合)的个数 (2)如何将取值映射到离散化后的区间(集合)中。为了方便以下不再单独强调集合,统一称为区间。

       针对第一个问题,可以采用非监督和监督的离散化方法来确定离散区间的个数,一旦离散集合划分完毕,那么对于第二个问题,直接将数据映射到其分类值上即可。监督和非监督的区别在于区间划分过程是否利用样本类别信息,一般来说利用类别信息能达到更好的区间划分结果,但计算量也会大一些。

       非监督的离散方法主要包括等宽离散化、等频率离散化、聚类离散化等,离散过程不利用样本的分类信息。

等宽离散化。使每个离散区间据有相同的宽度。类似于将 [0,10] 离散为[0,2),[2,4),[4,6),[6,8),[8,10]的过程等频离散化。等频离散化过程确保每个区间内包含相同的样本数。聚类离散化。利用算法自身优化目标进行,聚类完成后每个簇就对应着一个区间,常用的如K均值聚类。

       监督的离散化方法主要包括,基于熵(或信息增益)的区间离散化、卡方分裂算法离散化等。这里只介绍基于一种简单的基于熵的离散过程。

基于熵的离散化。设是样本集中包含的样本个数,是样本集中类别的总数,是划分的第个区间中的样本个数,是第个区间中属于类别的个数,则第个区间的熵可以定义为:

                                                                                     

       其中,是第个区间中类别所占样本的比例。区间划分完成后,总的熵是各个区间熵的加权平均,即

                                                                                    

       其中,是各个区间中样本的占比,n为划分的区间个数。依据以上的定义,一种连续属性区间离散化过程为:

(1) 把区间上每个值看做分割点,将样本集划分为两部分,寻找使得总体熵最小的一种划分方式。

(2) 选择已划分的两个区间中熵最大的一个,继续步骤(1)

(3)当划分区间达到指定数目,或者满足指定终止条件(如区间划分后总体的熵变化小于指定阈值)时停止区间划分

        对于多维属性,可以将其每一维上的值进行离散化,然后组合起来得到离散的多维空间。实际上离散化方法分类远不止监督和非监督这两种,感兴趣的同学可以参考这篇文章(https://blog.csdn.net/CalCuLuSearch/article/details/52751218)进行更详细的了解,后面如果有需要的话再单独写文章介绍离散化过程。

3.2 二元化

      有一些算法中要求属性为二元属性(例如关联模式算法),即属性的取值只能为0或1(当然其它二元取值形式都可以,如Yes和No,只是都可以转化为0和1表示),此时就要用到属性二元化的过程。  

      二元化的过程是用多个二元属性来表示一个多元属性。假设属性取值有个,则将整数区间 中的每个值唯一的赋予该属性的每个取值,如果该属性的取值是有序的,则赋值的过程也必须按顺序赋值,然后将这个值用二进制表示,共需要 (结果向上取整)个二进制位。例如一个具有5个取值的属性{awful,poor,ok,good,great}可以用3个二元属性、、表示

                                                             

        以上的二元化过程可能会导致属性间关系复杂化,例如上表中属性和是相关的,因为“good”值需要这两个属性来表示。这种情况下可以为每一个取值引入一个二元属性,比如下表中的方式

                                           

       当一个属性取值数量较多时,这种做法会引入过多的属性值,此时可以在二元化之前先进行离散化,减少属性取值。

3.3 规范化

      数据规范化是调整属性取值的一些特征,比如取值范围、均值或方差统计量等,这在一些算法中很重要。常见的规范化方位有:最小-最大规范化、z-score规范化、小数定标规范化。

最小-最大规范化

      该方法是对原始数据的线性变换,将数值映射到[0,1]上,如身高(cm)和体重(kg)的取值范围相差较大,在邻近度分析中就需要进行最小-最大规范化,消除量纲(单位)的影响。该过程为

                                                                                  

      其中、分别为属性取值的最小值和最大值

z-score规范化

     该方法也成为标准差规范化,处理后属性取值的均值为0,方差为1。该过程为

                                                                                       

     其中、分别为属性的均值和标准差。当数据中存在一些离群点时,上述的规范化方式受离群点影响较大,此时可以用中位数代替均值,用绝对偏差代替标准差,弱化离群点的影响。绝对偏差的定义为

                                                                                  

小数定标规范化

     该方法通过移动小数点的位置,将数值映射到[-1,1]上。该过程为

                                                                                    

     其中表示小数点移动的位数,它取决于属性取值绝对值中的最大值。如属性取值的最大、最小值分别为-987、678,则应该为3。

3.4 特征转换与创建

      对有一些时间序列,可以通过傅里叶变换、小波变换、EMD分解等方法得到数据的频域或其它类型特征,这能帮助我们从另一个角度分析问题,例如EMD分解在经济学上就有较多的应用。采用这一类方法时,一个比较重要的问题是如何解释在频域或时域上得到的新特征。

      假如属性集中包含“质量”和"体积”这两种属性,那么可以利用“密度=质量/体积“的方法得到密度属性,这样就创建了一个新的属性。当然,需不需要这么做完全取决于目的。

3.5 函数变换

      函数变换是一个比较宽泛的说法,上面的规范化过程也是一种函数变换过程。我们可以依据需求,选择函数来处理数据,例如当属性取值比较大时,可以用log函数来处理数据。

4.数据规约

       数据规约的目的是减少数据量,降低数据的维度,删除冗余信息,提升分析准确性,减少计算量。数据规约包含的方法有:数据聚集、抽样、维规约。

4.1 数据聚集

       数据聚集是将多个数据对象合并成一个数据对象,目的是为了减少数据及计算量,同时也可以得到更加稳定的特征。聚集时需要考虑的问题是如何合并所有数据记录上每个属性上的值,可以采用对所有记录每个属性上的值求和、求平均(也可以加权重)的方式,也可以依据应用场景采用其它方式。比如一家全球零售商,如果统计一天之中全球范围内所有店的全部销售数据,那么数据量会比较大且不是很有必要,此时可以将一个店内一天的销售数据进行聚集,得到一条或有限条销售数据,然后再汇总。

       进行数据聚集时可能会丢失数据细节,也许这些细节正是你所关注的,这点尤为需要注意。

4.2 数据抽样

       在数据预处理中提抽样,实际上就是重抽样了,目的就是为了获取数据样本中的一部分用于计算,减少计算负担。重抽样的方式与一般抽样一致。

4.3 维规约

       维规约方法是为了减少属性的个数,上面提到的由质量和体积得到密度是一种维规约方式。当属性为标称类型时,没有“密度、质量、体积”这种数值上的联系,但是也可能存在其它的联系来进行维规约,例如将“机械学科、自动化学科、材料学科”同一归为“工程学”。

       更一般的,是采用一些数据降维的方法。数据降维的方法有很多,本文不打算在此处详细说明降维的方法,后面会单独写一篇文章来说明数据降维的方法。有兴趣的同学可以先看看这篇文章https://www.cnblogs.com/guoyaohua/p/8855636.html

小结   

   数据预处理是为了得到 tidy data ,但预处理过程绝不仅仅只是以上的内容,很多处理过程与数据分析目的紧密结合的,本文只是简要的介绍一些常见的数据预处理过程。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。