本文目录导读:
图片来源于网络,如有侵权联系删除
《数据挖掘概念与技术(第三版)第三章课后答案解析》
数据预处理的基本概念与重要性
在数据挖掘中,数据预处理是至关重要的一步,第三章重点阐述了这一概念,数据预处理主要是对原始数据进行采集、集成、清理、转换和归约等操作。
原始数据往往存在各种各样的问题,数据可能来自多个不同的数据源,这些数据源的数据格式、数据语义等可能存在差异,就像在一个企业中,销售数据可能存储在一个数据库中,客户信息可能在另一个系统中,这就需要进行数据集成操作,将这些分散的数据整合到一起。
数据的不完整性也是常见的问题,有些数据可能存在缺失值,这可能是由于数据采集过程中的失误或者某些属性本身难以获取,如果不进行处理,这些缺失值可能会影响到后续数据挖掘算法的准确性和有效性。
数据中还可能存在噪声数据,即错误或异常的数据点,这些噪声可能是由于设备故障、人为错误录入等原因造成的,数据预处理中的数据清理步骤就是要识别和处理这些缺失值和噪声数据。
数据转换也是不可或缺的环节,不同的算法对数据的要求不同,例如某些算法要求数据是正态分布的,而原始数据可能不满足这一要求,通过数据转换,如标准化、归一化等操作,可以将数据转换为适合算法处理的形式。
数据归约则有助于在尽可能保持数据完整性的前提下,减少数据量,提高数据挖掘算法的效率,尤其是在处理大规模数据集时,数据归约可以显著降低计算成本和存储需求。
数据清理的具体方法
1、缺失值处理
忽略元组:当数据集中缺失值的元组占比较小,并且这些元组的缺失对整体分析影响不大时,可以选择忽略这些元组,这种方法可能会导致信息丢失,尤其是当缺失值并非随机分布时。
人工填写缺失值:对于一些关键属性且缺失值较少的情况,可以通过人工查询相关资料或者凭借经验来填写缺失值,但这种方法在大规模数据集中显然效率低下。
使用全局常量填充:例如用一个特定的数值(如0或者“未知”)来填充所有的缺失值,这种方法简单,但可能会引入偏差,尤其是当该常量与实际数据分布差异较大时。
使用属性的中心度量填充:最常见的是使用均值、中位数或者众数来填充缺失值,对于数值型属性,均值或中位数是比较合适的选择;对于分类型属性,众数则更为适用,这种方法相对简单且能在一定程度上保持数据的统计特征。
使用基于模型的方法填充:例如利用回归模型、决策树等模型来预测缺失值,这种方法的准确性相对较高,但计算成本也较高,需要构建和训练模型。
图片来源于网络,如有侵权联系删除
2、噪声数据处理
分箱:分箱方法是将数据按照一定的规则划分到不同的箱子中,然后对每个箱子中的数据进行平滑处理,等频分箱就是将数据按照频率等分为若干个箱子,然后可以用箱子的均值、中位数或者边界值来替换箱子中的数据,从而减少噪声的影响。
回归:通过建立回归模型,利用数据中的其他属性来预测目标属性的值,从而平滑噪声数据,在预测房价时,如果存在一些噪声数据影响房价的准确性,可以建立一个以房屋面积、房龄等为自变量的回归模型来预测房价,从而修正噪声数据对房价的影响。
聚类:将数据聚类成不同的簇,然后用簇的中心值或者簇内的典型值来替换噪声数据,在客户聚类分析中,如果某个客户的数据点看起来像是噪声点,可以将其归类到某个簇中,然后用该簇的中心客户数据来替换这个噪声数据点。
数据集成中的关键问题与解决方法
1、模式集成
- 在数据集成时,不同数据源的模式(如数据库的表结构、数据类型等)可能不同,一个数据源中的日期格式可能是“年 - 月 - 日”,而另一个数据源中的日期格式可能是“日/月/年”,解决这个问题需要进行模式匹配和转换,可以建立一个元数据仓库,其中包含各个数据源的模式信息,通过编写转换规则来统一不同数据源的模式。
2、实体识别
- 当从多个数据源集成数据时,需要确定不同数据源中的实体是否表示相同的对象,在两个不同的销售系统中,可能有不同的客户编码,但实际上可能是同一个客户,解决实体识别问题可以通过使用唯一标识符(如身份证号、企业注册号等),如果没有唯一标识符,可以通过比较多个属性(如姓名、地址、电话号码等)来判断实体是否相同,可以使用相似度计算方法,如编辑距离、余弦相似度等,来衡量两个实体的相似程度,当相似度超过一定阈值时,就认为是同一个实体。
3、数据值冲突
- 即使是表示同一个实体的属性,在不同数据源中的值也可能不同,一个数据源中的客户年龄是30岁,而另一个数据源中的同一个客户年龄是31岁,这种数据值冲突可能是由于数据更新时间不同、数据采集错误等原因造成的,解决数据值冲突可以采用一些策略,如选择最新的值、选择最可靠数据源的值或者通过数据融合技术(如加权平均等)来综合不同数据源的值。
数据转换的类型与应用场景
1、标准化
- 标准化是将数据转换为均值为0,标准差为1的正态分布形式,对于许多基于距离计算的算法,如K - 邻域算法、支持向量机等,标准化是非常重要的,在一个包含多个特征的数据集里,如果某个特征的数值范围非常大(如收入从1000元到100000元),而另一个特征的数值范围很小(如年龄从18岁到80岁),如果不进行标准化,那么在计算距离时,收入这个特征就会对结果产生过大的影响,从而导致算法偏向于收入这个特征,而忽略了年龄等其他特征的影响,标准化的公式为\(x'=\frac{x - \mu}{\sigma}\),(x'\)是转换后的值,\(x\)是原始值,\(\mu\)是均值,\(\sigma\)是标准差。
2、归一化
图片来源于网络,如有侵权联系删除
- 归一化是将数据转换到一个特定的区间,如[0, 1]区间,归一化在一些需要将数据映射到固定区间的场景中非常有用,在图像识别中,像素值通常需要归一化到[0, 1]区间,以便于神经网络等算法的处理,归一化的公式有多种,一种常见的公式是\(x'=\frac{x - min(x)}{max(x)-min(x)}\),(x'\)是转换后的值,\(x\)是原始值,\(min(x)\)和\(max(x)\)分别是数据集中该属性的最小值和最大值。
3、离散化
- 离散化是将连续的数值属性转换为离散的属性,将年龄这个连续属性离散化为“青年”“中年”“老年”等类别,离散化的好处是可以简化数据,减少数据的复杂性,并且在一些基于规则的挖掘算法(如决策树算法)中,离散化的数据更易于处理,离散化可以采用等宽离散化、等频离散化等方法,等宽离散化是将数据的取值范围等分为若干个区间,每个区间作为一个离散值;等频离散化则是根据数据的频率将数据划分为若干个区间,使得每个区间内的数据点数量大致相同。
数据归约的策略与算法
1、数据立方体聚集
- 数据立方体是一种多维数据结构,通过对数据立方体进行聚集操作,可以实现数据归约,在一个销售数据立方体中,有时间、地区、产品等维度,如果我们将时间维度从日级别聚集到月级别,将地区维度从区聚集到市级别,就可以大大减少数据量,这种聚集操作可以通过对原始数据进行汇总统计(如求和、求平均等)来实现。
2、属性子集选择
- 从原始数据集中选择一个子集,只保留那些对数据挖掘任务最有用的属性,这可以通过多种方法实现,如逐步向前选择、逐步向后选择和混合选择等,逐步向前选择是从一个空的属性子集开始,每次选择一个对目标函数贡献最大的属性加入子集;逐步向后选择则是从所有属性开始,每次删除一个对目标函数影响最小的属性;混合选择则是结合了向前和向后选择的方法,在预测客户购买行为时,可能有几十个属性,如年龄、性别、收入、购买历史等,但经过属性子集选择后,可能只保留年龄、收入和购买历史这几个最相关的属性,这样可以减少数据的维度,提高挖掘算法的效率。
3、抽样
- 抽样是从原始数据集中选择一部分数据作为代表来进行分析,常见的抽样方法有简单随机抽样、分层抽样和聚类抽样等,简单随机抽样是从数据集中随机选择一定数量的样本;分层抽样是将数据集按照某个属性(如性别、年龄组等)分成不同的层,然后从每个层中分别进行抽样;聚类抽样则是先将数据集聚类成不同的簇,然后从每个簇中选择一定数量的样本,抽样可以在保证一定数据代表性的前提下,大大减少数据量,在一个非常大的客户满意度调查数据集中,如果直接对所有数据进行分析可能非常耗时,通过分层抽样,按照客户的地区、年龄等分层后进行抽样,就可以用较少的样本得到近似的分析结果。
4、基于概念分层的数据归约
- 概念分层是一种将数据按照不同的抽象层次进行组织的方法,在产品分类中,可以有一个概念分层,最底层是具体的产品型号,往上一层是产品系列,再往上是产品类别等,通过将数据按照概念分层进行汇总,可以实现数据归约,在销售数据分析中,可以将具体的产品型号数据按照产品系列进行汇总,从而减少数据量,同时仍然能够保留一定的分析价值。
数据挖掘中的数据预处理是一个复杂但不可或缺的过程,通过对数据进行清理、集成、转换和归约等操作,可以提高数据的质量,使数据更适合后续的数据挖掘算法,从而提高数据挖掘的准确性和效率。
评论列表