zoukankan      html  css  js  c++  java
  • 数据清洗的方法

    数据挖掘中常用的数据清洗方法有哪些?

    原文链接:https://www.zhihu.com/question/22077960

     

    从两个角度看,数据清洗一是为了解决数据质量问题,,二是让数据更适合做挖掘。不同的目的下分不同的情况,也都有相应的解决方式和方法。

    包括缺失值处理、异常值处理、重复值处理、空值填充、统一单位、是否标准化处理、是否删除无必要的变量、是否排序、是否进行主成分或因子分析等等。

    1. 解决数据质量问题

      解决数据的各种问题,包括但不限于:

      1. 数据的完整性----例如人的属性中缺少性别、籍贯、年龄等
      2. 数据的唯一性----例如不同来源的数据出现重复的情况
      3. 数据的权威性----例如同一个指标出现多个来源的数据,且数值不一样
      4. 数据的合法性----例如获取的数据与常识不符,年龄大于150岁
      5. 数据的一致性----例如不同来源的不同指标,实际内涵是一样的,或是同一指标内涵不一致

    数据清洗的结果是对各种脏数据进行对应方式的处理,得到标准的、干净的、连续的数据,提供给数据统计、数据挖掘等使用。

    那么为了解决以上的各种问题,我们需要不同的手段和方法来一一处理。

    每种问题都有各种情况,每种情况适用不同的处理方法,具体如下:

    1.1解决数据的完整性问题:(数据缺失,那么补上就好了)

    补数据有什么方法?

    1. 通过其他信息补全,例如使用身份证号码推算性别、籍贯、出生日期、年龄等等。
    2. 通过前后数据补全,例如时间序列缺数据了,可以使用前后的均值,缺的多了,可以使用平滑等处理,记得Matlab还是什么工具可以自动补全
    3. 实在补不全的,虽然很可惜,但也必须要剔除。但是不要删掉,没准以后可以用得上

    1.2解决数据的唯一性问题(解题思路:去除重复记录,只保留一条。)

    去重的方法有:

    1. 按主键去重,用sql或者excel"去除重复记录"即可,
    2. 按规则去重,编写一系列的规则,对重复情况复杂的数据进行去重。例如不同渠道来的客户数据,可以通过相同的关键信息进行匹配,合并去重。

    1.3解决数据的权威型问题

    解题思路:用最权威的个渠道的数据

    方法:

    1. 对不同渠道设定权威级别,例如:在家里,首先得相信媳妇说的。。

    1.4解决数据的合法性问题

    解题思路:设定判定规则

    1. 设定强制合法规则,凡是不在此规则范围内的,强制设为最大值,或者判为无效,剔除

      字段类型合法规则:日期字段格式为"2010-10-10"

      字段内容合法规则:性别 in (男、女、未知);出生日期<=今天

    2. 设定警告规则,凡是不在此规则范围内的,进行警告,然后人工处理

      警告规则:年龄》110

    3. 离群值人工特殊处理,使用分箱、聚类、回归、等方式发现离群值

    1.5解决数据的一致性问题

    解题思路:建立数据体系,包含但不限于:

    1. 指标体系(度量)
    2. 维度
    3. 单位
    4. 频度
    5. 数据
    1. 让数据更适合做挖掘或展示

      目标包括但不限于:

      1. 高纬度----不适合挖掘
      2. 维度太低----不适合挖掘
      3. 无关信息----减少存储
      4. 字段冗余----一个字段是其他字段计算出来的,会造成相关系数为1或者主成因分析异常
      5. 多指标数值、单位不同----如GDP与城镇居民人均收入数值相差过大

      2.1解决高纬度问题

      解题思路:降维,方法包括但不限于:

      1. 主成分分析
      2. 随机森林

      2.2解决维度低或缺少维度问题

      解题思路:抽象,方法包括但不限于:

      1. 各种汇总,平均、加总、最大、最小
      2. 各种离散化,聚类等

      2.3解决无关信息和字段冗余(解决方法:剔除字段)

      2.4解决多指标数值、单位不同问题

      解决方法:归一化

    2. 如何删除重复项

      由于各种原因,数据中可能存在重复记录或重复字段(列),对于这些重复项目(行和列)需要做去重处理。对于重复项的判断,基本思想是"排序和合并",先将数据库中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。

    常见的排序算法:

    插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序、基数排序、希尔排序

    常见判断相似度的算法:

    基本的字段匹配算法、标准化欧氏距离、汉明距离、夹角余弦、曼哈顿距离、欧氏距离、切比雪夫距离、相关系数、信息熵等等

    对于重复的数据项,尽量需要经过业务确认并进行整理提取出规则。在清洗转换阶段,对于重复数据项尽量不要轻易做出删除决策,尤其不能将重要的或有业务意义的数据过滤掉,校验和重复确认的工作必不可少

  • 相关阅读:
    微软紧急安全公告:当心SQL攻击爆发
    婴儿
    感冒了
    System.IO.FileAttributes
    mssql数据库,无法用语句实现“强制还原”功能
    好大的风
    无聊的游戏
    JZOJ 4276【NOIP2015模拟10.28A组】递推
    JZOJ 4289.Mancity
    单词检索(search)
  • 原文地址:https://www.cnblogs.com/yejintianming00/p/9339919.html
Copyright © 2011-2022 走看看