数据挖掘过程中:数据预处理

原文:http://www.itongji.cn/article/0Q926052013.html

数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。
数据的标准化过程也是归一化的过程。

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

数据归一化的目的是为了把不同来源的数据统一到一个参考系下,这样比较起来才有意义。

1 定义

归一化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。

2 为什么要用归一化呢?

首先先说一个概念,叫做奇异样本数据,所谓奇异样本数据数据指的是相对于其他输入样本特别大或特别小的样本矢量。

下面举例:

m=[0.11 0.15 0.32 0.45 30;

0.13 0.24 0.27 0.25 45];

其中的第五列数据相对于其他4列数据就可以成为奇异样本数据(下面所说的网络均值bp)。奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛,所以对于训练样本存在奇异样本数据的数据集在训练之前,最好先进形归一化,若不存在奇异样本数据,则不需要事先归一化。

3 归一化方法

主要有如下几种,供大家参考:(by james)

(1)线性函数转换,表达式如下:

y=(x-MinValue)/(MaxValue-MinValue)

说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。

(2)对数函数转换,表达式如下:

y=log10(x)

说明:以10为底的对数函数转换。

进行Log分析时,会将原本绝对化的时间序列归一化到某个基准时刻,形成相对时间序列,方便排查。

通过以10为底的log函数转换的方法同样可以实现归一下,具体方法也可以如下:

看了下网上很多介绍都是x‘=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以    log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

(3)反余切函数转换,表达式如下:

y=atan(x)*2/PI

归一化是为了加快训练网络的收敛性,可以不进行归一化处理

(4)z-score 标准化(zero-mean normalization)

也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

4 在matlab里面,用于归一化的方法共有三种:

(1)premnmx、postmnmx、tramnmx

(2)prestd、poststd、trastd

(3)是用matlab语言自己编程。

premnmx指的是归一到[-1 1];prestd归一到单位方差和零均值;关于自己编程一般是归一到[0.1  0.9] 。

5 注意
需要说明的事并不是任何问题都必须事先把原始数据进行规范化,也就是数据规范化这一步并不是必须要做的,要具体问题具体看待,测试表明有时候规范化后的预测准确率比没有规范化的预测准确率低很多.就最大最小值法而言,当你用这种方式将原始数据规范化后,事实上意味着你承认了一个假设就是测试数据集的每一模式的所有特征分量的最大值(最小值)不会大于(小于)训练数据集的每一模式的所有特征分量的最大值(最小值),但这条假设显然过于强,实际情况并不一定会这样.使用平均数方差法也会有同样类似的问题.故数据规范化这一步并不是必须要做的,要具体问题具体看待.

归一化首先在维数非常多的时候,可以防止某一维或某几维对数据影响过大,其次可以程序可以运行更快。方法很多,min-max,z-score,p范数等,具体怎么使用,要根据数据集的特征来选择。

(责任编辑:黑阳)

时间: 2024-08-25 09:47:51

数据挖掘过程中:数据预处理的相关文章

Python初探——sklearn库中数据预处理函数fit_transform()和transform()的区别

敲<Python机器学习及实践>上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下: # 从sklearn.preprocessing导入StandardScaler from sklearn.preprocessing import StandardScaler # 标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导 ss = Standard

解决上滑过程中数据重复的问题

问题:最近在做微信小程序的某个项目,手机屏幕上,手指上滑加载更多数据的时候,老是出现重复的数据. 解决方案:状态锁和函数节流. 原理:在向服务器请求数据的时候和接收返回的数据,改变某个变量的状态以及延迟函数的执行. 具体代码: var moreStatus=false; var timeoutId=null; performProcessing: function(){ if(!moreStatus){ moreStatus=true; // 开始向服务器请求数据代码,成功向服务器请求数据之后,

大数据预处理技术

一.大数据预处理的几个步骤 1.数据预处理 2.数据清洗 3.数据集成 4.数据归约 5.数据变换 6.数据离散化 7.大数据预处理 二.数据预处理 现实中的数据大多是“脏”数据: ①不完整 缺少属性值或仅仅包含聚集数据 ②含噪声 包含错误或存在偏离期望的离群值 比如:salary=“-10”,明显是错误数据 ③不一致 用于商品分类的部门编码存在差异 比如age=“42”Birthday=“03/07/1997” 而我们在使用数据过程中对数据有如下要求: 一致性.准确性.完整性.时效性.可信性.

《数据挖掘概念与技术》--第三章 数据预处理

一.数据预处理 1.数据如果能够满足其应用的要求,那么他是高质量的. 数据质量涉及许多因素:准确性.完整性.一致性.时效性.可信性.可解释性. 2.数据预处理的主要任务:数据清洗.数据集成.数据规约.数据变换. 二.数据清理:试图填充缺失值,光滑噪声.识别利群点.纠正数据中的不一致. 1.缺失值的处理: 1)忽略元组:缺少类标号时通常这么做.但是忽略的元组其他属性也不能用,即便是有用的. 2)人工填写:该方法很费事费时,数据集很大.缺失值很多时可能行不通. 3)使用一个全局常量填充缺失值:将缺失

