数据分析 数据预处理

一.概述
1.数据可能存在的问题:

正式进行分析前,需要先进行数据质量分析.可能存在以下问题:
"数据缺失"(Incomplete):数据值为空,如Occupancy=" "
"数据噪声"(Noisy):数据值不合常理,如Salary=-100
"数据不一致"(Inconsistent):数据前后存在矛盾,如Age=42 and Birthday="01/09/2020"
"数据冗余"(Redundant):数据量或者属性数超出需要
"数据集不均衡"(Imbalance):不同类别的数据量相差悬殊
"离群点""异常值"(Outliers:):远离数据集中其余部分的数据(注意和数据噪声的区别)
"数据重复"(Duplicate):数据集中存在多次出现的数据

2.概念:

"数据预处理"(Data Preprocessing)是指在分析数据前对数据进行的一些处理.业务中获得的数据可能存在各种问题("脏数据"),无法用于分析
或分析效果很差,因此需要通过数据预处理解决这些问题以提高数据质量

3.步骤:

"数据清洗"(Data Cleaning)
"数据转换"(Data Transformation)
"数据描述"(Data Description)
"数据规约"(Data Reduction)

二.数据清洗

任务包括删除无关数据/合并重复数据/平滑噪声数据/处理缺失值/处理离群点

1.缺失数据
(1)产生原因:

①采集设备出现故障(Equipment Malfunction)
②数据未被提供(Not Provided)
③属性不适用于该对象(Not Applicable;N/A),如未婚者没有配偶

(2)处理方法:

①不做处理,部分模型允许数据包含缺失值
②删除存在缺失项的记录,缺失较少时常用
③重新采样,但并不总能实行
④根据对象的其他属性手动推测,但十分繁琐
⑤进行数据插补

(3)插补方法:

插补方法包括:
①使用均值/中位数/众数
②使用固定值
③最近邻插补(使用与缺失值最接近的样本的该属性值)
④回归方法(根据已有数据和其他相关变量的数据建立拟合模型来预测缺失值)
⑤进行插值
  Ⅰ拉格朗日插值法
  Ⅱ牛顿插值法
  Ⅲ埃尔米特插值
  Ⅳ分段插值
  Ⅴ样条插值

2.离群点
(1)检测离群点:

检测离群点的方法包括:OneClassSVM,Isolation Forest,Local Outlier Factor(LOF;见下)

d i s t a n c e k ( O ) 表 示 距 离 O 第 k 近 的 点 到 O 的 距 离 , N k ( O ) 表 示 距 离 O 最 近 的 k 个 点 构 成 的 集 合 d i s t a n c e k ( A , B ) = max ⁡ { d i s t a n c e k ( B ) , d ( A , B ) } l r d ( A ) = ∣ N k ( A ) ∣ ∑ B ∈ N k ( A ) d i s t a n c e k ( A , B ) L O F k ( A ) = ∑ B ∈ N k ( A ) l r d ( B ) l r d ( A ) ∣ N k ( A ) ∣ = ∑ B ∈ N k ( A ) l r d ( B ) ∣ N k ( A ) ∣   ⋅   l r d ( A ) 3 σ distance_k(O)表示距离O第k近的点到O的距离,N_k(O)表示距离O最近的k个点构成的集合\\distance_k(A,B)=\max\{distance_k(B),d(A,B)\}\\lrd(A)=\frac{|N_k(A)|}{\displaystyle\sum_{B∈N_k(A)}distance_k(A,B)}\\LOF_k(A)=\frac{\displaystyle\sum_{B∈N_k(A)}\frac{lrd(B)}{lrd(A)}}{|N_k(A)|}=\frac{\displaystyle\sum_{B∈N_k(A)}lrd(B)}{|N_k(A)|\,·\,lrd(A)}\\3σ distancek(O)OkO,Nk(O)Okdistancek(A,B)=max{distancek(B),d(A,B)}lrd(A)=BNk(A)distancek(A,B)Nk(A)LOFk(A)=Nk(A)BNk(A)lrd(A)lrd(B)=Nk(A)lrd(A)BNk(A)lrd(B)3σ原值
箱线图分析

