数据白化
来源:互联网 发布:成龙知名度知乎 编辑:程序博客网 时间:2024/04/30 07:01
白化的原理:
Rx
很明显, Rx
Ry
上式的含义是:y的各分量是不相关的,即 E[yi
Rx
Q
B = Σ
Ry
因此,通过矩阵 B
E[yyT
图像数据的白化代码(matlab):
该pca函数接口形式为:
function [Y,V,E,D] = pca(X)
% do PCA on image patches
% INPUT variables:
% X
% OUTPUT variables:
% Y
% V
% E
% D
%去除直流成分
X = X-ones(size(X,1),1)*mean(X);
%其中r=size(A,1)该语句返回的时矩阵A的行数,c=size(A,2) 该语句返回的时矩阵A的列%数
% Calculate the eigenvalues and eigenvectors of the new covariance matrix.
covarianceMatrix = X*X'/size(X,2); % 求出其协方差矩阵
%E是特征向量构成,它的每一列是特征向量,D是特征值构成的对角矩阵
%这些特征值和特征向量都没有经过排序
[E, D] = eig(covarianceMatrix);
% Sort the eigenvalues
% 因为sort函数是升序排列,而需要的是降序排列,所以先取负号,diag(a)是取出a的对角元素构成
% 一个列向量,这里的dummy是降序排列后的向量,order是其排列顺序
[dummy,order] = sort(diag(-D));
E = E(:,order);%将特征向量按照特征值大小进行降序排列,每一列是一个特征向量
Y = E'*X;
d = diag(D); %d是一个列向量
%dsqrtinv是列向量,特征值开根号后取倒,仍然是与特征值有关的列向量
%其实就是求开根号后的逆矩阵
dsqrtinv = real(d.^(-0.5));
Dsqrtinv = diag(dsqrtinv(order));%是一个对角矩阵,矩阵中的元素时按降序排列好了的特征值(经过取根号倒后)
D = diag(d(order));%D是一个对角矩阵,其对角元素由特征值从大到小构成
V = Dsqrtinv*E';%特征值矩阵乘以特征向量矩阵
end
1.
求X的协方差矩阵,如下式:
C = X * X’;
对C进行奇异值分解,如下式:
C = U*D*U’;
式中D为特征值的对角阵,U为C的奇异值分解中的左奇异阵,U的各个分量u1,u2,...,um为C的特征向量。
观测数据阵X的白化过程如下:
Z = M * X;
上式中的M为白化矩阵,M = inv(sqrt(D)) * U',其中D极为X的协方差矩阵C的奇异值分解中的特征根对角阵。Z即为白化后的数据阵。
- 数据白化
- 数据白化
- 数据白化
- 数据白化预处理
- 数据白化预处理
- 二维数据的白化处理
- 数据预处理之白化-Whitening
- 白化
- 白化
- 白化
- 白化
- 白化
- 数据标准化与PCA白化原理探索
- 数据标准化与PCA白化原理探索
- 【转】PCA和白化练习之处理二维数据
- ①极好的PCA帖子&白化;②数据降维
- PCA 白化 ZCA白化
- 白化(Whitening) PCA白化 ZCA白化
- CSDN我来了
- 运算^
- SQL语言的分类
- 解决ADB server didn't ACK方法
- notepad++【001】开启代码提示和括号补齐功能
- 数据白化
- VM9中安装vmware tools来实现Ubuntu12.04与Win7的文件拖拽
- sys.argv[]用法
- IEEE浮点数表示--规格化/非规格化/无穷大/NaN
- 秸秆等变成生物质颗粒燃料
- 【Anroid界面实现】WindowManager类使用详解——用户首次打开APP的使用教学蒙板效果实现
- Python入门
- 推荐!国外程序员整理的 C++ 资源大全
- 在命令行中通过adb shell am broadcast发送广播通知