原文:http://dataunion.org/5009.html

一:为什么要预处理数据?
(1)现实世界的数据是肮脏的(不完整,含噪声,不一致)
(2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据;数据仓库需要对高质量的数据进行一致地集成)
(3)原始数据中存在的问题:
不一致 —— 数据内含出现不一致情况
重复
不完整 —— 感兴趣的属性没有
含噪声 —— 数据中存在着错误、或异常(偏离期望值)的数据
高维度
二:数据预处理的方法
(1)数据清洗 —— 去噪声和无关数据
(2)数据集成 —— 将多个数据源中的数据结合起来存放在一个一致的数据存储中
(3)数据变换 —— 把原始数据转换成为适合数据挖掘的形式

(4)数据规约 —— 主要方法包括:数据立方体聚集,维度归约,数据压缩,数值归约,离散化和概念分层等。

(5)图说事实

三:数据选取参考原则
(1)尽可能富余属性名和属性值明确的含义
(2)统一多数据源的属性编码
(3)去除唯一属性
(4)去除重复属性
(5)去除可忽略字段
(6)合理选择关联字段
(7)进一步处理:

通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致数据,去掉数据中的噪音、填充空值、丢失值和处理不一致数据

四:用图说话,(我还是习惯用统计图说话)

数据清洗的路子:刚拿到的数据 —-> 和数据提供者讨论咨询 —–> 数据分析(借助可视化工具)发现脏数据 —->清洗脏数据(借助MATLAB或者Java/C++语言) —–>再次统计分析(Excel的data analysis不错的,最大小值,中位数,众数,平均值,方差等等,以及散点图) —–> 再次发现脏数据或者与实验无关的数据(去除) —–>最后实验分析 —-> 社会实例验证 —->结束。

一 数据清理

试图填充缺失值,光滑噪声并识别离群点,并纠正数据中的不一致。

1)处理缺失值方法:

a.忽略元祖,挖掘任务涉及分类任务中如果缺少类标号时通常这样做

b.人工填写缺失值,量大时行不通

c.使用一个全局常量填充缺失值,简单但不可靠

d.使用属性的均值填充缺失值

e.使用与给定元组属同一类的所有样本的属性均值

f.使用最有可能的值填充缺失值,可以用回归,使用贝叶斯形式化的基于推理的工具或决策树归纳确定,是流行的做法。

2)数据光滑技术:噪声是被测量的变量的随机误差或方差

a.分箱,分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据的值,有序值分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此进行局部光滑。几种分箱技术:用箱均值光滑、用箱边界光滑、用箱中位数光滑。

b.回归:可以用一个函数(如回归函数)拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”线,是的一个属性可以用来预测另一个。多元线性回归是线性回归的扩展,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。

c.聚类:通过聚类检测离群点

3)数据清理作为一个过程的方法:过程的第一步是偏差检测,有大量商业工具帮助我们进行偏差检测,数据清洗工具、数据审计工具、数据迁移工具、ETL工具。新的数据清理方法强调加强交互性,如Potter's Wheel,集成了偏差检测和数据变换。

二 数据集成和变换

1)数据集成:数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。数据集成有三个主要问题:a.模式集成和对象匹配,实体识别问题:来自多个信息源的现实世界的等价实体如何才能匹配?元数据可以帮助避免模式集成的错误。b.冗余:有些冗余可以被相关分析检测到。通过计算属性A,B的相关系数(皮尔逊积矩系数)来判断是否冗余;对于离散数据,可通过卡方检验来判断两个属性A和B之间的相关联系。c.数据值冲突的检测与处理

2)数据变换:将数据转换或统一成适合于挖掘的形式。涉及如下内容:

a.光滑:去掉数据的噪声,包括分箱,回归和聚类

b.聚集:对数据进行汇总或聚集。这一步通常用来为多粒度数据分析构造数据立方体

c.数据泛化:使用概念分层,用高层概念替换底层或“原始”数据。

d.规范化:又称为归一化,feature scaling特征缩放。将属性数据按比例缩放,使之落入一个小的特定区间。规范化方法:

1.最小-最大规范化:v'=[(v-min)/(max-min)]*(new_max-new_min)+new_min

2.z-score规范化(或零均值规范化):v'=(v-属性A的均值E)/属性A的标准差∽

3.小数定标规范化:v'=v/10的j次方,j是使Max(|v'|)<1的最小整数

e.属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。

三 数据归约

数据集可能非常大!面对海量数据进行复杂的数据分析和挖掘将需要很长的时间。数据归约技术可以用来得到数据集的归约表示,它小很多,但仍接近保持原数据的完整性。数据归约策略如下:

1)数据立方体聚集:聚集操作用于数据立方体结构中的数据。数据立方体存储多维聚集信息。

2)属性子集选择,参见文本分类概述中特征选择算法