(2)处理离群点:

如何处理离群点取决于产生原因及应用目的:若由随机因素产生,通常忽略或剔除;若由不同机制产生,则离群点是应用的重点.后者的1个应用为异常行
为检测:如在银行的信用卡诈骗识别中,通过对大量的信用卡用户信息和消费行为进行向量化建模和聚类,聚类中远离大量样本的点就十分可疑,因为他
们和一般的信用卡用户特性不同,他们的消费行为和一般的信用卡消费行为也不同;购物网站检测恶意刷单等场景也会重点分析离群点.处理方法包括:
①删除所在记录
②视为缺失值
③不处理,为正确数据时使用
④使用前后2个观测值的平均值进行修正

3.重复数据:

可能存在重复的数据,应进行合并.需要注意的是:
①表面上不同的数据值实际上可能指的是相同的对象,如广东/广东省/粤指的都是广东省
②数据量可能十分庞大,无法一一比较.解决方法是使用滑动窗口,即每条数据都只与前几(100)条数据比较,但需要高度疑似的样本互相接近,为此可
以摘取数据中的某些部分,来给每条数据生成1个key,再根据key排序

数据分析 数据预处理_第1张图片
数据分析 数据预处理_第2张图片
三.数据集成
1.概念:

"数据集成"是指合并不同来源的数据的过程,需要考虑到实体识别和属性冗余的问题

2.实体识别:

"实体识别"是指找到数据对应的现实世界中的实体,任务是统一不同数据源间不一致的地方,包括:
①同名异义
②异名同义
③单位不统一

2.冗余属性:

数据集成常导致需要合并的"冗余属性",包括:
①同一属性多次以相同名称出现
②同一属性因命名不一致而重复
某些冗余属性可通过相关性分析找到

四.数据转换
1.函数变换:

"函数变换"是指使用某些函数对原数据进行变换,包括平方/开方/取对数/差分运算等,概念包括:
①将不具有正态分布的数据变换为具有正态分布的数据
②在时间序列分析中将非平稳序列转换成平稳序列
③对数据的分布范围进行压缩

2.类型转换
(1)数据类型:

数据类型	     +--连续型
   |         |
   +--数值型--+--离散型	 +--定序型
   |                     |
   +--非数值型--+--类比型--+--定类型
               |
               +--非类比型--字符串型

①连续型(Continuous):实数数据,如温度/高度/重量
②离散型(Discrete):整数数据,如人数
③定序型(Ordinal):等级数据,{Average,Good,Best}/{Low,Medium,High}
④定类型(Nominal):类别数据,{Teacher,Worker,Salesman},{Red,Green,Blue}
⑤字符串型(String):文本数据,"Tsinghua University"/"No.123,Pingan Avenue"

需要将非数值型转换为数值型,以便算法进行后续处理

(2)概念:

"类型转换"(Type Conversion)是指将1种类型的数据转换为另1

(3)转换方法:

定序型:通常使用序号进行编码,如将{Low,Medium,High}分别编码为{1,2,3}
定类型:①独热编码(使用稀疏向量进行编码),如将{Red,Green,Blue}分别编码为{(1,0,0),(0,1,0),(0,0,1)} ②二进制编码 ...
字符串型:①词袋模型(Bag of Words) ②TF-IDF(Term Frequency-Inverse) ③主题模型(Topic Model) ④词嵌入模型(Word Embedding) ...

3.采样
(1)概念:

"采样"(Sampling)是指从特定的概率分布或数据集中按一定规则抽取样本点的过程

(2)目的:

①降低数据量,从而减少时间/空间/算力的消耗并使数据的分布更均匀(包括降低数据层级,如从每日记录降为每月记录)
②对样本集进行调整,如处理不均衡样本集(对较少的数据集进行过采样或对较多的数据集进行欠采样)
③用于随机模拟以进行复杂模型的近似求解或推理
④将复杂分布简化为离散的样本点

