【问题标题】:How to use Linear Discriminant Analysis for projection in MatLab?如何在 MatLab 中使用线性判别分析进行投影?
【发布时间】:2012-05-09 18:57:52
【问题描述】:

是否可以使用 LDA 将多维数据投影到 2D 地图? Matlab提供的工具好像没有提供这样的功能……

感谢您的回复。我的数据现在有 6 个类,是不是意味着如果我有 6 个类,我只能将其缩减为 5 个维度?或者可以用 PCA 以类似的方式完成,它采用前 2 个特征值,并使用这 2 个进行投影?作为一种无监督的方法,PCA 不能很好地解决我的问题,所以我想知道 LDA 是否有帮助。

【问题讨论】:

    标签: matlab dimensionality-reduction


    【解决方案1】:

    严格来说,LDA 并不是真正意义上的降维,尤其是在所有数据都属于一个类的情况下。它旨在提出一个单一的线性投影,该投影在两个类别之间最具区分性。因此,使用 LDA 并没有真正自然的方法来做到这一点。

    如果您的数据都属于同一类,那么您可能对PCA (Principcal Component Analysis) 更感兴趣,它为您提供了按重要性排序的数据最重要的方向。其他方法也存在like ISOMAP(如 EMS 在 cmets 中提到的)或self-organizing maps

    附带说明,如果您知道自己拥有多类数据,LDA 可以帮助您降低维度。如果您有 k 类数据,它可以帮助您将维度降低到 k-1 维度,但您没有提到是这种情况。

    编辑:感谢 @EMS 帮助澄清这个答案。

    【讨论】:

    • 从一组训练数据中计算出最佳投影后,您可以将该投影应用于任何新收集的数据以降低其维度。我不知道它的泛化属性是什么,但它肯定是一个有效的降维方案(尽管可能不准确)。
    • 当然,单个线性分量将是一个这样的维度,但我不知道 LDA 的泛化会产生多个(我已经看过),因此我的第一句话.
    • 这太令人惊讶了。 Wikipedia article 列出了 LDA 的第一个应用中的降维,特别是多类 LDA 是 described as 通过 N 维数据空间找到一个 (k-1) 维子空间,以最好地分离 k 个不同的类。 LDA 直接概括为通过 N 维数据找到一个 k 维平面,其中 k
    • 顺便说一句,Isomap algorithm 是 PCA 类型方法的替代方法,它试图保留数据点之间的流形距离,而不是欧几里得距离。可能有 Isomap 的变体试图以一种最佳地处理类间和类内散射的方式向下投影多种距离,但我不熟悉它们。对于这个问题,Isomap 可能太复杂了,但最好知道选项是什么。
    • @EMS,OP 没有提到任何关于拥有多类(甚至两类)数据的内容。自从他提到 LDA 以来,我做了逻辑延伸,他对两类数据感兴趣,但 LDA 通常不用于一类问题的降维。
    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2017-05-22
    • 2013-06-19
    • 2011-08-20
    相关资源
    最近更新 更多