本节伊始,在讲解PCA时就对葡萄酒数据集做了标准化处理,因此我们将跳过第一步直接计算均值向量,计算中,我们将分别构建类内散布矩阵和类间散布矩阵。均值向量mi存储了类别i中样本的特征均值μm:
葡萄酒数据集的三个类别对应三个均值向量:
通过均值向量,我们来计算一下类内散布矩阵SW:
这可以通过累加各类别i的散布矩阵Si来计算:
此前我们对散布矩阵进行计算时,曾假设训练集的类标是均匀分布的。但是,通过打印类标的数量,可以看到在此并未遵循此假设:
因此,在我们通过累加方式计算散布矩阵SW前,需要对各类别的散布矩阵Si做缩放处理。当我们用各类别单独的散布矩阵除以此类别内样本数量Ni时,可以发现计算散布矩阵的方式与计算协方差矩阵的方式是一致的。协方差矩阵可以看作是归一化的散布矩阵:
在完成类内散布矩阵(或协方差矩阵)的计算后,我们进入下一步骤,计算类间散布矩阵SB:
其中,m为全局均值,它在计算时用到了所有类别中的全部样本: