离散K-L变换
来源:互联网 发布:淘宝卖的猛犸象牙真伪 编辑:程序博客网 时间:2024/06/13 21:04
从
引入
设一个输入向量x。K-L变换的目的就是对原向量进行变换,组成新向量y。该新向量的特征数比x少,各特征间不相关,因此关键就是要找到这样的变换矩阵。
优缺点
优点:
1. 变换在均方误差最小的情况下使新样本集逼近原样本集分布,既压缩了维数又保留了类别鉴别信息。
2. 变换后新模式向量各分量相对总体均值的方差等于原样本集总体自相关矩阵的较大的特征值,表明变换突出了模式类之间的差异性。
3. 变换后样本各分量互不相关,即消除了原先特征之间的相关性。
缺点:
1. 类别越多,效果越差。
2. 需要通过足够多的样本估计样本集的协方差矩阵和其它类型的散布矩阵。样本数不足时,矩阵的估计会十分粗糙。
K-L变换推导过程
为了找到满足条件的变换矩阵
因为新向量
又从自相关矩阵的定义,有:
而
其中
由此可以确定变换矩阵A,它的列向量就是特征向量,这些特征向量之间是相互正交的。
利用变换矩阵
具体步骤
设
step1:求样本集
step2:求
step3:计算
step4:对
例子
直接从百度文库https://wenku.baidu.com/view/0cb176f4eefdc8d377ee3250.html截的图:
MATLAB实现
实现K-L变换的核心就是求解变换矩阵,最简单的方法就是调用pcacov函数(当K-L变换矩阵为协方差矩阵时,等同于PCA),这里就不再细说了,如果要自己实现的话我这里有一个版本:
clc;dim = 3; %变换后维数v = randn(8,5); %样本label=[1 1 2 2 3 3 4 4]; %每个样本对应的类别[y,x]=size(v); LabelRange=max(label)-min(label)+1;%样本种类LabelCount=zeros(1,LabelRange);%每种样本个数LabelP=zeros(1,LabelRange);%概率for i=1:y %计算样本种类数 LabelCount(label(i))=LabelCount(label(i))+1; endfor j=1:LabelRange %计算概率 LabelP(j)=LabelCount(j)/y;ends = zeros(1,x);m = zeros(1,x);for i=1:LabelRange for j=1:LabelCount(label(i)) s = s + v((i-1)*LabelCount(label(i))+j,:); end m = m+1/LabelCount(label(i))*s;endfor i=1:y v(i,:) = v(i,:) - m;endr = zeros(x,x);t1 = zeros(x,x);% t2 = zeros(x,x);for i=1:LabelRange for j=1:LabelCount(label(i)) t1 = v((i-1)*LabelCount(label(i))+j,:)'*v((i-1)*LabelCount(label(i))+j,:); end r = r+1/LabelCount(label(i))*t1*LabelP(i);end%求特征向量[vv,d]=eig(r) %求矩阵r的全部特征值,构成对角阵d,并求r的特征向量构成vv的列向量。dia = d;index = zeros(1,dim);for i=1:dim [x1 y1]=find(dia==max(max(dia))); index(1,i) = x1; dia(x1,y1) = -inf;endQ = zeros(x,dim);for i=1:3 %计算变换矩阵Q Q(:,i) = 1/sqrt(sum(vv(:,index(i)).^2)).*vv(:,index(i));end
阅读全文
1 0
- 离散K-L变换
- K-L变换
- k-l变换原理
- K-L变换
- 特征变换(5)K-L变换
- 特征选择(三)-K-L变换
- K-L变换和PCA的区别
- 特征选择(三)-K-L变换
- 特征选择(三)- K-L变换
- K-L变换实现图像压缩
- 判别函数、贝叶斯、K—L变换、句法模式识别
- 基于K-L变换的人脸识别的MATLAB实现
- 特征提取——主成分分析PCA(K-L变换)及几何解释
- 模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA
- 深度解析K-L变换 及其 在特征识别中的应用
- 模式识别(5)K-L变换和PCA在人脸识别中的应用
- 离散余弦变换 DCT
- 离散余弦变换
- IMX6之openwrt自动挂载U盘
- 李航 统计学习方法 第五章 决策树 课后 习题 答案
- MFC取随机数
- Ubuntu 16.04.2安装zabbix-server3.2
- H5 10
- 离散K-L变换
- libmodbus 手册翻译
- JAVA SE之基本数据类型
- Android Studio GitHub上传失败[已解决]
- 双循环链表的创建以及插入删除等操作
- 处理机调度算法
- bzoj1105: [POI2007]石头花园SKA
- H5 12
- IMX6之openwrt使用dnsmasq实现广告过滤