高光谱数据预处理之数据归一化

高光谱数据读入后进行数据归一化,以下为其他博主整理的归一化的几种方法,原文https://blog.csdn.net/qq_35166974/article/details/87981252,如有不妥请联系删帖

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

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

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

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

①min-max标准化:

其表达是为:

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

②z-score标准化:

其表达式为:

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

③logistic变换:

该变换的作用是将负无穷到正无穷的数据投影到到0、1范围内,在支持向量机、神经网络等机器学习算法中用到,函数的一般形式为下式,.如图即为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

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

  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于光谱数据的预处理,Python提供了许多强大的库和工具。以下是一些常用的预处理技术和相应的Python库: 1. 数据加载:使用NumPy或Pandas库可以方便地加载和处理光谱数据文件。你可以使用`numpy.loadtxt()`或`pandas.read_csv()`函数从文本文件读取数据。 2. 数据清洗:在加载数据后,你可能需要进行数据清洗,例如去除重复值、处理缺失值、处理异常值等。Pandas库提供了许多函数和方法来处理这些任务,如`drop_duplicates()`、`fillna()`、`dropna()`和`replace()`。 3. 数据标准化:光谱数据通常具有不同的尺度和范围,为了减小特征之间的差异,你可以对数据进行标准化或归一化。Scikit-learn库的`StandardScaler`和`MinMaxScaler`类提供了常用的标准化方法。 4. 数据平滑:光谱数据可能包含噪声或扰动,为了提高数据质量,可以使用平滑技术。其中一种常用的方法是移动平均,你可以使用SciPy库的`convolve()`函数实现。 5. 数据插值:在某些情况下,光谱数据可能存在缺失或不连续的部分,你可以使用插值方法填补这些缺失值。SciPy库的`interp1d()`函数可以进行简单的线性插值,而`scipy.interpolate`模块提供了更多插值方法。 6. 数据降维:如果光谱数据具有高维特征,你可能需要进行降维以便于分析和可视化。Scikit-learn库的`PCA`和`TSNE`类提供了常用的降维算法。 以上只是一些常见的光谱数据预处理技术和对应的Python库,你可以根据具体需求选择合适的方法和工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值