MATLAB KL变换

本文详细介绍了KL变换的步骤,包括求协方差矩阵、特征值提取和构建变换矩阵,用于数据集的降维和二维可视化。通过选取较大特征值进行分类,结果显示去相关性良好,适用于提升分类效果。同时,文章也探讨了较小特征值的影响和选择原则。
摘要由CSDN通过智能技术生成

1. 原理      

KL变换步骤:

1.求样本X的协方差矩阵R

2. R的特征值λ。选取前d个较大的特征值。

3.计算d个特征值对应的特征向量,归一化后构成变换矩阵U

4.{X}中每一个X进行K-L变换,得到变换后向量Y=U’ * Xd维向量Y就是替代n维向量X进行分类的模式向量。

基于K-L变换分类阈值选择:

2. 过程

2.1 利用KL变换对样本集变换并在二维平面进行绘制

导入两类数据集(前文中同样的数据集)并进行合并,分别求两类数据集的均值以及总体的协方差矩阵,然后通过matlab函数eig求取协方差矩阵的特征值及特征向量:

结果如下:

图1 特征值和特征向量

选择较大的特征值以及对应的特征向量作为变换矩阵,然后对数据集中的每一行数据进行变换,变换后数据将会降为一维,为了在二维平面绘制可以构造为二维数据,投影不变:

结果如下:

图2 特征值、特征向量

图3 变换前后数据分布

从图中可以看出原始分布(右下角)经过KL转换后产生新的特征方向(左上角)

2.2 利用上述主成分进行分类

二维数据通过kl变换转换为一维数据后可以利用变换后的均值作为分类阈值,具体做法为计算出每一个数据的判别函数,以均值y0为阈值进行分类,最后计算准确率:

结果如下:

图4 分类结果

图5 分类阈值及分类准确率

2.3 选取较小的特征值进行对比

上述实验选取的特征值为较大的,接下来对于较小的特征值进行实验观察,结果如下:

图6 KL变换

图7 分类结果

图8 分类阈值及准确率

可以看出效果不佳,可以验证理论

3. 结果与分析

本文对于原始数据集进行KL变换可使得数据集从二维降低至一维,在分类的过程中,为了保证类间的样本投影后尽可能远离,应该选择特征值较大的特征向量作为投影方向,以使得方差尽可能大,突出了模式类之间的差异性,提升分类效果,且变换后样本各分量互不相关,即消除了原先特征之间的相关性。

实验的关键就是得到数据集的协方差矩阵并计算出特征值及特征向量,而使用matlab中的eig函数可以直接求出对应的结果。可以与之前文章中介绍的不同分类算法进行对比。K-L变换的去相关性好,可用于数据压缩和图像旋转。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deleteeee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值