数据挖掘笔记(三)—数据预处理

1.原始数据存在的几个问题:不一致:重复:含噪声:维度高. 2.数据预处理包含数据清洗.数据集成.数据变换和数据归约几种方法. 3.数据挖掘中使用的数据的原则 应该是从原始数据中选取合适的属性作为数据挖掘属性,这个选取过程应参考的原则是:尽可能赋予属性名和属性值明确的含义:统一多数据源的属性值编码:去除惟一属性:去除重复性:去除可忽略字段:合理选择关联字段. 4.处理空缺值的方法:忽略该记录:去掉属性:手工填写空缺值:使用默认值:使用属性平均值:使用同类样本平均值:预测最可能的值. 5.噪声数据

数据挖掘在大数据中的应用综述

*** (上海海事大学 上海 201306) 摘 要: 面对大规模多源异构的数据,数据挖掘的方法不断的得到改善与发展,同时对于数据挖掘体系的完善也提出了新的挑战.针对当前数据挖掘在大数据方面的应用,本文从数据挖掘的各个阶段进行了方法论的总结及应用,主要包括数据准备的方法.数据探索的方法.关联规则方法.数据回归方法.数据分类方法.数据聚类方法.数据预测方法和数据诊断方法.最后还指出类数据挖掘在鲁棒性表达方面的进一步研究. 关键词: 数据挖掘;方法论;大数据;鲁棒性 Application of D

数据挖掘概念与技术读书笔记(三)数据预处理

3.1 数据预处理 数据质量的三个要素:准确性.完整性和一致性. 3.1.2 数据预处理的主要任务 数据清理:填写缺失的值,光滑噪声数据,识别或删除离群点,并解决不一致性来”清理“数据. 数据集成: 数据归约: 3.2 数据清理 3.2.1 缺失值 1.忽略元组 2.人工填写缺失值 3.使用一个全局常量填充缺失值 4.使用属性的中心度量填充缺失值:中位数 5.使用与给定元组属同一类的所有样本的属性均值或中位数 6.使用最可能的值填充缺失值:回归/贝叶斯/决策树 第6种是最流行的策略 3.2.2

借助 SIMD 数据布局模板和数据预处理提高 SIMD 在动画中的使用效率

原文链接 简介 为发挥 SIMD1 的最大作用,除了对其进行矢量化处理2外,我们还需作出其他努力.可以尝试为循环添加 #pragma omp simd3,查看编译器是否成功进行矢量化,如果性能有所提升,则达到满意状态. 然而,可能性能根本不会提升,甚至还会降低. 无论处于何种情况,为了最大限度发挥 SIMD 执行的优势并实现性能提升,通常需要重新设计算法和数据布局,以便生成的 SIMD 代码尽可能高效. 另外还可收到额外的效果,即标量(非矢量化)版代码会表现得更好. 本文将通过一个 3D 动画算

数据挖掘——数据预处理

数据预处理(Data Preprocess):通过采用数据清理.数据集成与变换以及数据规约等方法对数据预先进行处理,处理后的数据用于数据挖掘. 在当前社会中,由于大数据.数据源不唯一等原因使得在真实数据库存放的数据存在噪声.缺失和不一致的问题.基于数据的信息挖掘在数据不能保证的情况下,挖掘得到的信息也很难具有说服力.(地基都没夯实就去建造高楼大厦谁敢住?)为了解决实际中遇到的这些问题,数据预处理技术顺势产生.常见的几种数据预处理的方式主要有: 1.数据清洗.主要用于去除噪声数据(包括错误数据和离