上一讲说到,各个特征(各个分量)对分类来说,其重要性当然是不同的。

舍去不重要的分量,这就是降维。

聚类变换觉得:重要的分量就是能让变换后类内距离小的分量。

类内距离小,意味着抱团抱得紧。

可是,抱团抱得紧,真的就一定easy分类么?

如图1所看到的,依据聚类变换的原则,我们要留下方差小的分量,把方差大(波动大)的分量丢掉,所以两个椭圆都要向y轴投影,这样悲剧了,两个重叠在一起,根本分不开了。而还有一种情况却能够这么做,把方差大的分量丢掉,于是向x轴投影,非常顺利就能分开了。因此,聚类变换并非每次都能成功的。

图1

摧枯拉朽的K-L变换

K-L变换是理论上“最好”的变换:是均方误差(MSE,MeanSquare Error)意义下的最佳变换,它在数据压缩技术中占有重要地位。

聚类变换另一个问题是,必须一类一类地处理,把每类分别变换,让它们各自抱团。

K-L变换要把全部的类别放在一起变换,希望通过这个一次性的变换,让它们分的足够开。

K-L变换觉得:各类抱团紧不一定好区分。目标应该是怎么样让类间距离大,或者让不同类好区分。因此相应于2种K-L变换。

其一:最优描写叙述的K-L变换(沿类间距离大的方向降维)

首先来看个二维二类的样例,如图2所看到的。

图2

假设使用聚类变换,方向是方差最小的方向,因此降维向方向投影,得到2类之间的距离即为2条红线之间的距离,可是这并非相隔最远的投影方向。将椭圆投影到方向,得到2类之间的距离为2条绿线之间的距离。这个方向就是用自相关矩阵的统计平均得到的特征向量

设共同拥有M个类别,各类出现的先验概率为

表示来自第i类的向量。则第i类集群的自相关矩阵为:

混合分布的自相关矩阵R是:

然后求出R的特征向量和特征值:

将特征值降序排列(注意与聚类变换差别)

为了降到m维,取前m个特征向量,构成变换矩阵A

以上便完毕了最优描写叙述的K-L变换。

为什么K-L变换是均方误差(MSE,MeanSquare Error)意义下的最佳变换?

当中表示n维向量y的第j个分量,表示第个特征分量。

引入的误差

均方误差为

m+1開始的特征值都是最小的几个,所以均方误差得到最小。

以上方法称为最优描写叙述的K-L变换,是沿类间距离大的方向降维,从而均方误差最佳。

本质上说,最优描写叙述的K-L变换扔掉了最不显著的特征,然而,显著的特征事实上并不一定对分类有帮助。我们的目标还是要找出对分类作用大的特征,而不应该管这些特征本身的强弱。这就诞生了第2种的K-L变换方法。

其二:最优区分的K-L变换(混合白化后抽取特征)

针对上述问题,最优区分的K-L变换先把混合分布白化,再来依据特征值的分离程度进行排序。

最优区分的K-L变换步骤

首先还是混合分布的自相关矩阵R



然后求出R的特征向量和特征值:

以上是主轴变换,实际上是坐标旋转,之前已经介绍过。

令变换矩阵

则有

这个作用是白化R矩阵,这一步是坐标尺度变换,相当于把椭圆整形成圆,如图3所看到的。

图3

以二类混合分布问题为例。

分别求出二类的特征向量和特征值,有

则二者的特征向量全然同样,唯一的据别在于其特征根,并且还负相关,即假设取降序排列时,则以升序排列。

为了获得最优区分,要使得两者的特征值足够不同。因此,须要舍弃特征值接近0.5的那些特征,而保留使大的那些特征,按这个原则选出了m个特征向量记作

则总的最优区分的K-L变换就是:

欢迎參与讨论并关注本博客微博以及知乎个人主页,兴许内容继续更新哦~

转载请您尊重作者的劳动,完整保留上述文字以及本文链接,谢谢您的支持!

