学习数据挖掘、机器学习的同学们应该经常碰到数据归一化(也称标准化),数据的不同特征种类(评价指标)的取值范围差别可能很大,如果不做处理会影响数据分析的结果。因此需要把数据进行标准化处理,将数据进行比例缩放,以消除不同特征间量纲和取值范围差异带来的影响。

数据归一化处理对基于距离的数据挖掘算法尤为重要。下面就简要介绍3种常用的数据归一化方法。

1、最大最小归一化

该方法也称离差标准化,其核心思想是把原始数据的数值线性变换到[0,1]之间,公式如下:

其中,max、min分别为样本数据的最大值、最小值。

优点:保留源数据存在的关系,消除取值范围最简单的方法;

缺点:极易受个别离群值影响,如果数据集中某个数值很大,其他各值归一化后会接近0;此外,如果遇到超出[min,max]的值,会出现错误。

2、零-均值归一化

也称标准差归一化,顾名思义,经处理的数据的均值为0,标准差为1,公式如下:

其中,、σ分别为源数据的均值、标准差。

该方法被广泛使用,但均值和标准差也一样易受离群值影响,因此需要进行修正,比如:可用中位数取代均值进行上述计算。

3、小数定标规范化

该方法是通过移动特征数据的小数位数,将其转换到[-1,1]之间,移动的小数位由特征值绝对值的最大值决定,公式如下:

下面来看看3种方法的代码实现:

%读入数据
data='../input/normalizationData.xls';
[data, ~]=xlsread(data);%方法一:最大最小归一化
data_scatter = mapminmax(data',0,1);  %把数据进行转置
data_scatter = data_scatter';%方法二:零-均值归一化
data_zscore = zscore(data);%方法三:小数定标归一化
max_ = max(abs(data));
max_ = power(10, ceil(log10(max_)));
cols = size(max_, 2);
data_dot = data;
for i = 1:colsdata_dot(:,i) = data(:,i)/max_(1,i);
end%打印输出结果
disp('源数据如下:');
disp(data);disp('最大最小归一化结果如下:');
disp(data_scatter);disp('零-均值归一化结果如下:');
disp(data_zscore);disp('小数定标归一化结果如下:');
disp(data_dot);

数据挖掘之3种数据归一化方法及代码实现相关推荐

  1. Hbase表两种数据备份方法-导入和导出示例

    Hbase表两种数据备份方法-导入和导出示例 本文将提供两种备份方法 -- 1) 基于Hbase提供的类对hbase中某张表进行备份 2) 基于Hbase snapshot数据快速备份方法 场合:由于 ...

  2. 换新NAS不用愁,3种数据迁移方法教你轻松学会

    NAS 虽然一台能用很久 但总免不了升级换代 如何优雅地将数据 从之前的群晖 NAS 中 迁移到全新的NAS里呢? 小编给大家准备了三个方案 大家可以根据自己的实际情况 进行选择~ 01 Hyper ...

  3. 数据归一化及两种常用归一化方法

    数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可 ...

  4. python数据挖掘学习01:数据归一化与标准化

    数据归一化与标准化均是数据特征无量纲化处理方式,而无量纲化是指通过一个合适的变量替代,将一个涉及物理量的方程的部分或全部的单位移除,以求简化实验或者计算的目的,是科学研究中一种重要的处理思想. 无量纲 ...

  5. python数据预处理的方法_python中常用的九种数据预处理方法

    python中常用的九种预处理方法分享 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardizat ...

  6. 套用这8种数据治理方法,解决90%的数据治理问题

    转载/大数据构架师 前些天,有客户问我,数据治理到底该怎么做?这个问题问的我是一时语塞.因为是在客户现场,我只能根据他的实际情况,针对性的提了一个方案.不过,这客户还真的是做了一些工作,然后就开始讨论 ...

  7. 【Matlab系列】matlab中数据归一化方法

    DATE: 2019.9.13 中秋 文章目录 1.参考 2.数据归一化 1.参考 matlab 中 将一组数据归一化到(0,1)之间 2.数据归一化 用函数mapminmax 默认的map范围是[- ...

  8. JSON三种数据解析方法

    JSON数据现在是我们开发中用的最多的,百分之九十的数据都是通过JSON方式进行传输,那么想要学好JSON解析就要了解什么是JSON数据,怎么快速解析它从而提升开发效率. 1 什么是JSON数据? 先 ...

  9. AutoAugment中16种数据增强方法可视化直观展示

    在AutoAugment: Learning Augmentation Strategies from Data这篇论文中,作者提到使用强化学习的方式训练Controller RNN来学习良好的数据增 ...

最新文章

  1. 真相!30K拿到互联网大厂offer,网友:我服了!
  2. python 3读取文件-python3的txt文件读写
  3. 全国计算机等级考试python教材-全国计算机等级考试重大改革!新增Python科目
  4. redis cluster 设置密码做集群时gem下client.rb文件修改
  5. Hadoop记录-监控几个思路
  6. C和C++中的默认类型
  7. SAP上线前数据重置方式总结
  8. 谨慎注意WebBrowser控件的DocumentCompleted事件
  9. GUI for git|SourceTree|入门基础
  10. jbpm 和 drools_Drools和jBPM KIE A​​pps平台
  11. SSH(Secure Shell) 介绍一
  12. 17计算机接收调剂学校,2017年计算机科学与技术学院接收非全日制硕士研究生调剂.PDF...
  13. gitlab CI/CD 知识点查阅
  14. 源码安装MySQL5.5.20
  15. 变量独立与不相关的区别
  16. 启动提示archlinux中virtualbox无法运行问题解决
  17. 工具记录,使用jarsigner 对APK进行签名
  18. 考研高等数学张宇30讲笔记——第四讲 一元函数微分学的概念与计算
  19. 电容式 触摸按键 原理
  20. 微软网盘SkyDrive简单一步获取mp3外链的方法

热门文章

  1. linux 监控进程是否存在并重启进程、打印进程日志
  2. 基于Java的音频转发服务器_javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)...
  3. 反序列化(先序)——split : string--vectorstring
  4. 【C++】37.为什么要使用Lambda表达式
  5. Programming Computer Vision with Python (学习笔记四)
  6. Java中的goto实现
  7. 自己动手实现一个简单的JSON解析器
  8. 一个提高查找速度的小技巧
  9. 数字图像处理:第十九章 立体视觉
  10. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]