数据挖掘概念与技术 - chapter 3 - 数据预处理
数据集成 将数据由多个数据源合并成一个一致的数据存储
数据规约可以通过将聚集删除荣誉特征或者聚类来降低数据大规模。
数据质量:数据的准确性、完整性、一致性、时效性、可信性、可解释性
不完整的:缺少属性值或者某些感兴趣的属性、包含聚集数据
不正确的或者含噪声的:包含错误的或者存在偏离期望的值
不一致的:用于分类的编码存在差异
数据质量三要素:准确性、完整性、一致性
时效性:需要及时更新数
可信性:反应有多少用户信赖的数据
可解释性:用于反应数据是否容易理解
数据清理:填写缺失值、光滑噪声数据、识别或者删除离群点
数据集成:分析里使用多个数据源的数据 在使用时需要采取措施避免数据冗余 可以将数据集成作为预处理步骤进行
数据规约:数据集的简化表示
原始数据简化表示
数值规约:使用参数模型或者非参数模型用比较小的值表示取代数据,如果属性未规范化,距离度量在数值较大的特征上权重可能会大于数值较小的权重。离散化与概念分层产生也是有用的,那里的属性被区间比较高层的概念所替代。如:年龄原始值可以使用青年、中年、老年取代。
数据清理
试图填充缺失值、光滑噪声、识别离群点,纠正数据的不一致。
缺失值
1、忽略元组:直接整个不用。
2、人工填写缺失值:费时 缺失很多值的时候可能不好使。
3、使用一个全局常量填充:简单 但并非十分可靠。
4、使用属性的中心度量(均值或者中位数)填充缺失值:对于中心非对称的数据,可以使用中位数进行填充。
5、使用与给定元组同一类的所有样本的属性均值或者中位数:如 同一类的使用同一数据收入进行替换。
6、使用最可能的值填充缺失值:可以使用回归、贝叶斯方法基于推理工具或者决策树归纳决定。通过使用数据集中其他顾客的属性,可以构造一颗决策树,来预测income的缺失值。
有缺失值不一定代表有错误,在申请是可能存在留白的情况。
噪声数据
噪声:被测量的变量的随机误差或者方差
识别:可以通过盒图或者散点图
对于一个数值属性,通过对数据光滑技术:
分箱:通过考察数据近邻来光滑有序的数据值。这些数据值被分布到一些桶或者箱中,因为考察近邻值,因此“局部光滑”。
可以使用箱均值、箱边界、箱中位数光滑。
回归:使用一个函数拟合数据来光滑数据,通过回归找到拟合两个属性的最佳直线,使得一个属性可以用于预测另一个。
离群点分析:通过聚类来检测离群点。对于基于逻辑的数据挖掘方法,在反复排序后的数据进行比较,充当了一种形式的数据规约。
数据清理
1、偏差检测→数据变换
2、编码数据表示不一致
3、唯一性规则:给定属性每个值都必须不同于该属性的其他值
4、连续性规则:属性的最低值、最高值之间没有缺失值
5、空值规则:空白、问号、特殊符号的空值条件其他串的使用,以及如何处理这样的值。
数据清洗工具:拼写检查、模糊匹配技术
数据审计工具:通过分析数据发现规则与联系 并检测违反调节的数据发现偏差
数据迁移工具 :允许简单的变换 如ETL:提取、变换、装入
数据集成多个数据存储的数据
实体识别:现实世界的实体与信息源的数据匹配
冗余:如果一个特征可以由一个或者另一个导出,这个属性可能是冗余的。可以通过相关分析检测,根据可用数据度量一个属性可以在多大程度上蕴含另一个。
对于标称数据,可以使用卡方检测;对于数值属性,可以使用相关系数(correlation coefficient)与协方差(covariance)
卡方检验
是一种统计方法,用于确定两个分类变量之间是否存在关联或差异。
它基于观察到的频数与期望频数之间的差异来进行判断。卡方检验可以用于不同的目的,包括配对四格表的相关分析和四格表的差异检验。
在配对四格表的相关分析中,卡方值的计算公式为:卡方值 = (ad-bc)²n / (a+b)(c+d)(a+c)(b+d)。这种方法用于比较两种检验方法的结果是否有关系。
在四格表的差异检验中,卡方值的计算公式为:卡方值 = (|b-c|-1)² / (b+c)。这种方法用于比较两种检验方法的检出率是否有差别。
总之,卡方检验可以帮助我们确定两个分类变量之间的关联性或差异性,从而进行统计分析。
卡方统计假设:a与b是独立的,检验基于显著水平,具有自由度(r-1)×(c-1)
常用于使用卡方标称属性的相关性分析。
对于2乘以2的表,自由度为(2-1)*(2-1)=1.对于自由度1,在0.001的置信水平下的值是10.828 当计算的值大于该值的时候 可以拒绝独立的假设;断言给定的人群,这两个属性是强相关的。
数值数据的相关系数:通过计算A与B的相关系数(皮尔逊积矩系数)
该值越大,另一个结果的值越大 (强相关的表现) 说明可能是冗余的
相关性不蕴含因果关系
数值数据的协方差:cov(A,B) 等于零时说明是独立的
Q1:协方差与相关系数在应用于不同数值属性相关性判断的场景下有什么区别和应用关注点差异吗?
协方差和相关系数都是用来衡量两个数值属性之间相关性的指标,但在应用场景和关注点上有一些区别。
协方差衡量的是两个变量的总体变化趋势是否一致,它的数值大小表示两个变量的变化方向和程度。协方差的取值范围是负无穷到正无穷,当协方差为正时,表示两个变量正相关;当协方差为负时,表示两个变量负相关;当协方差接近于0时,表示两个变量无相关性。
相关系数是协方差的标准化形式,它除以了两个变量的标准差,使得相关系数的取值范围在-1到1之间。相关系数的绝对值越接近于1,表示两个变量之间的线性关系越强;相关系数接近于0,表示两个变量之间没有线性关系。
在应用场景上,协方差主要用于衡量两个变量的总体变化趋势,可以用来判断两个变量是否具有线性关系。而相关系数更加常用,它不仅可以判断线性关系,还可以判断非线性关系。相关系数还可以用来比较不同变量之间的相关性强弱,因为相关系数的取值范围是固定的。
在关注点上,协方差更多关注两个变量的变化趋势和程度,可以用来分析两个变量之间的关系。而相关系数更多关注两个变量之间的线性关系强弱,可以用来衡量两个变量之间的相关性。
总结一下,协方差和相关系数都是用来衡量两个数值属性之间相关性的指标,但在应用场景和关注点上有一些区别。协方差主要用于衡量两个变量的总体变化趋势,相关系数更加常用,可以判断线性和非线性关系,并比较不同变量之间的相关性强弱。
元组重复
除了检测属性间冗余,应当在元组级间检测重复。
去规范化表 不一致性 数据点不正确输入
数据值重读的检测与处理
来自不同数据源 对于同一实体可能有不一样的值
数据规约
得到数据集的规约表示,比原始数据小多了,但是接近保持原始数据的完整性,在规约后的数据集挖掘会更加有效,仍然产生相同 或者近似相同的分析结果。
常用策略
堆规约:小波变换 主成分分析
数量规约:使用替代的、较小的数据表示形式进行元数据替换 可以是参数或者非参数
数据压缩:通过变换得到元数据的规约或者压缩 如果不损失信息 可以称为无损的,如果是近似重构 则称为有损的
小波变换:一种线性信号处理技术
对于向量X,变换成不同数值小波系数向量X‘ 两个向量具有相同长度
仅仅存放最强的小波系数,保留近似的压缩数据。如其他所有小于某个阈值的小波系数,其他系数设置为0 结果数据表示很系数,并且可以利用数据稀疏特点操作计算非常快,该技术常常用于消除噪声,不会用于光滑数据的主要特征
主成分分析:比较常用
一种维归约方法
PCA(principal components analysis):原理 通过搜索k个最能代表数据的n维正交向量,k<=n,原始数投影到一个小得多的空间上,导致维归约。与属性子集选择,通过保留原属性集的一个子集来减少属性集的大小不同,PCA通过创建一个替换的,比较小的变量集来组合属性的基本要素。
PCA常常能揭示先前未察觉的联系,允许揭示不寻常的结果。
PCA过程
(1)对输入数据规范化,每一个数据都落入相同的区间。该步骤有助于确保具有较大定义域的属性不会支配具有较小定义域的属性。
(2)PCA计算k个标准正交向量,作为规范化输入数据的基。这些是单位向量,每一个都垂直于其它向量。这些向量称为主成分,输入数据是主成分的线性组合。
(3)对于主成分按照重要性强度降序排列。本质上充当新数据的新坐标系,提供关于方差的重要信息,对坐标轴进行排序,使得第一个坐标轴显示数据的最大方差,第二个显示数据的第二大方差。该信息有助于识别数据中的组群或者模式。
(4)由于主成分分析是有顺序排列,可以去掉较弱的成分来规约数据。
可以用于有序或者无序的属性,并且可以处理系数与倾斜的数据。多于二维的多维数据可以通过将问题规约为二维问题来处理,也可以做多元回归和聚类分析的输入,相比于小波变换,能更好的处理稀疏数据。
Q2:小波变换与PCA的区别?
小波变换是一种时频分析方法,它将信号分解成不同尺度的小波基函数,并通过计算小波系数来描述信号在不同尺度上的频率特征。小波变换可以提供更详细的频率信息,因为它能够捕捉到信号中的瞬时频率变化。小波变换在信号处理领域广泛应用于信号压缩、去噪、边缘检测等方面。
而PCA是一种统计学方法,它通过线性变换将原始数据转换为一组新的变量,这些新变量称为主成分。主成分是原始数据中方差最大的方向,它们能够保留原始数据中的大部分信息。PCA主要用于降维和特征提取,可以帮助我们理解数据中的主要变化模式,并找到最能代表数据的特征。
总结一下,小波变换和PCA的区别如下:
-
小波变换是一种时频分析方法,而PCA是一种统计学方法。
-
小波变换能够提供更详细的频率信息,而PCA主要用于降维和特征提取。
-
小波变换可以捕捉信号中的瞬时频率变化,而PCA主要关注数据中的方差最大的方向。
Q3:PCA在现实的数据挖掘应用当中主要有哪些应用场景与应用的限制条件?如何对比使用PCA是否有效助于提升建模效率?
PCA(Principal Component Analysis,主成分分析)在现实的数据挖掘应用中有以下几个主要应用场景和应用的限制条件:
-
数据降维:PCA可以通过将高维数据映射到低维空间来降低数据的维度,从而减少数据的复杂性和计算成本。这在处理大规模数据集时非常有用。
-
特征提取:PCA可以通过提取数据中的主要特征来帮助识别和理解数据中的模式和结构。它可以帮助我们找到最能代表数据的特征,从而简化数据分析和建模过程。
-
噪声过滤:PCA可以通过去除数据中的噪声成分来提高数据的质量和准确性。它可以帮助我们过滤掉对数据分析和建模没有帮助的噪声,从而提高模型的性能和可靠性。
PCA也有一些应用的限制条件:
-
线性关系假设:PCA假设数据是线性相关的,因此对于非线性数据,PCA可能无法提供有效的降维和特征提取。
-
数据缺失:PCA对于存在大量缺失值的数据可能不适用,因为它需要完整的数据集来计算协方差矩阵。
-
数据量和计算复杂度:PCA在处理大规模数据集时可能会面临计算复杂度的挑战,因为它需要计算协方差矩阵和特征值分解。
对比使用PCA是否有效助于提升建模效率,可以考虑考虑以下几个方面:
-
数据维度:如果数据维度非常高,使用PCA可以将数据降维到较低的维度,从而减少建模的计算复杂度和存储需求。
-
特征相关性:如果数据中存在高度相关的特征,使用PCA可以帮助去除冗余信息,提取主要特征,从而提高建模效率和准确性。
-
数据噪声:如果数据中存在噪声或异常值,使用PCA可以帮助过滤掉这些噪声成分,提高建模的稳定性和可靠性。
-
模型性能:使用PCA前后,可以比较建模的性能指标,如模型的准确率、AUC等,来评估PCA是否有效助于提升建模效率。
属性子集的选择
通过删除不相关或者冗余的属性减少数据量
对于属性子集选择,通常使用压缩搜索空间的启发式算法,通常这些算法是典型的贪心算法。(实践中,贪心是有效的,逼近局部最优解)
逐步向前选择:由空属性集合作为规约集合开始,确定原始属性集合中最好的属性,并将其添加到规约集合当中。
逐步向后删除:该过程由整个属性集合开始,在每一步中删除尚在属性集中最差的属性。
逐步向前与逐步向后删除的组合:可以结合使用,每一步选择一个最好的,并且在剩余的属性中删除一个最差的属性。
决策树归纳:最初用于分类(如ID3、C4.5、CART)算法,构造一个类似于流程图的结构,每一个内部节点表示一个属性上的测试,每一个分支对应于测试的一个结果,每一个外部树叶节点表示一个类的预测,每一次算法选择最好的属性,将数据划分成类。
决策树归纳用于属性子集选择的时候,由给定的数据构造决策树,不出现在树种的所有属性假定是不相关的。在树中属性形成规约后的属性子集。
属性构造有助于提高准确性与对高维数据结构的理解。
线性回归
y=wx+b
假定y的方差是常量。
在数据挖掘中,x与y是数值数据库的属性,系数w与b分别为直线的斜率与y轴截距。系数可以使用最小二乘法求解,最小化分离数据的实际直线与该直线的估计之间的误差。多元回归是线性回归的扩展,允许用两个或者多个自变量的线性函数对因变量y进行建模。
Q4:什么是最小二乘法?现实的数据挖掘建模场景中什么地方会用到?
最小二乘法是一种常用的线性回归方法,用于拟合数据点与线性函数之间的关系。它的目标是通过最小化数据点到拟合线的垂直距离的平方和,来找到最佳的拟合线
在现实的数据挖掘建模场景中,最小二乘法可以用于以下情况:
-
预测:当有一些已知的自变量和因变量的数据点时,可以使用最小二乘法来建立一个线性模型,从而预测未知的因变量值。
-
分析关系:最小二乘法可以帮助我们分析自变量和因变量之间的关系,例如确定两个变量之间的正向或负向关系,以及关系的强度。
-
去除噪声:在数据挖掘中,数据往往会受到噪声的干扰。最小二乘法可以通过拟合数据点来减少噪声的影响,从而提取出真实的关系模式。
-
参数估计:最小二乘法可以用于估计线性模型中的参数,例如斜率和截距。这些参数可以提供有关数据集的重要信息,例如趋势和变化率。
对数线性模型:(log-linear model)近似离散的多维概率分布。对于n维元组的集合,可以把每一个元组看做n维空间的点,对于离散属性集合,可以使用对数线性模型,基于维组合一个较小的子集,估计多维空间中每一个点的概率,这使得高维度数据空间可以由较低的维度空间进行构造。
直方图
用分箱来近似数据的分布,是一种流行的数据规约形式。划分规则:等宽 等频
对于近似稀疏与稠密数据、高倾斜、均匀数据,直方图都是有效的。
聚类
把数据元组看为对象,将对象划分为群或者簇,使得在一个簇中的对象相互相似,簇中对象相异。
相似性:基于距离函数
簇的质量:直径
抽样
允许使用数据小得多的随机样本表示大型的数据集。
抽样方法:
无放回简单随机抽样
有放回简单随机抽样
簇抽样:它将总体分为多个不相交的簇,然后从这些簇中抽取一个或多个作为样本。例如,将某中学二年级的学生按班级分为多个簇,每次抽取一个或多个班级作为样本。簇抽样的目的是使得样本具有代表性,即簇内的差异较大,而簇之间的差异较小。这样可以更好地反映总体的特征。
簇抽样的优点是可以减少样本的数量,同时保持样本的代表性。它适用于总体分布不均匀的情况,可以更好地捕捉到总体的变异性。然而,簇抽样也有一些限制,例如需要事先将总体分为簇,并且要求簇内的差异较大,簇之间的差异较小。
总结起来,簇抽样是一种将总体分为多个不相交簇,并从中抽取样本的抽样方法,旨在保持样本的代表性和减少样本数量。
分层抽样:对于划分成不相交的部分,进行分层抽样。当数据倾斜的时候,可以帮助确保样本代表性。
抽样的复杂度可能亚线性于数据的大小
亚线性:亚线性是指时间复杂度或空间复杂度低于线性算法的一种算法。在亚线性算法中,随着输入规模的增大,算法的执行时间或所需的空间增长速度比线性算法更慢。亚线性算法可以更高效地解决某些问题,尤其是在处理大规模数据时。一个常见的例子是对数时间复杂度的算法,如二分查找算法。在二分查找算法中,每次迭代都将问题规模减半,因此它的时间复杂度为O(log n),其中n是输入规模。这比线性算法的时间复杂度O(n)更快。亚线性算法在计算机科学中具有重要的应用,可以提高算法的效率和性能。
数据立方体聚集
每个单元存放一个聚集的值对应多维空间的一个数据点
数据变换与数据离散化
数据变换策略概述
光滑:去掉数据中的噪声 包括分箱 回归与聚类
属性构造:可以由给定的属性构造新的属性并且添加到属性集中 帮助挖掘过程
聚类:对数据进行汇总与聚集,对多个抽象层的数据分析构造数据立方体
规范化:把属性进行按照比例缩放,使得其落入一个特定的小区间 (0~1,-1~1)
离散化:数值属性如(年龄)使用区间标签进行概念标签替换。这些标签可以递归地组织成更高层概念,导致数值属性的概念分层。
由标称数据产生概念分层:可以泛化到比较高的概念层,如city、country等
离散化技术:监督的离散化-离散过程使用类信息;否则是非监督
规范化变换数据:一般用较小的单位表示属性会导致属性有较大的值域,因此趋向于使得结果具有较大的影响或者较高的权重。为了帮助避免对度量单位选择与依赖性,数据应该规范化或者标准化,使得其落入小区间中。
规范化的数据试图赋予所有属性相等的权重,对于设计神经网络的分类算法或者基于距离度量的分类与聚类,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对训练元祖每一个属性的输入值规范有助于加快学习阶段的速度。
对于基于距离的方法,规范化可以帮助防止有较大的初始值域属性与具有较小初始值域的属性相比权重过大。在没有数据的先验知识时,规范化也是有用的。
最小最大规范化:将值映射到域区间,但如果未来存在落入域区间之外的点,该方法会面临越界的错误。
z分数规范化:属性a的值基于a的均值与标准差进行规范化。当属性的最大值、最小值未知时,该方法有用。
标准差是用来衡量数据集的离散程度的统计量。它表示各个数据与平均值之间的偏离程度的平均值。标准差越大,数据集的离散程度越大;标准差越小,数据集的离散程度越小。
标准差的计算步骤如下:
-
计算数据集的平均值。
-
计算每个数据与平均值的差值,并将差值平方。
-
计算平方差的平均值。
-
取平均值的平方根,即为标准差。
标准差的公式为: σ = √(Σ(xi-μ)² / N)
其中,σ表示标准差,Σ表示求和,xi表示每个数据,μ表示平均值,N表示数据集的大小。
标准差可以帮助我们了解数据集的分布情况,如果标准差较大,说明数据集的值相对较分散;如果标准差较小,说明数据集的值相对较集中。
分箱离散化
基于箱个数自顶向下分裂技术 讨论了数据光滑的分箱方法 这些方法可以用做数据规约与概念分层产生的离散化方法
使用等宽、等频分箱,使用箱均值或者中位数替换箱中的每个值,将数值离散化,使用箱值或者中位数比较光滑,这些技术可以递归作用域结果的划分,对用户指定的箱个数比较敏感,也容易受离群点影响。
通过直方图分析离散化:可以递归用于每个分区,自动地产生多级概念分层,直到达到一个预先设定的概念层数,过程终止,也可以对每一层使用最小区间的长度来控制及递归过程。
通过聚类 决策树 相关性分析 离散化
离散化的决策树:有监督 使用类标号
熵:确定划分点的度量
对于离散化属性,选择最小化的熵进行划分点 递归划分结果区间 最终得到分层离散化
决策树中的熵是用来衡量数据集的混乱程度或者不确定性的指标。熵的值越高,表示数据集的混乱程度越大,反之则越低。在决策树中,熵被用来选择最佳的特征来进行数据集的划分。当熵最大时,表示数据集中的样本类别分布非常均匀,没有明显的划分规律;而当熵最小时,表示数据集中的样本类别分布非常一致,可以完全划分为同一类别。
标称数据的概念分层
1、由用户或者专家在模式级显式地说明属性的部分序:人为地定义分层结构
2、由显式数据分组说明分层结构:人为对中间层的数据进行显式说明分组
3、说明属性集,但不说明偏序:用户可以说明一个属性形成概念分层,但是并不显式说明偏序,然后系统自动产生属性的序,构造有意义的概念分层。
根据每个属性不同值个数产生概念分层
4、只说明部分数据集
5、使用预先定义的语义关系产生概念分层
模式与属性值计数信息都可以用于产生标称数据的概念分层,使用概念分层变换可以使得数据较高层的知识模式可以被发现。
数据质量
准确性、完整性、一致性、时效性、可信性、可解释性定义
数据清理
填补空缺值、光滑噪声、识别离群点 纠正数据的不一致性
数据集成
来自多个数据源的数据整合成一致的数据存储,语义异种性的解决、元数据、相关性分析、元组重复检测、数据冲突检测 都有助于数据的顺利完成
数据规约
得到数据的规约表示,使得信息内容损失最小化。数据规约包括 维规约、数量规约、数据压缩。
维规约:减少所考虑的随机变量或者维的个数,常使用方法包括 小波变换、主成分分析、属性子集选择、属性创建
数量规约:使用参数或者非参数模型,得到原始数据较小的表示
数据压缩:使用变换,得到原数据的规约或者压缩表示。
数据变换
将数据变换成适于挖掘的形式,在规范化中,属性数据可以缩放,使得可以落在比较小的区间。其他例子包括数据离散化、概念分层产生
数据离散化
使用映射将区间概念标号替换为数值数据
离散化技术:分箱、直方图、聚类分析、决策树分析、相关分析
标称数据,概念分层可以基于模式定义以及每一个属性的不同值个数产生
概念分层:可以基于模式定义每一个属性的不同值个数产生
数据集成需要考虑以下几个问题:
-
数据源的多样性:数据集成涉及多个数据源的汇集,这些数据源可能来自不同的系统、数据库或文件格式。因此,需要考虑如何有效地获取和整合这些不同类型的数据。
-
数据质量:在数据集成过程中,可能会遇到数据冗余、数据值冲突、数据格式不一致等问题。因此,需要进行数据清洗和数据转换,以确保数据的准确性和一致性。
-
实体识别:在不同的数据源中,可能存在相同实体的不同表示方式。例如,一个人在不同的数据源中可能用不同的ID或名称表示。因此,需要进行实体识别,将相同实体进行关联。
-
数据安全性:在数据集成过程中,需要确保数据的安全性和隐私性。这包括对敏感数据的保护,如个人身份信息或商业机密信息。
-
数据一致性:在数据集成后,需要确保数据的一致性。这包括数据的命名一致性、数据格式一致性和数据语义一致性等方面。
-