特征选择(三)-K-L变换
上一讲说到,各个特征(各个分量)对分类来说,其重要性当然是不同的。
舍去不重要的分量,这就是降维。
聚类变换觉得:重要的分量就是能让变换后类内距离小的分量。
类内距离小,意味着抱团抱得紧。
可是,抱团抱得紧,真的就一定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变换的更多相关文章
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换 学习目标 理解如何用矩阵表示线性变换和仿射变换: 学习在 ...
- ACM ICPC 2018 青岛赛区 部分金牌题题解(K,L,I,G)
目录: K Airdrop I Soldier Game L Sub-cycle Graph G Repair the Artwork ———————————————————— ps:楼主脑残有点严 ...
- HDU 多校对抗第三场 L Visual Cube
Problem L. Visual Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java ...
- 用DirectX实现魔方(三)视角变换及缩放(附源码)
在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...
- 《统计学习方法》笔记三 k近邻法
本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...
- 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 ...
- 离散傅立叶变换与快速傅立叶变换(DFT与FFT)
自从去年下半年接触三维重构以来,听得最多的词就是傅立叶变换,后来了解到这个变换在图像处理里面也是重点中的重点. 本身自己基于高数知识的理解是傅立叶变换是将一个函数变为一堆正余弦函数的和的变换.而图像处 ...
- $\mathcal{FFT}$·$\mathcal{Fast \ \ Fourier \ \ Transformation}$快速傅立叶变换
\(2019.2.18upd:\) \(LINK\) 之前写的比较适合未接触FFT的人阅读--但是有几个地方出了错,大家可以找一下233 啊-本来觉得这是个比较良心的算法没想到这么抽搐这个算法真是将一 ...
- 《Real Time Rendering》第四章 图形变换
图形变换是一个将例如点.向量或者颜色等实体进行某种转换的操作.对于计算机图形学的先驱者,掌握图形变换是极为重要的.有了他们,你就可以对象.光源以及摄像机进行定位,变形以及动画添加.你也可以确认所有的计 ...
随机推荐
- 一个发送邮件的C++库–jwsmtp
接收邮件的,暂时没搞定,不过在SF上找到了这个发送邮件的库文件.它提供了一个比较完整的类,可以简单的调用发送邮件.下面是作者提供的一个例子,不过由于连SMTP发邮件需要密码,所以代码我改了一下.// ...
- 慎得慌风 656ik67o
http://photo.163.com/q/7634581 http://photo.163.com/q/7634580 http://photo.163.com/q/7634577 http:// ...
- 那些年我们装过的数据库---盘点sqlserver2008安装时遇到的各种的问题(持续更新中)
给自己安过sqlServer2008,也给好多同学安过sqlServer2008,期间遇到了好多不同的另人心烦的问题,在这里整理一下,(涉及到的部分方法是在网上找的,有些也没试过,仅仅是在这里整理一下 ...
- ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展
关于ExtJS对javascript中的Array的扩展.能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 因为 ...
- SimpleWiFi模块评估板
SimpleWiFi评估套件,发货清单: 1.评估版一块. 2.专用WiFi天线一根. 3.配套电源一个. 单模块 是60元,链接如下: http://item.taobao.com/i ...
- vijos P1352 最大获利(最小割)
请不要随便指点别人该怎么做.每一个人的人生都应该自己掌握.你给不了别人一切.你也不懂别人的忧伤. 微笑不代表快乐.哭泣不一定悲伤 不努力怎么让关心你的人幸福.不努力怎么让看不起你的人绝望. 我用生命在 ...
- ReentrantLock可重入锁的使用场景(转)
摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次 ...
- 找呀志_通过开源框架引AsyncHttpClient上传文件
一个.步骤: 1.加入权限(接入网络和可写) 2.获取上传文件的路径和推断是空的 3.如果为空.创建一个异步请求对象 4.创建上传文件路径 5.跑post请求(指定url路径.封装上传參数.新建Asy ...
- 【Unity3D自学记录】可视化对照十多种排序算法(C#版)
在这篇文章中.我会向大家展示一些排序算法的可视化过程.我还写了一个工具.大家可对照查看某两种排序算法. 下载源代码 – 75.7 KB 下载演示样例 – 27.1 KB 引言 首先,我觉得是最重要的是 ...
- Knockout应用开发指南 第四章:模板绑定
原文:Knockout应用开发指南 第四章:模板绑定 模板绑定The template binding 目的 template绑定通过模板将数据render到页面.模板绑定对于构建嵌套结构的页面非常方 ...