三、数据集成和转换
1.数据集成
数据集成是将不同来源的数据整合并一致地存储起来的过程。
不同来源的数据可能有不同的格式、不同的元信息和不同的表示方式等。
首先需要将它们变成一致的形式。
通常这个过程牵涉到数据架构的集成,处理属性值冲突,处理数据冗余性,对数据进行转化等的处理过程。
其中两个主要的问题:数据冗余和数据转换。
2.数据冗余性
原因:
数据冗余可能由许多技术和业务上的原因导致,
同一属性或对象在不同的数据库中的名称可能是不同的,
某些属性可能是由其他属性导出的。
2.1 皮尔森相关系数
皮尔森相关系数是计算两个数数值向量之间的相关性
此图,纯手工技艺。
当相关系数大于0时,称两个向量正相关;
当相关系数小于0时,称两个向量负相关;
当相关系数等于0时,称两个向量不相关。
容易得出,相关系数的取值范围是[-1,1]。
热力图展示环节 (matplotlib库的问题,导致热力图显示不全,建议升版本或降低版本)
python使用corr()函数计算数据中两两元素的皮尔系数
2.2卡方检验
对于非数值型的变量,计算其相关性可以使用卡方检验方法进行,卡方检验的计算方式为:
求和是对每一种不同的变量取值情形进行的,Oi是实际观测到的概率,而Ei是在变量彼此独立的假设下该情况发生概率的估计。
3.数据转换
数据在集成过程中很多情况下需要进行转换,数据转换包括平滑、聚合、泛化、规范化、属性和特征的重构等操作。
(1)数据平滑。数据平滑是将噪声从数据中移除的过程。数据平滑通常是对数据本身进行的,如在连续性的假设下,对时间序列进行平滑,以降低异常点的影响;数据平滑有时也指对概率的平滑。
(2)数据聚合。数据聚合是将数据进行总结描述的过程。数据聚合的目的一般是为了对数据进行统计分析,数据立方体和在线分析处理(OLAP)都是数据聚合的形式。
(3)数据泛化。数据泛化是将数据在概念层次上转化为较高层次的概念的过程。
(4)数据规范化。数据规范化是将数据的范围变换到一个比较小的、确定的范围的过程。数据规范化在一些机器学习方法的预处理中比较常用,可以改善分类效果和抑制过学习。常用的数据规范化方法有最小最大规范化、2-score规范化和十进制比例规范化等。
如下的公式是最小最大规范化的例子,它将数据映射到[0,1] 区间。
z-score规范化使用数据的均值μ和标准差σ来将数据转化到某个区间,如下的公式为z-score标准化的例子,规范化后的数据均值为0,标准差为1。
十进制比例规范化使用数据绝对值的极值进行规范化.对数据仅使用十进制放缩的方式进行规范化。如要将466,33,- 100,-10这几个数进行规范化,结果为:0.466,0.033,-0.1,0.01。
四、数据的规约和变换
1.数据归约
数据归约是用更简化的方式来表示数据集,使得简化后的表示可以用较少的数据量来产生与挖掘全体数据类似的效果。
数据归约可以从几个方面入手:
- 如果对数据的每个维度的物理意义很清楚,就可以舍弃某些无用的维度,并使用平均值、汇总和计数等方式来进行聚合表示,这种方式称为数据立方体聚合
- 如果数据只有有些维度对数据挖掘有益,就可以去除不重要的维度,保留对挖掘有帮助的维度,这种方式称为维度归约;
- 如果数据具有潜在的相关性,那么数据实际的维度可能并不高,可以用变换的方式,用低维的数据对高维数据进行近似的表示,这种方式称为数据压缩;
- 另外一种处理数据相关性的方式是将数据表示为不同的形式来减小数据量,如聚类、回归等,这种方式称为数据块消减。
2数据离散化
为什么要数据离散化?
- 计算机存储器无法存储无限精度的值,计算机处理器也不能对无限精度的数进行处理。
- 某些数据挖掘方法需要离散值的属性,这也催生了对数据进行离散化的需要。
数据离散化是对数据的属性值进行的预处理,它是将属性值划分为有限个部分,之后使用这个部分的标签来代替原来的属性值。
数据离散化的方法主要有分箱、聚类、自顶向下拆分、自底向上合并等。
使用分箱的数据离散化方法是通过先将属性值分箱,再将属性值替换为箱标签的离散化方法;使用聚类的数据离散化方法是通过先将属性值聚类,再使用类标签作为新的属性值的离散化方法。
通过拆分和合并来进行数据离散化的方法:基于信息增益的离散化、基于卡方检验的离散化和基于自然分区的离散化。
版权归原作者 码银 所有, 如有侵权,请联系我们删除。