Fisher算法分析

在处理数据的时候,我们往往会遇到高维数据,对于这种数据进行分类往往比较头疼,如果我们能把高维数据降至一维而且还不影响其分类效果,那么这将会有利于分类,而Fisher算法就是用来将高维数据降至一维而尽量保持其原有特征的一种算法

Fisher算法分析_第1张图片

先来看一下这个降维效果,明显可以发现这并不是我们想要的,因为蓝色数据和红色数据有重合部分,而且大部分蓝色点和红色点距离过小,这样容易造成错误分类。 

再来看一下下面这张图:

Fisher算法分析_第2张图片

对于同样的一组数据,我们能明显发现这个分类效果要好,一个显著的特点就是蓝色点和红色点各自比较聚集,但两者之间又比较分散, 这就是我们想要的降维效果。

那这种效果具有什么特点呢?首先分别对于蓝色点和红色点来说,同一种类的点必须要尽量聚集,但是不同类的点就要尽量分散。也就是说同一类点的类内矩阵要尽量小,不同类之间的类间矩阵要尽量大

下面来进行理论分析:

假设x是d维特征向量,那么我们就需要一个d维的向量w来对原来的高维数据进行降维,假设降维后的数据是y,那么就有y=w^T*x+w0.

分类依据:假如降维后的值y是大于0的,那么就将x看作一类点,降维后的值y小于0的看作令一类点,而降维后的值y等于0的数据我们可以将其分为任意一类或者拒绝为其分类均可

先来看一下这个向量到底是怎么起到投影作用的。以一个三维的数据为例,我们知道2x1+3x2-6x3+7=0是表示一个平面,这个平面方程也可以表示为行向量(2,3,-6)*列向量(x1,x2,x3)+7=0,所以这个行向量就是w^T向量,我们知道(2,3,-6)其实就是2x1+3x2-6x3+7=0这个平面的法向量,那么我们就不难发现其实w^T向量就是超平面方程w^T*x+w0=0的法向量,而w0其实就是这个超平面的截距,现在我们知道了 w^T向量的含义,那么为什么将一个数据代入这个方程能够得到映射后的值呢?

 我们先来看一下一个d维空间下的特征向量x到超平面的距离公式是什么,其实就是|(w^T*x+w0)|/|w^T|,其中如果我们去掉分子上的绝对值,则代表特征向量到超平面的距离存在负值,也就是位于超平面下方的数据求出来的距离会是负值,而现在我们代入求出的值是(w^T*x+w0),这个值如果是正的代表这个特征向量是在超平面w^T*x+w0=0上方的,否则就说明这个特征向量在超平面下方,至于分母上值的大小我们其实不用特别关心,因为除以一个正数并不会影响最后的值与0的关系,也就是不会改变这个特征向量与超平面之间的位置关系。所以这就是为什么可以利用这个超平面进行分类。

需要注意一点的是,我一开始分析的类内矩阵最小值类间矩阵最大值都是相当于降维后的数据来说的,我们由于初始空间的特征向量和降维后的特征向量只是利用一个w^T进行转换即可,我们就先分析初始数据的类内矩阵和类间矩阵。

Fisher算法分析_第3张图片

Fisher算法分析_第4张图片

我们的目的就是要让总类内离散度尽量小,类间离散度尽量大,所以我们就是要求类间离散度/类内离散度的最大值

其中yj=w^T*xj+w0

推导过程附在纸上:

Fisher算法分析_第5张图片

 最终结果正好是广义瑞利商的形式,下面进行广义瑞利商到瑞利商的转变

Fisher算法分析_第6张图片

而我们要求的w就是这个特征值对应的特征向量

下面再附上另一种推导形式:

Fisher算法分析_第7张图片

Fisher算法分析_第8张图片

 我们在实际应用中只需要知道最佳投影方向矩阵的形式就是:

即可。

下面是决策规则和w0的取值:

Fisher算法分析_第9张图片

总结:Fisher方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩 阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离 和最大的类间距离,即模式在该空间中有最佳的可分离性。

你可能感兴趣的:(机器学习,人工智能)