数据清洗
简述数据清洗的基本方法

简述数据清洗的基本方法
数据清洗是指对原始数据进行处理,以消除数据中的噪声、重复值、错误值和不一致性,从而提高数据质量和可用性。
以下是数据清洗的基本方法:
1. 缺失值处理:检测数据中的缺失值,并根据情况进行填充或删除。
常用的填充方法有使用平均值、中位数或众数进行填充,或使用插值方法进行填充。
2. 异常值处理:检测数据中的异常值,并根据情况进行处理。
可以通过统计方法、可视化方法或专业知识进行异常值检测,并将其替换、删除或修正。
3. 重复值处理:检测数据中的重复记录,并根据情况进行处理。
可以使用数据唯一标识符进行重复值检测,并将其删除或合并为一个唯一记录。
4. 错误值处理:检测数据中的错误记录,并根据情况进行处理。
可以通过数据验证规则、专业知识或外部数据进行错误值检测,并将其修正或删除。
5. 格式标准化:统一数据的格式,以便进行后续的分析和处理。
例如,将日期格式统一为统一的格式,将文本格式统一为大写或小写。
6. 一致性处理:对数据内部的逻辑、业务规则等进行校验,确保数据的一致性。
例如,确保数据的关系完整性、逻辑一致性等。
7. 数据类型转换:将数据的类型进行转换,以适应后续分析和处理的需要。
例如,将文本型数据转换为数值型,或将日期型数据转换为时间戳。
8. 数据筛选和过滤:根据实际需求,对数据进行筛选和过滤,只选择符合要求的数据进行后续分析和处理。
综上所述,数据清洗的基本方法包括处理缺失值、异常值、重复值、错误值,格式标准化,一致性处理,数据类型转换以及数据筛选和过滤等。
数据清洗的操作方法有几种

数据清洗的操作方法有几种
数据清洗的操作方法主要有以下几种:
1. 缺失值处理:对于含有缺失值的数据,可以选择删除缺失值所在的行或列,或者使用统计量(如均值、中位数、众数等)填充缺失值。
2. 异常值处理:对于含有异常值的数据,可以选择删除异常值所在的行或列,或者使用插值法(如线性插值、多项式插值等)进行填充。
3. 数据类型转换:将数据中的字符串类型转换为数值类型,或者将数值类型转换为分类类型,以便进行进一步的分析和处理。
4. 重复值处理:对于数据中存在的重复值,可以选择删除重复值所在的行或列,或者进行聚合操作,将相同值合并为单行。
5. 标准化与归一化:将不同尺度和范围的数据转化为相同的标准尺度和范围,以便进行比较和分析。
6. 数据平滑:对于存在噪声或波动的数据,可以使用滑动窗口平均、指数平滑等方法进行平滑处理,以减小噪声或波动的影响。
7. 数据转换与编码:对于非数值型数据,可以使用独热编码、标签编码等方法
将其转化为数值型数据,以便进行分析和建模。
需要根据具体的数据和问题场景选择合适的数据清洗方法。
数据清洗和预处理

总结
定义与内容 数据清洗与预处理的基 本概念和包括的内容
工具与案例分析
常用的数据清洗与预 处理工具和实际案例 分析
步骤与方法
数据清洗与预处理的具 体步骤和常用方法
展望
未来数据清洗与预处理将会迎来更多的发展 机遇。随着大数据和人工智能的快速发展, 数据清洗与预处理的技术也将不断创新,为 数据分析提供更多可能性。
为什么需要数据清洗与预处理
提高数据质量
减少错误数据对分析的影响 提高数据的准确性
增加数据可靠性
确保数据的完整性 减少数据分析中的误差
优化数据分析过程
提高数据处理效率 减少数据处理时间
支持模型建立
确保模型的可信度 提高模型的准确性
数据清洗与预处理的重要性
确保数据的准确性
01
提高数据分析的效果
02
降低数据分析错误率
Python中的Scikit-learn库
01 强大的机器学习库,包含异常值处理模块
R语言中的Outliers包
02 专门用于检测和处理异常值的包
Excel的条件格式化功能
03 利用条件格式化可快速识别异常值
总结
异常值处理在数据清洗和预处理中起着至关 重要的作用,通过有效的方法和工具,可以 准确识别和处理异常值,提高数据分析的准 确性和可靠性。
如何检测重复值
使用工具或编程语言检 查数据集中的重复记录
重复值处理方法
删除重复值
从数据集中删除重复的 记录
合并重复值
合并相同的记录为一 条数据
标记重复值
标记数据集中的重复记 录
重复值处理工具
Python中的Pandas库
提供数据处理和分析功 能
Excel的数据删除功能 可用于删除重复值
数据清洗的原理

