数据分析中的数据预处理
徐徐 抱歉选手

数据预处理步骤

数据清理

主要通过填补缺失值、光滑噪声数据、平滑或删除离群点来解决数据的不一致性问题。

缺失值的处理

先用pandas.isnull.sum()检测出变量的缺失比例,考虑删除或者填充,若需要填充的变量是连续型,一般采用均值法和随机插值进行填充,若变量是离散型,通常采用中位数或哑变量进行填充。

删除

变量的缺失率较高大于80%、覆盖率较低、重要性较低,删除。

填充

定值填充: 用-9999替代。

统计量填充: 缺失率较低且重要性较低,根据数据的分布情况填充——均匀分布就使用均值填补缺失,倾斜分布就使用中位数进行填补。

插值法填充:包括随机插值,多重差补法,热平台插补,拉格朗日插值,牛顿插值等。

模型填充:使用回归、贝叶斯、随机森林、决策树等模型对缺失数据进行预测。

哑变量填充:变量是离散的、不同值类型较少,可以换成哑变量,例如性别SEX变量,存在male,fameal,NA三个不同的值,可将该列转换成 ISSEX_MALE, IS_SEXFEMALE, IS_SEX_NA。三列,用0/1真假值替代。如果某个变量存在几十个不同的值,根据每个值的频数,将较小频数的数据都归类为other,降低维度。

离群点的处理

将离群点看作影响数据质量的异常点。

检测离群点

简单统计分析:根据箱线图、各分位点判断是否存在异常,例如pandas的describe函数可以快速发现异常值。

正态分布的数据应用3-sigma原则

基于绝对离差中位数MAD

处理离群点

  • 根据异常点的数量和影响,考虑是否删除这条记录

  • 如果数据做了log-scale对数变换之后消除了异常值,就应用变换后的值

  • 用平均值或中位数代替异常点

噪声处理

噪声是变量的随机误差和方差,是观测点和真实点之间的误差。

第一种处理办法:对数据进行分箱操作,等频或等宽分箱,然后用每个箱的平均数,中位数或者边界值(不同数据分布,处理方法不同)代替箱中所有的数,起到平滑数据的作用。

第二张处理办法:建立该变量和预测变量的回归模型,根据回归系数和预测变量,反解出自变量的近似值。

数据集成

数据集成将多个数据源中的数据结合成、存放在一个一致的数据存储,如数据仓库中。这些源可能包括多个数据库、数据方或一般文件。

  1. 实体识别问题:

    数据分析者或计算机如何才能确信一个数 据库中的 customer_id 和另一个数据库中的cust_number 指的是同一实体?利用元数据,也就是描述数据的数据来比避免冗余。

  2. 数据冗余问题:

    数据库中表的范式相关,第二范式。 用相关性检测冗余:数值型变量可计算相关系数矩阵,标称型变量可计算卡方检验。

  3. 数据值的冲突处理:规范化去重。

数据规约

数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近地保持原数据的完整性。 这样,在归约后的数据集上挖掘将更有效,并产生相同(或几乎相同)的分析结果。

  • 本文标题:数据分析中的数据预处理
  • 本文作者:徐徐
  • 创建时间:2020-12-17 19:44:35
  • 本文链接:https://machacroissant.github.io/2020/12/17/data-preprocessing/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论