ENVI图像处理(4):主分量变换(主成分分析、PCA) |
您所在的位置:网站首页 › 高光谱图像波段选择技术原理 › ENVI图像处理(4):主分量变换(主成分分析、PCA) |
PCA
PCA主成分分析基本概念协方差矩阵特征值和特征向量
PCA思想优缺点PCA基本步骤
PCA-code(python)ENVI的PCA操作
PCA主成分分析
特征变换的目的在于使地物集中在几个主要的波谱段上,在保证信息容量最大化的前提下压缩参与分类的数据量,以提高分类速度。 此处主要介绍主分量变换,也叫做主成分分析(Principal component analysis,PCA) 基本概念首先来介绍一些基本概念 协方差矩阵方差:针对一维集合,反映了其离散程度。是协方差的一种特殊情况 特征值和特征向量:由协方差矩阵的特征值和特征向量 PCA思想在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴和第一个坐标轴正交且具有最大方差的方向。该特征一直重复,重复次数为原始数据中特征的数目,我们会发现,大部分方差都包含在最前面的几个新坐标轴中。因此,我们可以忽略余下的坐标轴,即对数据进行了降维处理 方差最大:在此方向上所含的有关原始信息样品间的差异信息是最多的 优缺点优点:降低数据的复杂性,识别最重要的多个特征 缺点:不一定需要,且可能损失有用信息 PCA基本步骤PCA算法的基本步骤: 去中心化:让所有的点都到坐标原点附件的位置,即每一位特征减去各自的平均值计算协方差矩阵X计算协方差矩阵的特征值和特征向量。特征值表示的是两个特征之间的相关性对特征值进行排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为行向量组成特征向量矩阵P。将数据转换到k个特征向量构建的新空间中,即Y=PX。对数据进行旋转使得符合最大方差 PCA-code(python)来看看相关的python代码(C++用opencv可能好一点,直接用数组太难受了) def pac(data_mat, N): # 去中心化 mean_val = mean(data_mat) mean_removed = data_mat - mean_val # 计算协方差矩阵X cov_mat = cov(mean_removed, rowvar=0) # 计算协方差矩阵的特征值和特征向量 eig_val, eig_vector = linalg.eig(mat(cov_mat)) # 对特征值进行排序 eig_val_ind = argsort(eig_val) eig_val_ind = eig_val_ind[: -(N+1): -1] # 对排序后的特征值对应的特征向量 red_eig_val = eig_vector[, :eig_val_ind] # 新矩阵 low_data_mat = mean_removed * red_eig_val return low_data_mat ENVI的PCA操作toolbox中搜索PCA |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |