当前位置: 首页 > news >正文

数据赋能(122)——体系:数据清洗——技术方法、主要工具

技术方法

数据清洗标准模型是将数据输入到数据清洗处理器,通过一系列步骤“清理”数据,然后以期望的格式输出清理过的数据。数据清洗从数据的准确性、完整性、一致性、惟一性、适时性、有效性几个方面来处理数据的丢失值、越界值、不一致代码、重复数据等问题。

数据清洗主要方法如下:

  1. 文本错误:
    1. 对于文本数据,进行去重、去除标点符号、去除停用词、词干提取(Stemming)或词形还原(Lemmatization)等操作。
    2. 使用正则表达式等工具,去除文本中的不合逻辑字符或特殊字符。
  2. 纠正错误:
    1. 识别和纠正数据中的错误,如拼写错误、编码错误、计算错误等。
    2. 对于某些数据,可能需要与原始数据源进行核对以纠正错误。
  3. 处理缺失值:
    1. 识别数据集中的缺失值或空值。
    2. 数据中存在某些字段的缺失,需要根据实际情况选择删除含有缺失值的记录、用默认值填充、或用某种插值方法估算缺失值。
    3. 根据数据的特性和业务需求,选择适当的填充方法,如使用均值、中位数、众数填充,或者使用插值法、机器学习预测等方法进行填充。
    4. 如果缺失值比例过高或无法进行有效填充,可以考虑删除相关记录。
  4. 处理重复数据:
    1. 识别数据集中的重复记录。
    2. 根据业务需求,选择保留重复记录中的一条或全部删除。
    3. 在处理重复值时,需要注意保留原始数据的完整性和准确性。
  5. 处理异常值:
    1. 对于数值数据,使用统计方法(如IQR规则、Z-score方法等)识别异常值。
    2. 对于识别出的异常值,根据业务需求和数据特性选择适当的处理方法。
  6. 逻辑错误处理:
    1. 检查数据之间的逻辑关系,如某些字段的取值范围是否合理,或某些字段之间是否满足特定的业务规则。例如日期时间字段中的无效日期、年龄字段中的负值或超过合理范围的值等。
    2. 对于识别出的逻辑错误,根据业务需求选择适当的处理方法。例如,可以删除包含逻辑错误的数据行,或者将错误值替换为合理的默认值或空值。
  7. 格式化数据:
    1. 统一数据的格式,如日期格式、数值格式等,并纠正或删除错误的内容。
    2. 将数据转换为统一的格式,以便进行后续的分析和处理。
  8. 数据标准化:
    1. 数据标准化是将数据转换为统一尺度的方法,以消除不同特征之间的尺度差异。
    2. 将数据转换为统一的标准或度量单位,以便进行比较和分析。
    3. 这通常用于机器学习算法,因为许多算法对特征的尺度敏感。
  9. 数据转换:
    1. 对数据进行标准化或归一化,以便不同尺度或单位的数据可以在同一尺度上进行比较。
    2. 根据需要,对数据进行各种转换操作,如对数转换、平方根转换、分箱(binning)等。
  10. 验证数据完整性:
    1. 确保数据具有完整性,即数据中的关键字段是否完整,是否存在缺失或错误。
    2. 可以使用数据完整性约束(如主键、外键、唯一约束等)来确保数据的准确性。

数据清洗是一个持续的过程,需不断发现并解决问题。关于过滤与修正,需客户确认。过滤数据应记录于Excel或数据表,ETL初期可每日向业务单位发送过滤数据邮件,促其修正错误,并作为未来验证依据。清洗时须谨慎,避免误删有用数据,每个过滤规则应经验证和用户确认。

主要工具

数据清洗主要工具如下:

  1. 数据清洗工具:
    1. 这类工具专注于利用领域特有的知识对数据进行清洗和整理。
    2. 它们通常具备语法分析和模糊匹配等技术,能够识别并修正数据中的错误、不一致或冗余信息。
    3. 例如,在处理邮政地址时,数据清洗工具可以自动纠正拼写错误、格式化地址格式,并消除重复项。
    4. Integrity和Trillum等工具就属于这一类别,它们通过强大的清洗功能,确保数据的准确性和一致性。
  2. 数据审计工具:
    1. 这类工具主要用于扫描和分析数据,以发现其中的规律和联系。
    2. 它们可以看作是数据挖掘工具的变形,能够自动检测数据中的异常值、缺失值以及潜在的关联关系。
    3. 通过数据审计工具,用户可以更深入地了解数据的分布、质量和潜在价值,为后续的数据分析和决策提供支持。

可以使用Excel、OpenRefine(旧称Google Refine)或Python等工具来辅助完成数据清洗任务。这些工具提供了强大的数据批量处理、筛选、修正和填充功能,可以大大提高数据清洗的效率和准确性。

 

相关文章:

  • AWS 批量添加安全组
  • Hi3861 OpenHarmony嵌入式应用入门--点灯
  • 图像识别技术在虚拟现实与增强现实中的应用
  • 数实融合创新发展 隆道分享企业级AI应用
  • C语言:文件操作
  • 保姆级pycharm远程连接linux服务器
  • QT——MySQL数据库联用
  • Windows CSC服务特权提升漏洞(CVE-2024-26229)
  • uniapp 微信小程序更改轮播图指示点
  • 如何移植libwebsockets
  • 工厂方法模式和抽象工厂
  • Cosmopolitan:一次构建,多平台原生运行的C语言库行!
  • 编译原理要点和难点以及具体应用案例
  • 汇川CodeSys PLC教程 03-2-5EtherNet
  • 自然语言处理nlp概述
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • CAP 一致性协议及应用解析
  • crontab执行失败的多种原因
  • Java Agent 学习笔记
  • js算法-归并排序(merge_sort)
  • linux安装openssl、swoole等扩展的具体步骤
  • MQ框架的比较
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • TypeScript迭代器
  • 电商搜索引擎的架构设计和性能优化
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何用vue打造一个移动端音乐播放器
  • 数据仓库的几种建模方法
  • 微信小程序填坑清单
  • 以太坊客户端Geth命令参数详解
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 大数据全解:定义、价值及挑战
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 数论-逆元
  • #java学习笔记(面向对象)----(未完结)
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (06)Hive——正则表达式
  • (23)mysql中mysqldump备份数据库
  • (floyd+补集) poj 3275
  • (TOJ2804)Even? Odd?
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)pulsar安装在独立的docker中,python测试
  • (汇总)os模块以及shutil模块对文件的操作
  • (九)信息融合方式简介
  • (三)c52学习之旅-点亮LED灯
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十八)Flink CEP 详解
  • (小白学Java)Java简介和基本配置
  • (一)RocketMQ初步认识
  • (转)Windows2003安全设置/维护
  • *Django中的Ajax 纯js的书写样式1