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

简介:  在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。

 在数据分析之前,我们通常需要先将数据标准化(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范数等,具体怎么使用,要根据数据集的特征来选择。


原文发布时间为:2013-09-10


本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号



相关文章
|
10月前
|
敏捷开发 监控 数据可视化
团队协作新方法:任务故事墙如何优化项目进度管理?
任务总是卡壳、沟通不畅?试试任务故事墙!可视化管理让团队协作更流畅,高效解决项目瓶颈,快速提升效率!
283 2
团队协作新方法:任务故事墙如何优化项目进度管理?
|
12月前
|
机器学习/深度学习 PyTorch 调度
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
在深度学习中,学习率作为关键超参数对模型收敛速度和性能至关重要。传统方法采用统一学习率,但研究表明为不同层设置差异化学习率能显著提升性能。本文探讨了这一策略的理论基础及PyTorch实现方法,包括模型定义、参数分组、优化器配置及训练流程。通过示例展示了如何为ResNet18设置不同层的学习率,并介绍了渐进式解冻和层适应学习率等高级技巧,帮助研究者更好地优化模型训练。
772 4
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
|
10月前
|
关系型数据库 Linux API
小白如何免费建站?
本文给大家推荐一套免费建站系统(PageAdmin)给大家,它将为您提供简单易用的工具和模板,帮助迅速搭建自己的网站。PageAdmin CMS建站系统是一套使用率极高的免费建站系统,开发时间长,提供丰富的功能插件,多主题的网站模版,尤其适合政务单位、学校单位、企业业务网站和个人网站,后台提供了一个强大的内容管理系统,易于操作的编辑器,从而轻松添加和编辑内容,及发布信息。PageAdmin CMS能满足基本的建站需求,精致的模版、高质量的建站后台,能帮助用户快速建站,获得更多精准流量。
224 5
|
传感器 PyTorch 数据处理
流式数据处理:DataLoader 在实时数据流中的作用
【8月更文第29天】在许多现代应用中,数据不再是以静态文件的形式存在,而是以持续生成的流形式出现。例如,传感器数据、网络日志、社交媒体更新等都是典型的实时数据流。对于这些动态变化的数据,传统的批处理方式可能无法满足低延迟和高吞吐量的要求。因此,开发能够处理实时数据流的系统变得尤为重要。
705 1
|
10月前
|
安全 网络安全 网络架构
私有IP地址详解:概念、分类与应用
私有IP地址详解:概念、分类与应用
801 0
|
11月前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
人工智能 自然语言处理 供应链
当AI蔚然成风,新锐品牌有棵树走出“智能”发展新天地
当AI蔚然成风,新锐品牌有棵树走出“智能”发展新天地
270 0
|
前端开发 数据可视化 Dubbo
深入解析 Axios 取消请求:2 种方法助你掌握控制权
在前端开发中,网络请求是非常常见的操作。而有时候,我们可能需要在发送请求后取消它,比如用户在请求还未完成时离开了当前页面或者执行了其他操作,本文将介绍如何在使用 Axios 发送请求时取消这些请求。
深入解析 Axios 取消请求:2 种方法助你掌握控制权
|
机器学习/深度学习 人工智能 自然语言处理
Transformer面试题总结101道
Transformer面试题总结101道
1783 0
|
5G 索引
带你读《5G 系统技术原理与实现》——3.4 5G SSB
带你读《5G 系统技术原理与实现》——3.4 5G SSB
带你读《5G 系统技术原理与实现》——3.4 5G SSB