3)维度归约:使用数据编码或变换,以便得到原数据的归约或“压缩”表示。归约分为无损的和有损的。有效的有损维归约方法为:小波变换和主成分分析

4)数值归约:通过选择替代的、‘较小的’数据表示形式来减少数据量

5)离散化和概念分层产生

转载于:https://www.cnblogs.com/zhizhan/p/4870397.html

数据预处理(完整步骤)相关推荐

  1. BigData预处理(完整步骤)

    BigData预处理(完整步骤) 虽然题目是完整步骤,实际上并不完整,以下是原文内容 一:为什么要预处理数据? (1)现实世界的数据是肮脏的(不完整,含噪声,不一致) (2)没有高质量的数据,就没有高 ...

  2. 数据预处理的步骤和方法

    一.概述 在工程实践中,我们得到的数据会存在有缺失值.重复值等,在使用之前需要进行数据预处理.数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同.数据预处理的常用流程为:去除唯一属性 ...

  3. 【倾情奉献】遥感物候研究:30年长时间序列遥感数据集GIMMS 3g NDVI产品预处理完整步骤

    本文为作者硕士学位论文遥感物候研究数据处理过程总结.GIMMS(Global Inventory Modelling and Mapping Studies) 3g NDVI来源于ECOCAST网站( ...

  4. 中对缺失数据的预处理_数据预处理也有套路的

    数据挖掘的核心是什么?这个的答案是算法,应该没什么疑问.那数据挖掘的基石又是什么呢?那就是今天我们要来说的数据预处理. 什么是数据预处理? 数据科学家们一直想为数据预处理赋予一个定义.其实简单地说,数 ...

  5. 机器学习之为什么要数据预处理?如何预处理数据?

    在现实生活问题中,我们得到的原始数据往往非常混乱.不全面,机器学习模型往往无法从中有效识别并提取信息.数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已,在采集完数据后,机器学习建模的首 ...

  6. 机器学习之金融信贷风控(二)申请评分卡中的数据预处理和特征衍生(未完待续)

    申请评分卡中的数据预处理和特征衍生 模型处理的一般流程: 构建信用风险模型的特征 获取数据 链接:https://pan.baidu.com/s/1CsY11ArZ6YK3o1icghWj2w 提取码 ...

  7. 数据分析——数据预处理

    内容来源:课程<智能信息处理技术>.周志华<机器学习> 数据预处理 点击 数据预处理各步骤梳理 查看全图 什么是数据预处理 现实世界中数据大体上都是不完整,不一致的脏数据,无法 ...

  8. 关于数据预处理的一些想法

    今天在做数据预处理进行数据变换这步的时候,一直卡着,主要因为对于数据维度的确定老是拿不准. 数据预处理的步骤一般是初始数据源的获取.数据清理.数据集成.数据融合.数据转换.数据规约. 数据变换是采用线 ...

  9. 【算法系列】数据预处理全面介绍

    转载自知乎"宋城"的<最全面的数据预处理介绍>一文 背景 本文主要介绍详细处理流程以及这样处理的原因,对于处理方法的原理介绍较为简略.当然,想深入了解原理可以根据这份框 ...

  10. 数据预处理-缺失值处理

    数据预处理-缺失值处理 缺失值类型 不完全变量 完全随机缺失 随机缺失 完全非随机缺失 缺失值补全 1-均值查补 2-同类均值插补 3-建模预测 4-高维映射 5-多重插补 6-手动插补 数据预处理完 ...

最新文章

  1. pandas 删除 csv 中 unnamed 列
  2. Partition List
  3. mactex中文配置
  4. Vue项目实战03 : vue中 meta 路由元信息
  5. 【UVA2230】过河
  6. 有序序列中的i个最大数(算法导论思考题9-1)
  7. 【Java】Java中ThreadLocal简介以及源码
  8. 算法竞赛入门经典习题
  9. 药品查询 API数据接口
  10. NPOI word中插入图片
  11. 第八周、第九周学习总结
  12. 自动驾驶赛道「孔雀东南飞」,何处安家?各有小算盘
  13. NameError: name ‘weights‘ is not defined
  14. linux进程挂掉 自动启动,配置systemd以在Linux崩溃后自动启动服务
  15. Locating Elements
  16. Python语言实现机器学习
  17. 云原生监控报警可视化
  18. 基于redis生成日期订单编号
  19. android 检测软件键盘弹起落下
  20. OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)

热门文章

  1. 敏捷软件开发(c#版)文摘
  2. C++资源之不完全导引(上)
  3. NAT的配置与相关概念的理解
  4. Centos5上firefox的升级
  5. iOS 时间选择器封装(含三种模式)
  6. Crystal Report 加载模板报错 无法在c++ 堆栈中打开由jrc 引擎处理的文档
  7. Go Pro 半小时上手指南
  8. grep的常用命令语法
  9. Silverlight开发中遇到的几个小问题
  10. Markdown介绍