数据科学家成长之旅

关注 机器学习,深度学习,自然语言处理,数学

特征选择(一)- 维数问题与类内距离

原文地址:http://blog.csdn.net/ycheng_sjtu/article/details/25343043

 

什么是特征选择?

简单说,特征选择就是降维。

 

特征选择的任务

就是要从n维向量中选取m个特征,把原向量降维成为一个m维向量。但是降维必须保证类别的可分离性或者说分类器的性能下降不多。

 

注意降维具有片面性,算法并不普适。常常会有失效发生。

 

降维这件小事

在图像处理中叫做图像压缩、特征提取。重在最优区分(可分离性)。

在模式识别中叫做特征选择。重在最优描述(保真性)。

 

降维的基本思想

就是找一个线性变换使得原来的n维观察值变成了

这样维数就下降了,只是要求不能明显降低类别的可分离性就好。本文介绍的都是线性变换。

 

为什么要降维?

1.有可能当你使用某个特征就能进行很好的分类,譬如一个二维问题很可能变成一维也可以分类,如图1所示,把原来的样本向y轴投影就好了,用一个y分量就能完成分类。可见降维确实很有用,关键在于如何找到像y方向这么好的特征呢?

图1

 

2.当特征的维数上升后,样本的可分离性自然是会增加。但是,类别的可分离性和分类器的性能是完全不同的两码事。

G.F.Hughes给出了错误率跟每次试验中的训练样本数n和特征空间块数M之间的关系曲线,如图2所示。

图2

 

其中d为维数,l是每维分为的段数。则特征空间块数

 

由图可见随着维数的继续增加,错误率会持续上升。我们不能盲目增加维数来想当然提高分类性能。

 

3.维与维之间不一定是独立的,可能因为相关性而存在冗余。

 

4.维数大了计算量存储量就大了嘛。

 

用什么分类?

还是用距离。

 

点到点

设k为每个点的分量的下标,则点a到点b之间的距离为:

 

点到点集

假定点集内共有K个点,表示点集中第i个点的第k个分量:

 

类内距离

有一种定义类内距离的方法,它把类内所有点两两之间的距离的平均,作为类内距离。下面推导其表达式:

类内某点跟其他点之间的距离的平方:

 

再j令在集内变化,取平均,就得到类内距离,即:

由于都取自同一类内,则有

 

各分量的方差的无偏估值为:

则有

这不是协方差的迹么?

 

于是得到结论:类内距离为类协方差矩阵迹的2倍。

 

推论:某类样本的协方差矩阵的迹很小,则类内距离小,说明数据抱团,很紧凑。

于是你会想,降维其实就是找个变换,让变换后的数据各个类别抱团更加紧凑就好了。就是这样没错。

 

那么,怎么降维?

刚刚已经给出了类内距离的概念。

针对这个概念,有人从完全不同的两个角度给出了方法。

这就是聚类变换与K-L变换。

posted on 2017-03-13 16:27  会飞的蝸牛  阅读(3341)  评论(0编辑  收藏  举报

导航