数据清洗的原理数据清洗是数据分析的重要步骤之一,它是指对数据进行预处理,以去除数据中的错误、不完整、重复、不一致等问题,从而提高数据的质量和可靠性。
数据清洗的原理包括以下几个方面:1. 数据收集数据清洗的第一步是数据收集,数据可以来自各种渠道,如数据库、文件、网络等。
在收集数据时,需要注意数据的来源、格式、结构等,以便后续的数据清洗和分析。
2. 数据预处理数据预处理是数据清洗的重要步骤之一,它包括数据清洗、数据转换和数据集成。
数据清洗是指对数据进行去重、去除空值、异常值等处理,以保证数据的完整性和准确性。
数据转换是指将数据从一种格式转换为另一种格式,如将日期格式转换为数字格式。
数据集成是指将多个数据源的数据合并为一个数据集,以便后续的数据分析。
3. 数据质量控制数据质量控制是数据清洗的重要环节之一,它包括数据验证、数据校验和数据审查。
数据验证是指对数据进行逻辑验证,以保证数据的正确性和一致性。
数据校验是指对数据进行格式验证,以保证数据的规范性和可读性。
数据审查是指对数据进行人工审查,以发现数据中的错误和问题。
4. 数据可视化数据可视化是数据清洗的重要环节之一,它可以帮助用户更好地理解数据,发现数据中的规律和趋势。
数据可视化可以采用各种图表和图形,如柱状图、折线图、散点图等,以便用户更好地理解数据。
数据清洗是数据分析的重要步骤之一,它可以帮助用户去除数据中的错误和问题,提高数据的质量和可靠性。
数据清洗的原理包括数据收集、数据预处理、数据质量控制和数据可视化等方面,这些原理可以帮助用户更好地理解数据,发现数据中的规律和趋势,从而做出更好的决策。
数据清洗常见流程

数据清洗常见流程数据清洗是数据预处理的一个重要环节,它的目的是对原始数据进行处理和转换,以便于后续的分析和建模工作。
下面是一个常见的数据清洗流程,包括数据收集、数据审查、数据处理和数据存储。
1.数据收集数据收集是数据清洗的第一步,它包括数据采集、数据获取和数据导入等过程。
根据数据源的不同,可以选择从数据库、文件、接口等方式获取数据。
在数据收集的过程中,还需要注意数据的质量和准确性。
2.数据审查数据审查是对收集到的数据进行初步的检查和评估,以确定数据的质量和完整性。
这一步主要包括以下几个方面的内容:-重复数据检查:去除数据集中的重复记录。
-缺失数据检查:对缺失数据进行分析和处理。
-异常数据检查:检查和处理数据集中的异常数据。
-无效数据检查:对数据集中的无效数据进行识别和清除。
3.数据处理在数据处理的过程中,需要对数据集进行一系列的清洗操作,包括以下几个方面的处理:-数据格式转换:将数据格式统一,使得数据结构一致。
-数据规范化:对数据进行标准化处理,使得数据符合统一的数据标准。
-数据填充:对缺失的数据进行填充,以保证数据集的完整性。
-数据转换:对数据中的不规则或者非结构化数据进行转换,使得数据易于分析和理解。
-数据联合:将多个数据源的数据进行联合,以便于综合分析和处理。
4.数据存储在数据清洗的最后一步,需要将清洗后的数据进行存储,以备后续的分析和应用。
选择合适的数据存储方式和数据结构,使得数据易于管理和查询。
在实际的数据清洗过程中,还需要注意以下几个要点:1.数据可视化:对数据进行可视化处理,以便于更直观地观察数据的分布和特征。
2.数据采样:对大规模数据集进行采样,以减少计算资源的消耗。
3.数据验证:对清洗后的数据进行验证和检查,确保清洗操作的准确性。
5.数据更新:定期更新数据清洗流程,以适应数据变化和需求变化。
总之,数据清洗是数据预处理的重要环节,对于数据分析和模型建立至关重要。
通过合理的数据清洗流程,可以提高数据的质量和完整性,为后续的数据分析和挖掘提供可靠的基础。
数据清洗与预处理保证数据质量的关键步骤

