学习参考链接:[整理一份详细的数据预处理方法(https://zhuanlan.zhihu.com/p/51131210)
数据预处理有两种不同的理解:
1、数据挖掘中的预处理
改善数据质量,有利于后期分析
- 数据去重
- 数据异常:价格为-1 ——> 删除样本
- 字段缺失:缺少品牌 ——> 从型号中提取
- 数据噪声:存在充电线、手机壳等非手机类商品 ——> 删除
- 单位不一致:评论数量1200、1.2万 ——> 转换
- 数据归约:同一型号不同颜色的数据进行合并
2、Excel操作中的预处理
把数据处理成方便后续处理的特定格式
- 替换
- 数据去重
- 为后续绘图而进行的数据筛选和分类汇总
1 数据清理
1.1 缺失值处理
- 删除变量。变量的缺失率较高(大于80%),覆盖率较低,且重要性较低,可以直接将变量删除。
- 定值填充。
- 统计量填充。缺失率较低(小于95%)且重要性较低,则根据数据分布的情况进行填充。对于数据符合均匀分布,用该变量的均值填补缺失,对于数据存在倾斜分布的情况,采用中位数进行填补。
- 插值法填充。包括随机插值,多重差补法,热平台插补,拉格朗日插值,牛顿插值等
- 模型填充。使用回归、贝叶斯、随机森林、决策树等模型对缺失数据进行预测。
- 哑变量填充。若变量是离散型,且不同值较少,可转换成哑变量。
注意: 若对变量进行分箱离散化,一般会将缺失值单独作为一个箱子(离散变量的一个值)
1.2 离群点处理
1.2.1 检测离群点方法
- 简单统计分析。根据箱线图、各分位点判断是否存在异常,例如pandas的describe函数可以快速发现异常值。
- 3 σ \sigma σ原则。若数据存在正态分布,偏离均值的3 σ \sigma σ之外. 通常定义 P ( ∣ x − μ ∣ > 3 σ ) < = 0.003 P(|x-\mu|>3\sigma)<=0.003 P(∣x−μ∣>3σ)<=0.003范围内的点为离群点。
- 基于绝对离差中位数(MAD)。这是一种稳健对抗离群数据的距离值方法,采用计算各观测值与平均值的距离总和的方法。放大了离群值的影响。
- 基于距离。通过定义对象之间的临近性度量,根据距离判断异常对象是否远离其他对象,缺点是计算复杂度较高,不适用于大数据集和存在不同密度区域的数据集。
- 基于密度。离群点的局部密度显著低于大部分近邻点,适用于非均匀的数据集。
- 基于聚类。利用聚类算法,丢弃远离其他簇的小簇。
1.2.2 具体处理方法
- 根据异常点的数量和影响,考虑是否将该条记录删除,信息损失多。
- 若对数据做了log-scale 对数变换后消除了异常值,则此方法生效,且不损失信息。
- 平均值或中位数替代异常点,简单高效,信息的损失较少。
- 在训练树模型时,树模型对离群点的鲁棒性较高,无信息损失,不影响模型训练效果。
1.3 噪声处理
噪声是变量的随机误差和方差,是观测点和真实点之间的误差,即 o b s = x + ε obs=x+\varepsilon obs=x+ε。通常的处理办法:对数据进行分箱操作,等频或等宽分箱,然后用每个箱的平均数,中位数或者边界值(不同数据分布,处理方法不同)代替箱中所有的数,起到平滑数据的作用。另外一种做法是,建立该变量和预测变量的回归模型,根据回归系数和预测变量,反解出自变量的近似值。
2 数据集成
数据分析任务多半涉及数据集成。数据集成将多个数据源中的数据结合成、存放在一个一致的数据存储,如数据仓库中。这些源可能包括多个数据库、数据方或一般文件。
- 实体识别问题:例如,数据分析者或计算机如何才能确信一个数 据库中的 customer_id 和另一个数据库中的cust_number 指的是同一实体。通常,数据库和数据仓库有元数据——关于数据的数据。这种元数据可以帮助避免模式集成中的错误。
- 冗余问题。一个属性是冗余的,如果它能由另一个表“导出”;如年薪。属性或命名的不一致也可能导致数据集中的冗余。 用相关性检测冗余:数值型变量可计算相关系数矩阵,标称型变量可计算卡方检验。
- 数据值的冲突和处理:不同数据源,在统一合并时,保持规范化,去重。
3 数据归约
3.1 维度规约
属性子集选择:目标是找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性的原分布。在压缩的属性集上挖掘还有其它的优点。它减少了出现在发现模式上的属性的数目,使得模式更易于理解。
单变量重要性:分析单变量和目标变量的相关性,删除预测能力较低的变量。这种方法不同于属性子集选择,通常从统计学和信息的角度去分析。
- pearson相关系数和卡方检验:分析目标变量和单变量的相关性。
- 回归系数:训练线性回归或逻辑回归,提取每个变量的表决系数,进行重要性排序。
- 树模型的Gini指数:训练决策树模型,提取每个变量的重要度,即Gini指数进行排序。
- Lasso正则化:训练回归模型时,加入L1正则化参数,将特征向量稀疏化。
- IV指标:风控模型中,通常求解每个变量的IV值,来定义变量的重要度,一般将阀值设定在0.02以上。
3.2 维度变换
维度变换是将现有数据降低到更小的维度,尽量保证数据信息的完整性。
- 主成分分析(PCA)和因子分析(FA):PCA通过空间映射的方式,将当前维度映射到更低的维度,使得每个变量在新空间的方差最大。FA则是找到当前特征向量的公因子(维度更小),用公因子的线性组合来描述当前的特征向量。
- 奇异值分解(SVD):SVD的降维可解释性较低,且计算量比PCA大,一般用在稀疏矩阵上降维,例如图片压缩,推荐系统。
- 聚类:将某一类具有相似性的特征聚到单个变量,从而大大降低维度。
- 线性组合:将多个变量做线性回归,根据每个变量的表决系数,赋予变量权重,可将该类变量根据权重组合成一个变量。
- 流行学习:流行学习中一些复杂的非线性方法
4 数据变换
4.1 规范化处理
最大——最小规范化: x n e w = x − x m i n x m a x − x m i n x_{new}=\frac{x-x_{min}}{x_{max}-x_{min}} xnew=xmax−xminx−xmin
Z-Score标准化: x n e w = x − x ˉ θ x_{new}=\frac{x-\bar{x}}{\theta} xnew=θx−xˉ
log变换: x n e w = l o g x x_{new}=logx xnew=logx
4.2 离散化处理
-
等频法:使得每个箱中的样本数量相等,例如总样本n=100,分成k=5个箱,则分箱原则是保证落入每个箱的样本量=20。
-
等宽法:使得属性的箱宽度相等,例如年龄变量(0-100之间),可分成 [0,20],[20,40],[40,60],[60,80],[80,100]五个等宽的箱。
-
聚类法:根据聚类出来的簇,每个簇中的数据为一个箱,簇的数量模型给定。
4.3 稀疏化处理
针对离散型且标称变量,无法进行有序的LabelEncoder时,通常考虑将变量做0,1哑变量的稀疏化处理。若是变量的不同值较多,则根据频数,将出现次数较少的值统一归为一类rare。稀疏化处理既有利于模型快速收敛,又能提升模型的抗噪能力。