PCA和LDA中“重构错误”的含义

机器算法验证 机器学习 主成分分析 术语 降维 判别分析
2022-01-20 13:30:58

我正在实现 PCA、LDA 和朴素贝叶斯,分别用于压缩和分类(实现 LDA 用于压缩和分类)。

我编写了代码,一切正常。对于报告,我需要知道的是重建误差的一般定义是什么。

我可以在文献中找到很多数学及其用法......但我真正需要的是鸟瞰图/简单的单词定义,因此我可以将其改编为报告。

4个回答

对于 PCA,您所做的是将数据投影到输入空间的子集上。基本上,上图中的一切都成立:您将数据投影到具有最大方差的子空间上。当你从投影重建数据时,你会得到红点,重建误差是从蓝点到红点的距离之和:它确实对应于你通过将数据投影到绿色上所产生的错误线。它当然可以推广到任何维度!

在此处输入图像描述

正如评论中所指出的,LDA 似乎并不简单,我在互联网上找不到合适的定义。对不起。

重建误差的一般定义是原始数据点与其投影到低维子空间(其“估计”)之间的距离。

资料来源:伦敦帝国理工学院机器学习专业数学

我通常用作重构误差的度量(在 PCA 的上下文中,以及其他方法中)是确定系数和均方根误差(或归一化 RMSE)。这两个很容易计算,让您快速了解重建的作用。R2

计算

假设是您的原始数据,是压缩数据。Xf

变量的可以计算为R2ith

Ri2=1j=1n(Xj,ifj,i)2j=1nXj,i2

由于为完美拟合,您可以通过与 1.0 的接近程度来判断重建。R2=1.0R2

变量的 RMSE可以计算为:ith

RMSEi=(Xifi)2¯

您也可以通过适合您的数量(规范)对其进行归一化,我经常通过平均值进行归一化,因此 NRMSE 为:N

NRMSEi=RMSEiNi=(Xifi)2¯Xi2¯

计算

如果您使用的是 Python,您可以将这些计算为:

from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
from math import sqrt
import numpy as np

r2 = r2_score(X, f)
rmse = sqrt(mean_squared_error(X, f))

# RMSE normalised by mean:
nrmse = rmse/sqrt(np.mean(X**2))

其中X是原始数据,f是压缩数据。

可视化

如果进行一些敏感性分析对您有帮助,您可以在更改压缩参数时例如,在 PCA 的上下文中,当您想要比较具有越来越多的保留主成分的重建时,这可能会很方便。在下面,您会看到增加模式的数量使您的拟合更接近模型:R2

在此处输入图像描述

PCA 上下文中重构错误的鸟瞰图将是我们无法捕获的数据的可变性。

符号原理子空间 - 数据投影的低维子空间

重构误差作为来自被忽略子空间的贡献

在 PCA 重建中,错误或损失是被忽略子空间的特征值之和。假设您有 10 维数据,并且您正在选择前 4 个主成分,这意味着您的主子空间有 4 个维度并且对应于 4 个最大特征值和相应的向量,因此重建误差是被忽略的 6 个特征值的总和子空间,(最小的 6 个)。

最小化重建误差意味着最小化被忽略的特征值的贡献,这取决于数据的分布和我们选择的组件数量。

平均平方距离的重构误差

被忽略的子空间是主子空间的正交补充,因此重建误差可以看作是原始数据点与在另一个答案中共享的主子空间上的各个投影之间的平均平方距离。