数据清洗与预处理保证数据质量的关键步骤数据清洗和预处理是数据分析的重要环节,它们的目标是通过对数据进行有效处理和转换,消除数据中的噪声、异常和错误,保证数据质量,从而为后续的数据分析和挖掘提供可靠的基础。
本文将介绍数据清洗和预处理的关键步骤,以及其在保证数据质量方面的作用。
一、数据清洗数据清洗是指对原始数据进行筛选、去除重复项、处理缺失数据和异常值等操作,以消除数据中的噪声和错误,使数据更准确、完整和一致。
1. 数据筛选数据筛选是指根据分析需要,对数据进行删选,保留需要的字段和样本,去除不相关或冗余的数据。
通过数据筛选,可以减少数据量,提高后续数据分析的效率和精确度。
2. 去除重复项在实际数据中,可能存在重复记录或者数据完全相同的情况,这些重复项对数据分析结果的准确性和可靠性会带来一定的影响。
因此,在数据清洗过程中,需要识别和去除重复项,确保每条数据仅出现一次。
3. 处理缺失数据缺失数据是指数据中某些字段或者样本存在缺失值的情况。
缺失数据会影响后续数据分析的准确性和可靠性,因此需要采取相应的措施进行处理。
常见的处理方法包括删除带有缺失值的样本、使用均值或中位数填充缺失值等。
4. 处理异常值异常值指的是与其他观测值存在显著不同,且不符合正常分布规律的离群值。
异常值可能是由数据采集或记录错误导致的,也可能是真实存在的特殊情况。
在数据清洗过程中,需要识别和处理异常值,以避免其对数据分析结果的干扰。
二、数据预处理数据预处理是指对经过清洗的数据进行转换和规范化的过程,以便于后续的数据分析和挖掘。
数据预处理通常包括数据变换、数据归一化和数据规约等步骤。
1. 数据变换数据变换是指通过某种映射或变换方式,将原始数据转换为更适合分析的形式。
常见的数据变换方法包括对数变换、指数变换、幂次变换、标准化变换和离散化等。
2. 数据归一化数据归一化是指将不同量纲的数据转化为统一的标准或范围,以消除由于数据取值范围差异而引起的偏差。
数据清洗的基本流程
数据清洗的基本流程数据清洗是数据预处理的重要环节,它主要是对原始数据进行筛选、整理、处理,以便于后续的分析和挖掘。
数据清洗的基本流程包括数据收集、数据评估、数据清理、数据转换和数据集成等几个步骤。
首先,数据收集是数据清洗的第一步。
在这一阶段,需要从各种数据源中收集原始数据,包括数据库、文本文件、日志文件、传感器数据等。
在数据收集的过程中,需要考虑数据的完整性、准确性和可靠性,确保数据的质量。
接下来是数据评估,这一步是对收集到的数据进行初步的评估和分析。
主要是对数据的质量进行评估,包括数据的缺失值、异常值、重复值和不一致值等进行检测和分析,以便于后续的清洗处理。
然后是数据清理,数据清理是数据清洗的核心环节。
在这一步中,需要对数据中的异常值、缺失值、重复值和不一致值进行处理。
对于缺失值,可以选择删除、填充或者插值等方法进行处理;对于异常值,可以选择删除、替换或者平滑处理;对于重复值和不一致值,可以进行去重或者统一化处理。
接着是数据转换,数据转换是将清洗后的数据进行转换和整理,以便于后续的分析和挖掘。
在这一步中,可以对数据进行规范化、标准化、离散化、聚合等处理,以便于后续的分析和挖掘。
最后是数据集成,数据集成是将清洗后的数据进行整合和组合,以便于后续的分析和挖掘。
在这一步中,可以将不同数据源的数据进行整合和组合,以便于后续的分析和挖掘。
综上所述,数据清洗的基本流程包括数据收集、数据评估、数据清理、数据转换和数据集成等几个步骤。
通过这些步骤,可以有效地对原始数据进行筛选、整理、处理,以便于后续的分析和挖掘。
数据清洗是数据预处理的重要环节,它对后续的数据分析和挖掘起着至关重要的作用。
数据清洗规则
数据清洗规则数据清洗是指对原始数据进行处理和筛选,以去除错误、不完整、重复或不相关的数据,从而提高数据的质量和可用性。
数据清洗规则是指在进行数据清洗过程中所遵循的一系列规则和步骤,用于确保数据的准确性、一致性和完整性。
下面是一份详细的数据清洗规则,以确保数据清洗的效果和质量。
1. 数据去重规则- 根据指定的关键字段进行去重,确保每条数据的唯一性。
- 去除重复的数据,保留最新或最完整的数据。
- 对于重复数据,可以选择保留第一条或最后一条数据。
2. 数据格式规则- 检查数据是否符合指定的格式要求,如日期、时间、货币、邮件地址等。
- 对于不符合格式要求的数据,可以选择删除、修正或标记为异常数据。
3. 数据完整性规则- 检查数据是否存在缺失值或空值。
- 对于缺失值或空值,可以选择删除、填充或插值处理。
- 对于缺失值较多或无法恢复的数据,可以考虑删除整条数据。
4. 数据一致性规则- 检查数据是否存在逻辑错误或不一致的情况。
- 对于逻辑错误或不一致的数据,可以选择修正、删除或标记为异常数据。
- 在数据清洗过程中,可以使用规则引擎或脚本进行自动化的一致性检查和修正。
5. 数据精度规则- 检查数据的精度是否符合要求。
- 对于精度不符合要求的数据,可以选择四舍五入、截断或修正处理。
- 在数据清洗过程中,可以使用数值运算或统计分析方法进行精度检查和修正。
6. 数据标准化规则- 检查数据是否符合指定的标准或规范要求。
- 对于不符合标准或规范要求的数据,可以选择修正、删除或标记为异常数据。
- 在数据清洗过程中,可以使用数据字典或规范文件进行标准化检查和修正。
7. 数据异常值规则- 检查数据是否存在异常值或离群点。
- 对于异常值或离群点,可以选择删除、修正或标记为异常数据。
- 在数据清洗过程中,可以使用统计分析或机器学习方法进行异常值检测和处理。
8. 数据关联规则- 检查数据之间的关联性和一致性。
- 对于关联性不一致的数据,可以选择删除、修正或标记为异常数据。
大数据分析师如何进行数据清洗和数据转换
大数据分析师如何进行数据清洗和数据转换作为大数据分析师,数据清洗和数据转换是我们日常工作中必不可少的环节。
数据清洗是指对原始数据进行处理,去除重复值、处理缺失值、修复格式错误等,以保证数据的准确性和完整性;数据转换则是将清洗过的数据转换为可用于分析的形式,如将数据进行归一化、离散化、特征编码等。
下面将详细介绍大数据分析师进行数据清洗和数据转换的步骤和方法。
一、数据清洗1. 数据去重在进行数据分析前,首先需要去除原始数据中的重复值,以避免对结果产生干扰。
可以利用软件工具或编程语言进行去重操作,去除重复的行或记录。
2. 处理缺失值原始数据中常常存在缺失值,即某些字段或变量的取值为空。
对于缺失值的处理,可以选择删除包含缺失值的行或记录,或者根据一定的规则进行填充。
填充缺失值的方法有很多,如使用均值、中位数、众数、回归预测等。
3. 格式修复原始数据中可能存在格式错误,如日期格式不统一、文本大小写不一致等。
在数据清洗过程中,需要对这些格式错误进行修复,确保数据的规范性和一致性。
4. 异常值处理数据中可能存在一些异常值,即与其他数据明显不符的极端值。
分析人员需要对这些异常值进行识别和处理,可以选择删除异常值或进行修正,使得数据更符合分析的要求。
二、数据转换1. 归一化在进行数据分析时,往往需要将不同尺度、不同量纲的数据进行归一化处理,以便比较和分析。
常用的归一化方法有最小-最大归一化和标准化(Z-Score)归一化。
2. 离散化离散化是将连续型数据转换为离散型数据的过程,常用于处理连续特征。
离散化可以基于等频、等宽或聚类等方法进行,根据实际情况选择合适的离散化方法。
3. 特征编码在进行机器学习任务时,需要将分类变量转换为数值型变量,以便模型的训练和计算。
特征编码常用的方法有独热编码、标签编码和哑变量编码等。
4. 数据转换与合并在一些情况下,需要将多个数据源的数据进行转换和合并,以建立更全面和准确的数据集。
此时,需要注意数据的结构和字段是否匹配,以及如何处理字段对齐、缺失匹配等问题。
数据清洗规则
数据清洗规则数据清洗是数据预处理的重要环节,它的目的是通过处理和修复数据中的错误、缺失、重复、不一致等问题,使数据变得更加准确、完整、一致和可靠。
为了保证数据清洗的效果和一致性,制定一套清晰的数据清洗规则非常重要。
本文将介绍一套标准格式的数据清洗规则,以确保数据清洗工作的准确性和高效性。
一、数据清洗规则的制定原则1. 数据准确性原则:数据清洗规则应确保清洗后的数据与实际情况相符,尽量减少错误数据的存在。
2. 数据完整性原则:数据清洗规则应确保清洗后的数据完整,不缺失任何重要信息。
3. 数据一致性原则:数据清洗规则应确保清洗后的数据一致,不出现不一致或冲突的情况。
4. 数据可靠性原则:数据清洗规则应确保清洗后的数据可靠,能够被信任和使用。
二、数据清洗规则的具体内容1. 数据格式规则:对于数据中存在的格式错误,如日期格式、数值格式等,应制定相应的规则进行修复和调整。
2. 数据去重规则:对于数据中存在的重复记录,应制定去重规则进行清洗,保留唯一的记录。
3. 数据缺失规则:对于数据中存在的缺失值,应制定相应的规则进行填充或删除,确保数据完整性。
4. 数据一致性规则:对于数据中存在的不一致或冲突的情况,应制定一致性规则进行清洗,保持数据的一致性。
5. 数据异常值规则:对于数据中存在的异常值,应制定相应的规则进行处理,修复或删除异常值。
6. 数据标准化规则:对于数据中存在的不规范或不标准的情况,应制定标准化规则进行清洗,使数据符合统一的标准。
7. 数据关联规则:对于数据中存在的关联问题,如数据来源、数据关系等,应制定关联规则进行清洗,确保数据的关联性和一致性。
8. 数据权限规则:对于敏感数据或受限数据,应制定权限规则进行清洗,确保数据的安全性和隐私性。
三、数据清洗规则的执行流程1. 数据收集:收集原始数据,包括数据源、数据格式、数据量等信息。
2. 数据预处理:对原始数据进行初步处理,包括数据清洗、数据转换、数据集成等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据清洗的主要包括:纠正错误、删除重复项、统一规格、修正逻辑、转换构造、数据压缩、补足残缺/空值、丢弃数据/变量。 1. 纠正错误 错误数据是数据源环境中经常出现的一类问题。数据错误的形式包括: q 数据值错误:数据直接是错误的,例如超过固定域集、超过极值、拼写错误、属性错误、源错误等。 q 数据类型错误:数据的存储类型不符合实际情况,如日期类型的以数值型存储,时间戳存为字符串等。 q 数据编码错误:数据存储的编码错误,例如将UTF-8写成UTF-80。 q 数据格式错误:数据的存储格式问题,如半角全角字符、中英文字符等。 q 数据异常错误:如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期越界、数据前后有不可见字符等。 q 依赖冲突:某些数据字段间存储依赖关系,例如城市与邮政编码应该满足对应关系,但可能存在二者不匹配的问题。 q 多值错误:大多数情况下,每个字段存储的是单个值,但也存在一个字段存储多个值的情况,其中有些可能是不符合实际业务规则的。 这类错误产生的原因是业务系统不够健全,尤其是在数据产生之初的校验和入库规则不规范,导致在接收输入后没有进行判断或无法检测而直接写入后台数据库造成的。 2. 删除重复项 由于各种原因,数据中可能存在重复记录或重复字段(列),对于这些重复项目(行和列)需要做去重处理。 对于重复项的判断,基本思想是“排序和合并”,先将数据库中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。 常见的排序算法: q 插入排序 q 冒泡排序 q 选择排序 q 快速排序 q 堆排序 q 归并排序 q 基数排序 q 希尔排序 常见的判断相似度的算法: q 基本的字段匹配算法 q 标准化欧氏距离 q 汉明距离 q 夹角余弦 q 杰卡德距离 q 马氏距离 q 曼哈顿距离 q 闵可夫斯基距离 q 欧氏距离 q 切比雪夫距离 q 相关系数 q 信息熵 对于重复的数据项,尽量需要经过业务确认并进行整理提取出规则。在清洗转换阶段,对于重复数据项尽量不要轻易做出删除决策,尤其不能将重要的或有业务意义的数据过滤掉,校验和重复确认的工作必不可少。 3. 统一规格 由于数据源系统分散在各个业务线,不同业务线对于数据的要求、理解和规格不同,导致对于同一数据对象描述规格完全不同,因此在清洗过程中需要统一数据规格并将一致性的内容抽象出来。 数据字段的规则大致可以从以下几个方面进行统一: q 名称,对于同一个数据对象的名称首先应该是一致的。例如对于访问深度这个字段,可能的名称包括访问深度、人均页面浏览量、每访问PV数。 q 类型:同一个数据对象的数据类型必须统一,且表示方法一致。例如普通日期的类型和时间戳的类型需要区分。 q 单位:对于数值型字段,单位需要统一。例如万、十万、百万等单位度量。 q 格式:在同一类型下,不同的表示格式也会产生差异。例如日期中的长日期、短日期、英文、中文、年月日制式和缩写等格式均不一样。 q 长度:同一字段长度必须一致。 q 小数位数:小数位数对于数值型字段尤为重要,尤其当数据量累积较大时会因为位数的不同而产生巨大偏差。 q 计数方法:对于数值型等的千分位、科学计数法等的计数方法的统一。 q 缩写规则:对于常用字段的缩写,例如单位、姓名、日期、月份等的统一。例如将周一表示为Monday还是Mon还是M。 q 值域:对于离散型和连续型的变量都应该根据业务规则进行统一的值域约束。 q 约束:是否允许控制、唯一性、外键约束、主键等的统一。 统一数据规格的过程中,需要重要的一点是确认不同业务线带来数据的规格一致性,这需要业务部门的参与、讨论和确认,以明确不同体系数据的统一标准。 4. 修正逻辑 在多数据源的环境下,很可能存在数据异常或冲突的问题。 例如不同的数据源对于订单数量的数据统计冲突问题,结果出现矛盾的记录。通常,这是由于不同系统对于同一个数据对象的统计逻辑不同而造成的,逻辑的不一致会直接导致结果的差异性;除了统计逻辑和口径的差异,也有因为源数据系统基于性能的考虑,放弃了外键约束,从而导致数据不一致的结果;另外,也存在极小的数据丢失的可能性,通常由于并发量和负载过高、服务器延迟甚至宕机等原因导致的数据采集的差异。 对于这类的数据矛盾,首先需要明确各个源系统的逻辑、条件、口径,然后定义一套符合各个系统采集逻辑的规则,并对异常源系统的采集逻辑进行修正。 某些情况下,也可能存在业务规则的错误导致的数据采集的错误,此时需要从源头纠正错误的采集逻辑,然后再进行数据清洗和转换。 5. 转换构造 数据变换是数据清理过程的重要步骤,是对数据的一个的标准的处理,几乎所有的数据处理过程都会涉及该步骤。数据转换常见的内容包括:数据类型转换、数据语义转换、数据值域转换、数据粒度转换、表/数据拆分、行列转换、数据离散化、数据离散化、提炼新字段、属性构造、数据压缩等。 数据类型转换 当数据来自不同数据源时,不同类型的数据源数据类型不兼容可能导致系统报错。这时需要将不同数据源的数据类型进行统一转换为一种兼容的数据类型。 数据语义转换 传统数据仓库中基于第三范式可能存在维度表、事实表等,此时在事实表中会有很多字段需要结合维度表才能进行语义上的解析。例如,假如字段M的业务含义是浏览器类型,其取值分为是1/2/3/4/5,这5个数字如果不加转换则很难理解为业务语言,更无法在后期被解读和应用。 数据粒度转换 业务系统一般存储的是明细数据,有些系统甚至存储的是基于时间戳的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库中不同的粒度需求进行聚合。 表/数据拆分 某些字段可能存储多中数据信息,例如时间戳中包含了年、月、日、小时、分、秒等信息,有些规则中需要将其中部分或者全部时间属性进行拆分,以此来满足多粒度下的数据聚合需求。同样的,一个表内的多个字段,也可能存在表字段拆分的情况。 行列转换 某些情况下,表内的行列数据会需要进行转换(又称为转置),例如协同过滤的计算之前,user和term之间的关系即互为行列并且可相互转换,可用来满足基于项目和基于用户的相似度推荐计算。 数据离散化 将连续取值的属性离散化成若干区间,来帮助消减一个连续属性的取值个数。例如对于收入这个字段,为了便于做统计,根据业务经验可能分为几个不同的区间:0~3000、3001~5000、5001~10000、10001~30000、大于30000,或者在此基础上分别用1、2、3、4、5来表示。 数据标准化 不同字段间由于字段本身的业务含义不同,有些时间需要消除变量之间不同数量级造成的数值之间的悬殊差异。例如将销售额进行离散化处理,以消除不同销售额之间由于量级关系导致的无法进行多列的复合计算。数据标准化过程还可以用来解决个别数值较高的属性对聚类结果的影响。 提炼新字段 很多情况下,需要基于业务规则提取新的字段,这些字段也称为复合字段。这些字段通常都是基于单一字段产生,但需要进行复合运算甚至复杂算法模型才能得到新的指标。 属性构造 有些建模过程中,也会需要根据已有的属性集构造新的属性。例如,几乎所有的机器学习都会讲样本分为训练集、测试集、验证集三类,那么数据集的分类(或者叫分区)就属于需要新构建的属性,用户做机器学习不同阶段的样本使用。 提示 在某些场景中,也存在一些特殊转换方法。例如在机器学习中,有些值是离散型的数据但存在一定意义,例如最高学历这个字段中包含博士、研究生、大学、高中这4个值,某些算法不支持直接对文本进行计算,此时需要将学历这个字段进行转换。常见的方法是将值域集中的每个值拆解为一个字段,每个字段取值为0或1(布尔型或数值型)。这时,就会出现4个新的字段,对于一条记录来看(通常是一个人),其最高学历只能满足一个,例如字段博士为1,那么其余的字段(研究生、大学、高中)则为0。因此这个过程实际上是将1个字段根据值域(4个值的集合)拆解为4个字段。 6. 数据压缩 数据压缩是指在保持原有数据集的完整性和准确性,不丢失有用信息的前提下,按照一定的算法和方式对数据进行重新组织的一种技术方法。 对大规模的数据进行复杂的数据分析与数据计算通常需要耗费大量时间,所以在这之前需要进行数据的约减和压缩,减小数据规模,而且还可能面临交互式的数据挖掘,根据数据挖掘前后对比对数据进行信息反馈。这样在精简数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得结果基本相同。 数据压缩的意义不止体现在数据计算过程中,还有利于减少存储空间,提高其传输、存储和处理效率,减少数据的冗余和存储的空间,这对于底层大数据平台具有非常重要的意义。 数据压缩有多种方式可供选择: q 数据聚合:将数据聚合后使用,例如如果汇总全部数据,那么基于更粗粒度的数据更加便利。 q 维度约减:通过相关分析手动消除多余属性,使得参与计算的维度(字段)减少;也可以使用主成分分析、因子分析等进行维度聚合,得到的同样是更少的参与计算的数据维度。 q 数据块消减:利用聚类或参数模型替代原有数据,这种方式常见于多个模型综合进行机器学习和数据挖掘。 q 数据压缩:数据压缩包括无损压缩和有损压缩两种类型。数据压缩常用于磁盘文件、视频、音频、图像等。 7. 补足残缺/空值 由于各种主客观原因,很多系统存在残缺数据,残缺数据包含行缺失、列缺失、字段缺失三种情况。行缺失指的是丢失了一整条数据记录,列缺失指的是丢失一整列数据,字段缺失指的是字段中的值为空值。其中空值也分两种情况: q 缺失值。缺失值指的是的数据原本是必须存在的,但实际上没有数据。例如年龄这个字段每个人都会有,所以如果系统强制验证是不应该为空。 q 空值。空值指的是实际存在可能为空的情况,所以空值不一定是数据问题。例如身份证号这个字段,只有成人之后才有这个字符串,因此也可能存在非成人的用户,所以可能为空。 对于缺失值和空值的填充处理主要包含两种方式: 一是手工填入可能的值; 二是利用规则填充可能的值:某些缺失值可以从本数据源或其它数据源推导出来,这就可以用数据分布的状态和特征,使用众数、中位数、平均值、最大值、最小值填充,或者使用近邻分析甚至更为复杂的概率估计代替缺失的值,从而达到填充的目的,某些情况下也可以直接以未知或unknown填充,这是一种先期不处理而等到后期业务在处理数据的时候再处理的方法。 提示 对缺失数据进行填补后,填入的值可能不正确,数据可能会存在偏置,导致数据并不是十分可靠的。除了明显的可以确定的规则来填充值以外,基于已有属性来预测缺失值是一种流行的方法。假如性别字段部分记录为空,可以将性别字段作为目标变量进行建模分析,对完整样本建模后得出缺失数据性别为男、女的概率,然后进行填充。对于更多的不确定值的数据样本,如果不影响整体计算逻辑的,建议先保持原样;如果会成为计算和建模噪音的数据,则可以采取上述方法进行处理,尽量使其在建模过程的作用消减。 8. 丢弃数据/变量