数据挖掘之3种数据归一化方法及代码实现
学习数据挖掘、机器学习的同学们应该经常碰到数据归一化(也称标准化),数据的不同特征种类(评价指标)的取值范围差别可能很大,如果不做处理会影响数据分析的结果。因此需要把数据进行标准化处理,将数据进行比例缩放,以消除不同特征间量纲和取值范围差异带来的影响。
数据归一化处理对基于距离的数据挖掘算法尤为重要。下面就简要介绍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种数据归一化方法及代码实现相关推荐
- Hbase表两种数据备份方法-导入和导出示例
Hbase表两种数据备份方法-导入和导出示例 本文将提供两种备份方法 -- 1) 基于Hbase提供的类对hbase中某张表进行备份 2) 基于Hbase snapshot数据快速备份方法 场合:由于 ...
- 换新NAS不用愁,3种数据迁移方法教你轻松学会
NAS 虽然一台能用很久 但总免不了升级换代 如何优雅地将数据 从之前的群晖 NAS 中 迁移到全新的NAS里呢? 小编给大家准备了三个方案 大家可以根据自己的实际情况 进行选择~ 01 Hyper ...
- 数据归一化及两种常用归一化方法
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可 ...
- python数据挖掘学习01:数据归一化与标准化
数据归一化与标准化均是数据特征无量纲化处理方式,而无量纲化是指通过一个合适的变量替代,将一个涉及物理量的方程的部分或全部的单位移除,以求简化实验或者计算的目的,是科学研究中一种重要的处理思想. 无量纲 ...
- python数据预处理的方法_python中常用的九种数据预处理方法
python中常用的九种预处理方法分享 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardizat ...
- 套用这8种数据治理方法,解决90%的数据治理问题
转载/大数据构架师 前些天,有客户问我,数据治理到底该怎么做?这个问题问的我是一时语塞.因为是在客户现场,我只能根据他的实际情况,针对性的提了一个方案.不过,这客户还真的是做了一些工作,然后就开始讨论 ...
- 【Matlab系列】matlab中数据归一化方法
DATE: 2019.9.13 中秋 文章目录 1.参考 2.数据归一化 1.参考 matlab 中 将一组数据归一化到(0,1)之间 2.数据归一化 用函数mapminmax 默认的map范围是[- ...
- JSON三种数据解析方法
JSON数据现在是我们开发中用的最多的,百分之九十的数据都是通过JSON方式进行传输,那么想要学好JSON解析就要了解什么是JSON数据,怎么快速解析它从而提升开发效率. 1 什么是JSON数据? 先 ...
- AutoAugment中16种数据增强方法可视化直观展示
在AutoAugment: Learning Augmentation Strategies from Data这篇论文中,作者提到使用强化学习的方式训练Controller RNN来学习良好的数据增 ...
最新文章
- 真相!30K拿到互联网大厂offer,网友:我服了!
- python 3读取文件-python3的txt文件读写
- 全国计算机等级考试python教材-全国计算机等级考试重大改革!新增Python科目
- redis cluster 设置密码做集群时gem下client.rb文件修改
- Hadoop记录-监控几个思路
- C和C++中的默认类型
- SAP上线前数据重置方式总结
- 谨慎注意WebBrowser控件的DocumentCompleted事件
- GUI for git|SourceTree|入门基础
- jbpm 和 drools_Drools和jBPM KIE A​​pps平台
- SSH(Secure Shell) 介绍一
- 17计算机接收调剂学校,2017年计算机科学与技术学院接收非全日制硕士研究生调剂.PDF...
- gitlab CI/CD 知识点查阅
- 源码安装MySQL5.5.20
- 变量独立与不相关的区别
- 启动提示archlinux中virtualbox无法运行问题解决
- 工具记录,使用jarsigner 对APK进行签名
- 考研高等数学张宇30讲笔记——第四讲 一元函数微分学的概念与计算
- 电容式 触摸按键 原理
- 微软网盘SkyDrive简单一步获取mp3外链的方法
热门文章
- linux 监控进程是否存在并重启进程、打印进程日志
- 基于Java的音频转发服务器_javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)...
- 反序列化(先序)——split : string--vectorstring
- 【C++】37.为什么要使用Lambda表达式
- Programming Computer Vision with Python (学习笔记四)
- Java中的goto实现
- 自己动手实现一个简单的JSON解析器
- 一个提高查找速度的小技巧
- 数字图像处理:第十九章 立体视觉
- 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]