资讯

类内散度矩阵是什么?衡量同一类样本有多分散

2026-11-053 分钟阅读百科
TL;DR类内散度矩阵(Within-class Scatter Matrix)是线性判别分析中衡量各类别内部样本围绕本类均值分散程度的矩阵,等于各类样本与其类均值之差外积的总和,LDA 通过最大化类间散度与类内散度之比,寻找让同类紧凑、异类分开的投影方向。

类内散度矩阵(Within-class Scatter Matrix)是用来衡量同一个类别中的样本有多分散的矩阵。它是线性判别分析(LDA)中的核心概念之一,与类间散度矩阵一起,用来寻找最能区分不同类别的投影方向。

直观理解

想象平面上有两群点,分别代表两个类别。对于每一类,可以计算出它的中心,也就是这一类所有样本的平均位置。类内散度描述的是:每一类中的样本围绕着自己的中心聚集得有多紧密。如果同一类的样本都紧紧地挤在中心附近,类内散度就小;如果它们分布得很散,类内散度就大。与之相对的类间散度描述的是:不同类别的中心彼此之间离得有多远。

对于分类来说,理想的情况是:同一类的样本尽量聚在一起,类内散度小;不同类的样本尽量离得远,类间散度大。这样,不同的类别就容易区分开。

它是怎么计算的

对于每一个类别,先计算这一类样本的均值向量,然后对这一类中的每一个样本,计算它与均值向量之差,再用这个差向量与它自身的转置相乘,得到一个矩阵,把这一类所有样本得到的矩阵加起来,就是这一类的散度矩阵。它与这一类的协方差矩阵只相差一个与样本数量有关的系数,描述了这一类数据在各个方向上的分散程度,以及不同特征之间的相关性。最后,把所有类别的散度矩阵加在一起,就得到了总的类内散度矩阵。类间散度矩阵则是根据各个类别的均值与全体样本总均值之间的差来计算的。

在线性判别分析中的作用

线性判别分析是由英国统计学家罗纳德·费希尔在 1936 年提出的经典方法,所以也叫费希尔判别分析。它的目标是找到一个投影方向,把高维的数据投影到这个方向上,使得投影之后不同类别能被最好地区分开。费希尔提出了一个衡量标准,叫作费希尔准则:投影之后的类间散度除以投影之后的类内散度。这个比值越大,说明投影之后各类的中心离得越远、每一类内部又越紧凑,区分的效果越好。线性判别分析就是要找到让这个比值最大的投影方向。可以证明,最优的投影方向可以通过求解一个广义特征值问题得到,它与类内散度矩阵的逆矩阵乘以类间散度矩阵所得矩阵的特征向量有关。

只考虑类间散度是不够的:如果某个方向上两类的中心离得很远,但每一类在这个方向上又都分布得非常散,投影之后两类仍然会大量地重叠。正是因为同时考虑了类内散度,线性判别分析找到的方向才能真正有效地区分不同的类别。著名的鸢尾花数据集就是费希尔在提出这一方法时使用的数据。

应用和注意事项

线性判别分析被用于分类和有监督的降维,比如在早期的人脸识别中,“Fisherfaces”方法就使用了线性判别分析。需要注意的是,当特征的维度比样本数量还多时,类内散度矩阵往往是不可逆的,无法直接求解,这时通常需要先用主成分分析降低维度,或者对类内散度矩阵加上一个正则化项。