(3)G-mean与F-measure:

整体准确率不适用于不均衡样本集,需要引入新的度量模式如G-mean和F-measure

G − m e a n = ( A c c + × A c c − ) 1 2 G-mean=(Acc^+×Acc^-)^\frac{1}{2} Gmean=(Acc+×Acc)21,其中 A c c + = T P T P + F N , A c c − = T N T N + F P F − m e a s u r e = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l Acc^+=\frac{TP}{TP+FN},Acc^-=\frac{TN}{TN+FP}\\F-measure=\frac{2×Precision×Recall}{Precision+Recall} Acc+=TP+FNTP,Acc=TN+FPTNFmeasure=Precision+Recall2×Precision×Recall,其中 P r e c i s i o n = T P T P + F P , R e c a l l = T P T P + F N = A c c + Precision=\frac{TP}{TP+FP},Recall=\frac{TP}{TP+FN}=Acc^+ Precision=TP+FPTP,Recall=TP+FNTP=Acc+

(4)采样方法:

"过采样"(Over-Sampling):获取超出原样本量的样本点
"欠采样"(Under-Sampling):只选取全部样本点中的一部分
"边缘采样"(Boundary-Sampling):只选取数据集边缘处的样本点

4.特征缩放

"特征缩放"(Feature scaling)主要包括4(有时也统称为"规范化"/"归一化"),目的是消除量纲/量级的影响,使不同指标间具有可比性.例
如,分析1个人的身高和体重对健康的影响,如果使用m和kg作为单位,身高在1.6-1.8m的范围内,体重在50-100kg的范围内,结果就会倾向于数值
差别较大的体重特征

(1)归一化:

"归一化"(Normalization)"线性函数归一化"(Rescaling)"最小-最大值归一化"(Min-Max Normalization),是指把数据映射到
[0,1]范围内.归一化可将所有特征都统一到1个相同的区间内,以便进行分析

归一化: x ′ = x − min ⁡ max ⁡ − min ⁡ x'=\frac{x-\min}{\max-\min} x=maxminxmin

(2)标准化:

"标准化"(Standardization)"0-均值归一化"(Z-Score Normalization),是指将样本集的均值转换为0,标准差转换为1

标准化: x ′ = x − μ σ x'=\frac{x-μ}{σ} x=σxμ

(3)其他:

"平均值归一化"(Mean Normalization)

平均值归一化: x ′ = x − m e a n max ⁡ − min ⁡ x'=\frac{x-mean}{\max-\min} x=maxminxmean

"缩放到单位长度"(Scaling to Unit Length)

缩放到单位长度: x ′ = x ∣ ∣   x   ∣ ∣ x'=\frac{x}{||\,x\,||} x=xx

"小数定标规范化"(Normalization by Decimal Scaling)将数据映到[-1,1]

小数定标规范化: x ′ = x 1 0 k x'=\frac{x}{10^k} x=10kx

5.离散化
(1)概念:

"离散化"(Discretization)是指将连续型数据转换为离散型数据

(2)方法:

通常是在数据的取值范围内设置几个划分点,从而将取值范围划分为几个离散的区间,最后用不同的符号或值代表落在不同区间中的数据值.方法包括:
①等宽法:使每个区间具有相同的宽度,但数据点的分布可能高度不均(尤其是在存在离群点时)
②等频法:使落在每个区间中的数据点大致等量,但可能将相同的数据值分入不同的区间
③基于聚类的分析方法:对数据集进行聚类,用不同的符号代表落在不同簇中的数据值

6.属性构造:

有时需要利用已有属性构造出新属性再进行分析

7.基变换:

主要包括"傅里叶变换"(Fourier Transformation)/"小波变换"(Wavelet Transformation)/"拉普拉斯变换"(Laplace Transformation)/
"Z变换"(Z-Transformation),常用于信号分析

五.数据规约

参见 数据分析.数据规约 部分

你可能感兴趣的:(数据分析,数据挖掘,数据预处理,规范化/标准化)