资源简介
用于特征降维,鉴别分析等多元数据分析的fisher鉴别分析(FLDA)Matlab代码实现。
代码片段和文件信息
% Fisherface for Recognition
function [ ProjectedTrainSamplesProjectedTestSamples ]=LDA_zq(TrainSamples TestSamplesClassNum)
c = ClassNum; % 类别数
ni = 2*size(TrainSamples2)/c; % 每类样本数
smalle = 10.^(-5); % 一个小数字阈值
nitr = ni/2; % 每类一半样本作为训练样本
nite = ni - nitr; % 其余一般作为测试样本
trsize = nitr*c; % 训练样本总数 N
tesize = size(TestSamples2); % 测试样本总数
x = TrainSamples;
xm = mean(x2);
x = x - repmat(xm1trsize); % 训练样本及中心化
%%PCA
[w e explain] = pcacov(x‘*x);
r = length(find(e>smalle));
w = w(:1:r); e = e(1:r); w = x*w*diag(1./sqrt(e)); % SVD方法求解PCA
x0 = w‘*x; % 将训练样本投影到PCA子空间 这里w 即为W_pca
xt0 = w‘*(TestSamples - repmat(xm1tesize)); % 同样地,将测试样本投影到PCA子空间
clear xm; clear w; clear x;
dim = trsize-c; % Fisherface方法要求将PCA子空间的维数取为N-c
x = x0(1:dim:);
xm = mean(x2);
Hw = []; mi = [];
%LDA
for i = 1:c
xi = x(:(i-1)*nitr+1:i*nitr); mi(:i) = mean(xi2); Hw = [Hwxi-repmat(mi(:i)1nitr)]; clear xi;
end
Sw = Hw*Hw‘; % 计算类内散布矩阵Sw
clear Hw;
Hb = mi - repmat(xm1c); Sb = nitr*Hb*Hb‘; clear Hb; % 计算类间散布矩阵Sb
[w e] = eig(inv(Sw)*Sb); % 求解 Sb * w = lamda * Sw * w
e = diag(e); re = find(imag(e)==0 & real(e)>smalle); e = e(re); w = w(:re);
[e2 id] = sort(e); w2 = w(:id); e = flipud(e2); w = fliplr(w2); clear e2; clear w2;
r = length(e); % r 是最终LDA子空间的维数,一般情况下等于c-1
xproj0 = w‘*x; % 将训练样本进一步降维到LDA子空间,这里w 即为W_lda
xtproj0 = w‘*xt0(1:dim:); % 同样地,将测试样本进一步降维到同样的LDA子空间
prj = r; % Dimensionality of the final subspace
xproj = xproj0(1:prj:); % 最终被降维后的训练样本
xtproj = xtproj0(1:prj:); % 最终被降维后的测试样本
ProjectedTrainSamples=xproj;
ProjectedTestSamples=xtproj;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1889 2010-03-25 15:08 LDA_zq.m
----------- --------- ---------- ----- ----
1889 1
- 上一篇:配电网前推回代潮流算法
- 下一篇:matlab有限元程序
相关资源
- 降维技术matlab工具箱
- 1维的简单LDA和2维LDA人脸识别的matla
- LDA代码实现Matlab版
- 模式识别4个实验(matlab)
- LDA与PCA的讲解与matlab演示
- 二维LDA的matlab源代码
- PCA LDA LLE各种降维方法Matlab工具箱
- PLDA模型训练matlab代码
- Fisherface的原始论文和完整的源代码
- matlab实现LDA
- Fisher二元线性判别 Matlab源码
- LDA详解及其matlab代码
- 模式识别PCA NMF LDA GMM算法代码
- fisher分类器 matlab实现
- LDA人脸识别matlab code
- LDA散度矩阵的计算
- 用LDA和PCA模式识别方法对人脸特征进
- KFDA matlab程序
- LDA人脸识别MATLAB含k近邻算法
- LDA算法MATLAB代码及其结果截图
- 基于Fisher分类实现手写数字识别(M
- fisher 分类
- LDA算法的matlab源代码
- FIsher判别给XOR问题分类
- 线性判别分析matlab代码及pdf 讲解
- 基于Fisher准则实现手写数字识别matl
- Fisher判别matlab实现
- 基于fisher的线性判别分析(LDA)人脸
- Fisher线性判别实验matlab代码
- Matlab线性判别分析.zip
评论
共有 条评论