数据挖掘中的常见数据预处理方法总结
一.基本概念
为什么需要数据预处理:
现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术
数据:数据对象及其属性的集合
属性值是分配给属性的数字或符号
属性和属性值的区别 – 相同的属性可以映射到不同的属性值
– 不同的属性可以映射到同一组值
属性值的类型:
属性的类型取决于它拥有以下哪些属性:独特性(可以判断等于和不等);顺序;加法;乘法
标称属性:独特性
序数属性:独特性和顺序
区间属性:独特性、顺序和加法(比如温度)
比率属性:所有 4 个属性(比如长度)
数据集的类型:
记录数据,图数据,顺序数据
顺序数据举例:
基因组序列数据;
时间-空间数据:
属性的模式(众数)是出现频率最高的属性值
百分位数:对于连续数据,百分位数的概念更有用,给定一个有序或连续的属性 x 和一个 0到100 之间的数字p,第p个百分位数是一个值 x 使得 p%的值小于 x 的观测值
第二个四分位数 = 第 50 个百分位数 = 中位数
第三个四分位数 = 第 75 个百分位数
五数总结法:最低 – 第 1 个四分位数 – 中位数 – 第三个四分位数 – 最大值,可用箱形图表示
散点图:属性值两两配对作图,可用于发现属性间的关系
矩阵的每个值是其行坐标与列坐标的相似性
平行坐标图:
每一条折线代表一个实例,横坐标是不同的属性
数据质量问题:
噪音:噪声是指对原始值的修改
异常值:异常值是具有与数据集中的大多数其他数据对象显着不同的特征的数据对象
缺失值
重复数据
数据质量的衡量标准:
● 准确性:正确或错误,准确与否
● 完整性:未记录、不可用、……
● 一致性:一些修改但一些没有,悬空,
● 及时性:及时更新?
● 可信度:数据正确的可信度如何?
● 可解释性:数据有多容易被理解?
数据预处理 |
|
二.常见数据降维方法
(1)主成分分析
PCA的本质:
一是,要考虑去除掉特征之间的相关性,想法是创造另一组新的特征来描述样本,并且新的特征必须彼此之间不相关。
二是,在新的彼此无关的特征集中,舍弃掉不重要的特征,保留较少的特征,实现数据的特征维度降维,保持尽量少的信息损失
一种PCA的方法:
第 1 步:将数据集围绕原点居中
第 2 步:计算 STS
第 3 步:找到 C 的特征值和特征向量
第 4 步:将数据集投影到新空间
然后可以把方差最小的那个维度去掉
该算法的解释:(不同特征值对应的特征向量线性无关,对于实对称阵是正交的)
SVD4PCA:
SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求要分解的矩阵为方阵。假设我们的矩阵A是一个m×n的矩阵,那么我们定义矩阵A的SVD为:
V(右奇异向量)的列是 ATA 的特征向量
U(左奇异向量)的列是 AAT的特征向量
Σ的对角线上的元素(奇异值)是 ATA(或 AAT(只是相差了几个0))的特征值的平方根
这里我们用一个简单的例子来说明矩阵是如何进行奇异值分解的。我们的矩阵A定义为:
首先求出
进而求出ATA的特征值和特征向量:
接着求出AAT的特征值和特征向量:
最终得到A的奇异值分解为:
对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。
也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。
如下图所示,现在我们的矩阵A只需要灰色的部分的三个小矩阵就可以近似描述了。
由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。
左奇异矩阵可以用于行数的压缩。(UΣ,即左边两个矩阵相乘)
右奇异矩阵可以用于列数即特征维度的压缩,也就是我们的PCA降维。(ΣVT,即右边两个矩阵相乘)
SVD作为一个很基本的算法,在很多机器学习算法中都有它的身影,特别是在现在的大数据时代,由于SVD可以实现并行化,因此更是大展身手,SVD的缺点是分解出的矩阵解释性往往不强,有点黑盒子的味道,不过这不影响它的使用。
(2)属性子集选择
属性消除:
冗余属性 – 例如,产品的购买价格和支付的销售税金额
不相关的属性 – 例如,学生的 ID 通常与预测学生 GPA 的任务无关
属性创建(特征生成):创建新的属性(特征),可以比原始属性更有效地捕获数据集中的重要信息
– 属性提取:在特定领域
– 将数据映射到新空间,例如,傅里叶变换、小波变换(未涵盖)
– 属性构建:组合特征(判别频繁模式),数据离散化
三.计算向量之间的相似性
(1)简单匹配法和jaccard(p和q在各个属性维度只能取0和1)
(2)余弦相似度
二元属性:取值为0或者1的属性,所以也成为布尔属性
对称二元属性:属性的两个状态的权重相同,例如:“性别”这一属性的取值“男性”,“女性”。
非对称二元属性:即状态的权重不相同,例如:“HIV”有“阴性”和“阳性”,阳性比较稀少,更重要。
有时属性有许多不同的类型,但需要整体相似性,使用以下方法:
可以理解为非对称属性上两个向量取相同值,在相似度上应该有更小的说服力
四.计算属性的相关性
相关不意味着因果(比如一个城市的医院数量和汽车盗窃数量是相关的,两者没有直接的因果,但两者都与第三个变量有因果关系:人口)
(1)Pearson 相关系数
衡量两个数值属性之间的相关性:
性质:
相关系数仅衡量线性相关性,它可能完全错过非线性关系
其中,相关性为1和-1时与其斜率无关
方差:
(2)卡方统计
不同于卡方检验,衡量两个标称属性之间的相关性:
Cij是属性x=xi且属性y=yj的对象数量,卡方越大相关性越强,自由度(m-1)(n-1)