类间散度矩阵是什么?衡量不同类别彼此离得有多远
类间散度矩阵(Between-class Scatter Matrix)是用来衡量不同类别的样本彼此之间分开得有多远的矩阵。它是线性判别分析(LDA)中的核心概念,与描述每个类别内部有多分散的类内散度矩阵相对应。
直观理解
把每个类别的样本看作一团点,这团点有一个中心,也就是这一类所有样本的平均位置。类间散度衡量的是这些类别中心彼此之间分布得有多开:如果各个类别的中心挤在一起,类间散度就小,说明类别之间难以区分;如果各个类别的中心离得很远,类间散度就大,说明类别之间容易区分。
如何计算
对于二分类问题,类间散度矩阵的计算很简单:用第一类的均值向量减去第二类的均值向量,得到一个差向量,再用这个差向量乘以它自己的转置,就得到一个矩阵。它描述了两个类别中心之间的差别在各个方向上的分布。
对于多分类问题,先计算所有样本的总均值,然后对每一个类别,计算它的均值与总均值之差,用这个差向量乘以它自己的转置,再乘以这个类别的样本数量,最后把所有类别的结果加起来。乘以样本数量是为了让样本多的类别占更大的分量。可以证明,所有样本相对于总均值的总散度矩阵,正好等于类内散度矩阵与类间散度矩阵之和,也就是说,数据的总体分散可以分解为“各类内部的分散”和“各类之间的分散”两部分。这与方差分析中“总平方和等于组内平方和加组间平方和”的思想是一致的。
在线性判别分析中的作用
线性判别分析由罗纳德·费希尔在 1936 年提出,它的目标是找到一个投影方向,把数据投影到这个方向上之后,不同的类别尽可能分开。费希尔提出的准则是:投影后的类间散度除以投影后的类内散度,这个比值越大越好。也就是说,既要让各类的中心在投影后离得尽量远,又要让每一类的样本在投影后尽量紧凑。这个比值的形式是一个广义瑞利商,最优的投影方向由广义特征值问题给出。对于二分类,最优方向可以直接写成类内散度矩阵的逆乘以两类均值之差。
一个重要的性质:秩的限制
类间散度矩阵的秩最多等于类别数减一。原因在于:它是由各个类别均值相对于总均值的偏差构成的,而这些偏差加权求和等于零,因此最多只有类别数减一个是线性无关的。这意味着,线性判别分析最多只能找到类别数减一个有意义的投影方向。比如对于十个类别的数据,无论原始特征有多少维,线性判别分析最多把它降到九维。这既是它作为有监督降维方法的特点,也是它的一个限制。
其他应用
类间散度与类内散度的思想也被用于特征选择和评价:一个好的特征应该让类间散度大、类内散度小。在深度学习的人脸识别中,中心损失等方法也体现了类似的思想,鼓励同类样本的特征靠近自己的类中心,同时不同类的中心彼此远离。