特征选择(三)-K-L变换的更多相关文章

  1. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换 学习目标 理解如何用矩阵表示线性变换和仿射变换: 学习在 ...

  2. ACM ICPC 2018 青岛赛区 部分金牌题题解(K,L,I,G)

     目录: K Airdrop I Soldier Game L Sub-cycle Graph G Repair the Artwork ———————————————————— ps:楼主脑残有点严 ...

  3. HDU 多校对抗第三场 L Visual Cube

    Problem L. Visual Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java ...

  4. 用DirectX实现魔方(三)视角变换及缩放(附源码)

    在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...

  5. 《统计学习方法》笔记三 k近邻法

    本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...

  6. Gym 101606 - A/B/C/D/E/F/G/H/I/J/K/L - (Undone)

    链接:https://codeforces.com/gym/101606 A - Alien Sunset 暴力枚举小时即可. #include<bits/stdc++.h> using ...

  7. 离散傅立叶变换与快速傅立叶变换(DFT与FFT)

    自从去年下半年接触三维重构以来,听得最多的词就是傅立叶变换,后来了解到这个变换在图像处理里面也是重点中的重点. 本身自己基于高数知识的理解是傅立叶变换是将一个函数变为一堆正余弦函数的和的变换.而图像处 ...

  8. $\mathcal{FFT}$·$\mathcal{Fast \ \ Fourier \ \ Transformation}$快速傅立叶变换

    \(2019.2.18upd:\) \(LINK\) 之前写的比较适合未接触FFT的人阅读--但是有几个地方出了错,大家可以找一下233 啊-本来觉得这是个比较良心的算法没想到这么抽搐这个算法真是将一 ...

  9. 《Real Time Rendering》第四章 图形变换

    图形变换是一个将例如点.向量或者颜色等实体进行某种转换的操作.对于计算机图形学的先驱者,掌握图形变换是极为重要的.有了他们,你就可以对象.光源以及摄像机进行定位,变形以及动画添加.你也可以确认所有的计 ...

随机推荐

  1. c++实用技巧

    原地址:http://www.cnblogs.com/easymind223/articles/2576904.html 晚上的时间总是习惯性的在cnblogs逛街,今天又看到了好文章,其c++味道浓 ...

  2. Delphi 类与对象内存结构浅析(三篇)

    http://blog.csdn.net/starsky2006/article/details/5497082 http://blog.csdn.net/starsky2006/article/de ...

  3. 简单的三方登录SDK示例,Android Activity之间数据的传递

    先建立Library工程,即普通工程然后在Android的属性勾选Library选项. 这里建立的工程为 mySdk ,Activity名为LoginActivity. LoginActivity代码 ...

  4. 【Android每周专题】触摸屏事件

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[Android每周专题]系列,原文链接:http://blog.csdn.net/benbmw2008/article ...

  5. 盒子游戏(The Seventh Hunan Collegiate Programming Contest)

    盒子游戏 有两个相同的盒子,其中一个装了n个球,另一个装了一个球.Alice和Bob发明了一个游戏,规则如下:Alice和Bob轮流操作,Alice先操作.每次操作时,游戏者先看看哪个盒子里的球的数目 ...

  6. 使用MYCAT作为Mysql HA的中间件(转)

    记得在上一篇文章“Java集群--大型网站是怎样解决多用户高并发访问的”的结尾处本人阐述了数据库的高可用的一种方案----实现主从部署,那么今天,就让我聊聊本人关于数据库的一些所思所想吧! 下面是本人 ...

  7. SpringMVC与Mybatis框架整合遇到的坑(转)

    最近在做springmvc与mybatis的项目,遇到一些比较坑的问题.花了许多时间却发现其实解决的办法很简单.这里主要是讲我自己在整合这两个框架的时候遇到的一些问题做一个整理.希望遇到和我同样问题的 ...

  8. HTML5之画布的拖拽/拖放

    <!DOCTYPE HTML> <html> <head> <script type="text/javascript"> func ...

  9. POJ 2002 点hash

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 15489   Accepted: 5864 Descript ...

  10. PPTP和L2TP的区别

    PPTP是点到点的隧道协议,服务器端使用TCP 的1723端口,同时使用GRE协议,加密上使用MPPE.位于NAT后的客户端连接会有问题. L2TP是二层隧道VPN,使用IPsec 进行加密,服务器端 ...