我尝试使用scikit-learn 库中的线性判别分析,以便对具有 200 多个特征的数据执行降维。inverse_transform但我在LDA类中找不到该函数。
我只是想问,如何从LDA域中的一个点重建原始数据?
根据 @bogatron 和 @kazemakase 回答进行编辑:
我认为“原始数据”这个术语是错误的,我应该使用“原始坐标”或“原始空间”。我知道如果没有所有 PCA,我们就无法重建原始数据,但是当我们构建形状空间时,我们会在 PCA 的帮助下将数据投影到更低的维度。PCA 尝试仅用 2 或 3 个分量来解释数据,这些分量可以捕获数据的大部分方差,如果我们基于它们重建数据库,它应该向我们显示导致这种分离的形状部分。
我再次检查了 scikit-learn LDA 的源代码,我注意到特征向量存储在scalings_变量中。当我们使用svd求解器时,不可能反转特征向量 ( scalings_) 矩阵,但是当我尝试矩阵的伪逆时,我可以重建形状。
这里,有两个图像分别从 [ 4.28, 0.52] 和 [0, 0] 点重建:
我认为如果有人深入解释 LDA 逆变换的数学局限性那就太好了。
python machine-learning dimensionality-reduction scikit-learn