高光谱数据预处理算法——数据标准化/归一化

今天,我又开了一栏博客,这里我将主要介绍高光谱数据处理的相关算法,为广大刚刚从事高光谱的学习的同胞们提供一点点帮助,希望大家能够从中学到一些!!!

下面我将开始介绍一系列高光谱数据预处理算法,在我们采集到高光谱数据之后,其中含有很多噪音,如果直接建模的话,这些噪音会影响建模效果。因此,我们要先进行一定预处理,将其中的噪音去除。常用的预处理算法有标准化/归一化、移动平均窗口平滑、SG平滑等。今天我将先介绍比较简答的预处理算法:数据标准化/归一化。

数据的标准化/归一化(normalization就是将数据按照比例缩放、平移,使数据落入一个小的特定区间中。

数据标准化/归一化的作用是消除数据量纲的影响,使数据指标之间具有可比性,对模型的建立至关重要,下面举一个简单明了的例子:房子的价格受面积与楼层数影响,因此可以根据面积和楼层数建立一个房价的数学模型。但是,我们可以看出房子的面积数值很大,而楼层数数值很小,因此面积对模型的影响大于楼层数。因此,我们要对数据进行标准化和归一化,统一数据的范围,消除量纲的一影响。

下面我将介绍几个常用的标准化/归一化方法:

①min-max标准化:

其表达是为:

原始数据
原始数据
min-max标准化数据
min-max标准化数据

②z-score标准化:

其表达式为:

原始数据
z-score标准化数据

③logistic变换:

变换的作用是将负无穷到正无穷的数据投影到到01范围内,在支持向量机、神经网络等机器学习算法中用到,函数的一般形式为下式,.如图即为logistic函数曲线。其表达式为:

④中心化(centering):

中心化与上述变换有所区别,该过程只对数据进行了平移,没有进行缩放,一般在主成分提取前进行数据中心化,使提取的主成分能够较好的应用向量描述。其表达式为:

原始数据
中心化数据

 以上就是常用的几种数据标准化过程,下面给出其实现代码:

function [nx] = normaliz(x)

% Normalize matrix rows dividing by its norm
% [nx] = normaliz(x)
% input:x-->data to normalize
% output:nx-->normalized data
% Auther:等等等等-ande


%min-max normalized
[m n]=size(x);
min_x=min(x);
max_x=max(x);
nx=x;
for i=1:m
    nx(i,:)=(x-min_x)/(max_x-min_x);
end

%%
%z-score normalized
[m n]=size(x);
mean_x=mean(x);
var_x=var(x);
for i=1:m
    nx(i,:)=(x-mean_x)/var_x;
end

%%
%centering
[m,~]=size(x);
mx= mean(x);
nx=(x-mx(ones(m,1),:));

end

当然,除了这几种常见的标准化,还有很多其他形式,这里就不介绍了,大家用到的时候可以查相关资料~


Get better every day!!!

  • 18
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值