机器学习的特征值和特征向量

2025年6月18日 | 阅读 7 分钟

特征向量:每个向量(数字列表)在 X 和 Y 值图上绘制时都有一个方向。特征向量是指在某种线性变换(例如与某个标量相乘)下,其方向保持不变的向量。

特征值:在变换中用于缩放(拉伸)或压缩(变窄)特征向量的标量。

通过使用数据的 特征向量和特征值 可以降低数据中的噪声。它们有助于提高许多计算密集型任务的效率。消除之间具有高度相关性的特征也有助于减少过拟合。

Eigenvalues and Eigenvectors for Machine Learning

当我们构建在图像、声音或文本内容上训练的预测模型时,输入特征集最终可能会包含大量的特征。超过 3 维的数据也很难理解和可视化。因此,例如,为了转换文本特征中的值,我们经常使用独热编码,它将值转换为完全独立的数值列,这些列随后会占用磁盘空间。一种旨在在不丢失关键信息的情况下降低维度空间的重要策略是使用主成分分析。PCA 的核心组成部分是特征值和特征向量。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

现在我们将应用基于特征向量和特征值的降维。

导入库

读取数据集

输出

False

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

((150, 4), (150,))

标准化

在 150×4 的数据集中,150 个样本中的每一个都将由矩阵中的一行表示,其中相应的列代表特征。

从上面截图显示的输出可以看出,每个样本 x 的每一行都可以被想象成一个四维向量。

当数据集中不同的特征尺度不同时,标准化对于将这些特征输入转换为具有均值 0 和方差 1 的相应输入空间至关重要。标准化是 PCA 过程的关键步骤,因为 PCA 对数据变化非常敏感。如果某些特征之间存在很大差异,那么较大的尺度将过度影响主成分结果。因此,进行了标准化以平衡各个特征的影响,从而使 PCA 能够掌握并包含数据中最有意义的模式。

PCA 的一种传统方法是通过协方差矩阵 Σ 的特征分解来实现的,Σ 是一个 d×d 矩阵,其元素表示两个特征之间的协方差。这里的 d 是原始数据集的原始维度数。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

我们知道一个特征向量所有值的平方和为 1。让我们检查一下这是否表明我们已成功计算出特征向量。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

其背后的规则是,我们将特征值按降序排序,然后选择与前 k 个特征值对应的 k 个特征。通过选择前 k 个特征空间,我们可以确定这 k 个特征空间对应的方差足以表征数据集。消除未被选中的特征不会造成太多精度损失,因为这些特征对应的方差可能不太有用,或者由于忽略方差而可以接受损失精度。

这是我们必须根据给定的问题集和业务案例做出的决定。没有确切的规则来决定它。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning
Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

从图中可以看出,最大的两个主成分解释了超过 95% 的方差。因此,可以选择最大的两个主成分来形成投影矩阵 W。

这个投影矩阵将 Iris 数据集转换为一个低维的新特征子空间。将与最大特征值对应的 k 个特征向量连接起来形成该矩阵。在这里,从原始的 4 维特征空间中,只选择具有最大特征值的两个特征向量,并将其合并到一个 2 维子空间中。因此,在简化数据集的同时,最大化了方差的保留,并便于可视化和进一步分析。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

最后一步是使用大小为 4×2 的投影矩阵 W 将原始数据集 X 转换为维度低于 X 的空间。这是通过方程 Y=X×W 完成的,其中 Y 是转换后的数据集。由于原始数据集 X 由 150 个具有 4 个特征的样本组成,因此生成的矩阵 Y 的维度将是 150×2。这种降维使得特征空间足够小,能够保留数据中的最大方差。

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

代码

输出

Eigenvalues and Eigenvectors for Machine Learning

前两个主成分覆盖了 95.80% 的可用信息。第一个主成分解释了 72.77% 的方差,第二个主成分解释了 23.03% 的方差。第三个和第四个主成分包含了数据集的其余方差。