在现实生活中,咱们会遇到各类各样的数据,并且其中绝大多数的数据是“有毛病”的,不利于后期进行分析,因此咱们在分析前须要进行数据的预处理。数据库
数据质量包括准确性
、完整性
、一致性
、时效性
、可信性
和可解释性
工具
数据清理
、数据集成
、数据归约
、数据变换
性能
数据归约获得数据集的简化表示,它小得多,但能产生一样的(或几乎一样的)分析结果。数据归约策略包括维归约
和数值归约
。编码
规范化
,数据离散化
和概念分层产生
。数据清理例程试图填充缺失的值、光滑噪声并识别离群点,纠正数据中的不一致。code
处理缺失值的方法:事件
注:某些状况下,缺失值并不表示错误,例如,一个没有驾驶证的人去办理信用卡,则驾驶证栏不会填ci
噪声是被测量的变量的随机偏差或方差。
数据光滑技术包括:it
分箱
:分箱方法经过考察数据的“近邻”(即周围的值),来光滑有序数据值。变量
回归
离群点分析
:可经过如聚类来检测离群点以上方法也可用于数据离散化和数据归约 重构
数据清理首先进行误差检测
,使用任何可能具备的关于数据性质的元数据
(关于数据的数据),还要防止字段过载
,还应当根据惟一性规则
、连续性规则
和空值规则
考察数据。
误差检测的商业工具:
数据迁移工具:
好的数据集成有助于提升其后挖掘过程的准确性和速度。
例如,计算机如何确信一个数据库中的customer_id与另外一个数据库中的cust_number指的是相同属性?每一个属性的元数据包括名字、含义、数据类型和取值范围,以及空值规则。这样的元数据能够用来避免模式集成的错误。
有些冗余能够被相关分析检测到。给定两个属性,这种分析能够根据可用的数据,度量一个属性能有多大程度蕴含另外一个。
对于标称数据,使用$\chi^{2}$(卡方
)检验,对于数值属性,使用
相关系数和
协方差`。
假设A有C个不一样值$a_1,a_2,...,a_c$,B有r个不一样值$b_1,b_2,...,b_r$。用A和B描述的数据元组能够用相依表显示,其中A的C个值构成列,B的r个值构成行。令$(A_i, B_j)$表示属性$a_i, b_j$的联合事件,即$(A = a_i, B = b_j)$。每一个可能的$(A_i, B_j)$联合事件都在表中有本身的单元。$\chi^{2}$值(又称$Pearson \chi^{2}$统计量)能够用下式计算:
$$ \chi^{2}=\sum_{i=1}^c \sum_{j=1}^r \frac{(o_{ij}-e_{ij})^2}{e_{ij}} $$
其中,$o_{ij}$是联合事件$(A_i, B_j)$的观测频度(即实际计数),而$e_{ij}$是$(A_i, B_j)$的指望频度,能够用下式计算:
$$ e_{ij} = \frac{count(A=a_i)*count(B=b_j)}{n} $$
其中,$n$是数据元组的个数,$count(A=a_i)$是A上具备$a_i$的元组个数,$count(B=b_j)$是B上具备$b_j$的元组个数。
注:对$\chi^2$值贡献最大的单元是其实际计数与指望计数很不相同的单元
$\chi^2$统计检验假设A和B是独立的。检验基于显著水平,具备自由度$(r-1)(c-1)$。若是能够拒绝该假设,则说明A和B是统计相关的。
能够经过计算属性A和B的相关系数(又称$Pearson$积矩系数)估计这两个属性的相关度$r_{a,b}$
$$ r_{a,b} = \frac{\sum_{i=1}^n (a_i - A_{mean})(b_i - B_{mean})}{n\sigma_A \sigma_B} = \frac{\sum_{i=1}^n (a_i b_i) - nA_{mean}B_{mean}}{n\sigma_A \sigma_B} $$
其中,$n$是元组的个数,$a_i$和$b_i$分别是元组$i$上A和B的值,$A_{mean}$和$B_{mean}$分别是A和B的均值,$\sigma_A$和$\sigma_B$的标准差,而$\sum(a_ib_i)$是AB的叉积和。
注:$-1≤r_{A,B}≤+1$。若是$r_{A,B}$大于0,则A和B是正相关的,意味着A值随B值的增长而增长。值越大,相关性越强。所以,一个较高的$r_{A,B}$值代表A或B能够做为冗余删除。
考虑两个数值属性A和B和几回观测的集合$\{(a_1,b_1),...,(a_n,b_n) \}$。A和B的均值又称为指望
,即:
$$ E(A) = A_{mean} = \frac{\sum_{i=1}^n a_i}{n}, E(B) = B_{mean} = \frac{\sum_{i=1}^n b_i}{n} $$
A和B的协方差
定义为:
$$ Cov(A, B) = E((A-A_{mean})(B-B_{mean})) = \frac{\sum_{i=1}^n(a_i-A_{mean})(b_i-B_{mean})}{n} $$
协相关系数
$r_{A,B}$:
$$ r_{A,B} = \frac{Cov(A,B)}{\sigma_A \sigma_B} $$
其中,$\sigma_A$和$\sigma_B$分别是A和B的标准差
$$ Cov(A,B) = E(A,B) - A_{mean}B_{mean} $$
两个趋于一块儿改变的属性A和B,若是A大于$A_{mean}$,则极可能B大于$B_{mean}$,所以A,B的协方差为正,若是A和B是独立的,则$E(A,B)=E(A)-E(B)$,因此$Cov(A,B)=E(A*B)-A_{mean}B_{mean}=E(A)*E(B)-A_{mean}B_{mean} = 0$
除了检测属性冗余外,还应在元组级检测重复。
例如,对于给定的惟一数据实体,存在两个或多个相同的元组。
致使数据值冲突的缘由可能由于表示、尺度或编码不一样。
属性也可能在不一样的抽象层,其中属性在一个系统中记录的抽象层可能比另外一个系统中“相同的”属性低。
数据归约策略包括维归约
、数量归约
和数据压缩
维归约减小所考虑的随机变量或属性的个数。维归约方法包括小波变换
、主成分分析
,属性子集选择
。
数量归约用替代的较小的数据表示形式替换原数据。
数据压缩使用变换,以便获得原数据的归约或“压缩”表示。若是原数据可以从压缩后的数据重构,而不损失信息则称无损的
。若是能近似重构原数据则称有损的
。
数据变换策略包括:
光滑
:去掉数据中的噪声。包括分箱、回归和聚类属性构造
(或特征构造):能够由给定的属性构造新的属性并添加到属性集中,以帮助挖掘过程。汇集
:对数据进行汇总和汇集规范化
:吧属性数据按比例缩放,使之落入特定小区间。概念分层
:属性,如:stree,能够泛化到较高的概念层,如city。注:数据预处理的主要任务之间存在许多重叠