支持向量机和线性判别分析有什么区别?
SVM 和 LDA 有什么区别?
LDA:假设:数据是正态分布的。所有组的分布相同,如果组具有不同的协方差矩阵,则 LDA 变为二次判别分析。LDA 是在实际满足所有假设的情况下可用的最佳鉴别器。顺便说一下,QDA 是一个非线性分类器。
SVM:推广最优分离超平面(OSH)。OSH 假设所有组都是完全可分离的,SVM 使用“松弛变量”,允许组之间有一定数量的重叠。SVM 根本不对数据做任何假设,这意味着它是一种非常灵活的方法。另一方面,与 LDA 相比,灵活性通常使得解释 SVM 分类器的结果更加困难。
SVM分类是一个优化问题,LDA有一个解析解。SVM 的优化问题有一个对偶和原始公式,允许用户优化数据点的数量或变量的数量,具体取决于哪种方法在计算上最可行。SVM 还可以利用内核将 SVM 分类器从线性分类器转换为非线性分类器。使用您最喜欢的搜索引擎搜索“SVM 内核技巧”,了解 SVM 如何利用内核来转换参数空间。
LDA 利用整个数据集来估计协方差矩阵,因此有点容易出现异常值。SVM 在数据子集上进行了优化,这些数据点位于分离边距上。用于优化的数据点称为支持向量,因为它们决定了 SVM 如何区分组,从而支持分类。
据我所知,SVM 并不能很好地区分两个以上的类别。一个异常稳健的替代方法是使用逻辑分类。只要满足假设,LDA 就可以很好地处理几个类。我相信,尽管(警告:非常未经证实的说法)几个旧的基准测试发现 LDA 在很多情况下通常表现得相当好,并且 LDA/QDA 通常是初始分析中的 goto 方法。
LDA 可用于特征选择使用稀疏 LDA:https ://web.stanford.edu/~hastie/Papers/sda_resubm_daniela-final.pdf 。SVM 无法执行特征选择。
简而言之:LDA 和 SVM 几乎没有共同点。幸运的是,它们都非常有用。
SVM 只关注难以分类的点,LDA 关注所有数据点。这样的困难点靠近决策边界,被称为支持向量。决策边界可以是线性的,但也可以是例如 RBF 内核或多项式内核。其中 LDA 是最大化可分离性的线性变换。
LDA 假设数据点具有相同的协方差,并且假设概率密度是正态分布的。SVM 没有这样的假设。
LDA 是生成的,SVM 是判别的。