将数据归一化到任意区间范围的方法

标签: 数据归一化 归一化任意区间 归一化指定范围
879人阅读 评论(0) 收藏 举报
分类:

将数据归一化到任意区间范围的方法

   一般常见的数据归一化,是归一化到0~1,或者-1~1的区间,但在一些特殊场合下,我们需要根据实际情况归一化到其他任意区间,方法是:

    将数据归一化到[a,b]区间范围的方法:

(1)首先找到样本数据Y的最小值Min及最大值Max
(2)计算系数为:k=(b-a)/(Max-Min)
(3)得到归一化到[a,b]区间的数据:norY=a+k(Y-Min)

Matlab代码:

clc;clear all;close all;
%%
x=0:0.1:10;
y=(x-5).^2;%产生原始数据样本
figure
plot(x,y,'.-')
axis([0 10 0 26]);
grid on

%% 将数据归一化到[a,b]区间的方法
a=0.1;
b=0.5;
Ymax=max(y);%计算最大值
Ymin=min(y);%计算最小值
k=(b-a)/(Ymax-Ymin);
norY=a+k*(y-Ymin);
figure;
plot(x,norY,'.-')
axis([0 10 0 1]);
grid on

实质上,归一化的一般规范函数是:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin

参考资料http://zjh776.iteye.com/blog/1972777 

下面给出简化的归一化到任意区间的方法函数:

function [ y ] = normalization( x,ymin,ymax )
%NORMALIZATION 将数据x归一化到任意区间[ymin,ymax]范围的方法
%   输入参数x:需要被归一化的数据
%   输入参数ymin:归一化的区间[ymin,ymax]下限
%   输入参数ymax:归一化的区间[ymin,ymax]上限
%   输出参数y:归一化到区间[ymin,ymax]的数据
xmax=max(x);%计算最大值
xmin=min(x);%计算最小值
y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;
end

Matlab里有一个归一化函数normalize,对矩阵是按列归一化的:

%按列归一化,任意归一化范围
function [Array_dst]=normalize(Array_src,ymin,ymax)
[l,r]=size(Array_src);
Bound=[];
for i=1:r
    Bound(1,i)=min(Array_src(:,i));
    Bound(2,i)=max(Array_src(:,i));
    if abs(Bound(1,i)-Bound(2,i))<0.000000001
        Bound(1,i)=0;
        Bound(2,i)=1;
    end
end

[m,n]=size(Array_src);
for i=1:m
    Array_dst(i,:)=ymin + (Array_src(i,:)-Bound(1,:))./(Bound(2,:)-Bound(1,:)).*( ymax - ymin );
end




查看评论

数据标准化/归一化normalization

http://blog.csdn.net/pipisorry/article/details/52247379这里主要讲连续型特征归一化的常用方法。离散参考[数据预处理:独热编码(One-Hot En...
  • pipisorry
  • pipisorry
  • 2016-08-19 09:42:40
  • 75844

数据归一化和两种常用的归一化方法

数据归一化和两种常用的归一化方法      数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016-04-28 18:36:55
  • 45694

数据归一化处理

在机器学习中领域中的数据分析之前,通常需要将数据标准化,利用标准化后得数据进行数据分析。不同评价指标往 往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要...
  • ACdreamers
  • ACdreamers
  • 2015-03-27 01:22:46
  • 8533

数据“归一化”到指定区间

通常我们归一化到0-1,有时候我们需要归一化到其他区间,这样算一下就可以 首先找到数列的最小值m及最大值M 如果指定的区间是[a,b] 即:m-->a, M-->b 系数为:k=(b-a)/(...
  • ckwave
  • ckwave
  • 2017-02-22 19:07:22
  • 1633

将任意矩阵归一化到任意区间,和反归一化

归一化到任意区间,并反归一化,这个很常用。写了个简单的函数,留着平时备用。 %matlab code %normalization function normalized = normalize...
  • mpbchina
  • mpbchina
  • 2012-03-23 00:08:23
  • 7442

常用的数据标准化方法

数据的标准化(normalization)是将数据按照一定规则缩放,使之落入一个小的特定区间。这样去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的...
  • huangfei711
  • huangfei711
  • 2016-06-13 14:46:39
  • 16977

matlab 中 将一组数据归一化到(0,1)之间

用函数mapminmax 1 默认的map范围是[-1, 1],所以如果需要[0, 1],则按这样的格式提供参数: MappedData = mapminmax(OriginalData, 0, ...
  • gxuan
  • gxuan
  • 2013-05-29 13:58:03
  • 37122

opencv归一化函数normalize详解

opencv 2 归一化函数normalize详解 1. 归一化定义与作用     归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据...
  • qq_28713863
  • qq_28713863
  • 2017-10-12 21:03:49
  • 892

数据归一化以及Python实现方式

数据归一化简介以及Python实现方式
  • LENOVOJXN
  • LENOVOJXN
  • 2016-12-20 20:21:09
  • 13302

几种归一化方法(Normalization Method)python实现

数据归一化问题是数据挖掘中特征向量表达时
  • kryolith
  • kryolith
  • 2014-10-04 02:07:31
  • 44212
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 68万+
    积分: 6880
    排名: 4253
    博客专栏
    最新评论