当前位置: 首页>后端>正文

多类LDA 代码 lda详解

前言

LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解一下它的算法原理。除非特别声明,本文中的LDA均指的是线性判别分析Linear Discriminant Analysis),它与自然语言处理领域中的LDA隐含狄利克雷分布(Latent Dirichlet Allocation)是有本质上的区别的,后者是一种处理文档的主题模型

一、LDA的思想

LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度空间上进行投影,投影后希望同种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大

这里假设我们有两类数据分别用红色和蓝色表示,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线上,让同种类别数据的投影点尽可能的接近,而且让红色和蓝色数据中心之间的距离尽可能的大:

多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据,第1张

上图中提供了两种投影方式,那么哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的红色数据和蓝色数据各自较为集中,且类别之间的距离明显。左图则在边界处两类数据比较混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据一般是多个类别的,我们的原始数据一般也是超过二维的,投影后的数据也一般不是直线,而是一个低维的超平面。

在我们将上面直观的内容转化为可以度量的问题之前,我们先了解些必要的数学基础知识,这些在后面讲解具体LDA原理时会用到。

二、瑞利商(Rayleigh Quotient)和广义瑞利商(Generalized Rayleigh Quotient)

瑞利商是指这样的函数 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_02,第2张
多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_03,第3张
其中 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_04,第4张 为非零向量,而 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_05,第5张多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_06,第6张多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_07,第7张埃米尔特)矩阵。所谓的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_07,第7张 矩阵就是满足共轭转置矩阵和自己相等的矩阵,即 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_09,第9张 。如果我们的矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_05,第5张 是实矩阵,则满足 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_11,第11张 的矩阵即为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_07,第7张

瑞利商 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_02,第2张 有一个非常重要的性质,即它的最大值等于矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_05,第5张 最大的特征值,而最小值等于矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_05,第5张 的最小的特征值,也就是满足:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_16,第16张
具体的证明大家可以参考这篇文章:瑞利商及其极值的计算。
当向量 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_04,第4张 是标准正交基时,即满足 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_18,第18张 时,瑞利商退化为:多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_19,第19张 ,这个形式在谱聚类PCA中都有出现。

以上就是瑞利商的内容,现在我们再看看广义瑞利商。广义瑞利商是指这样的函数 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_20,第20张
多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_21,第21张
其中 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_04,第4张 为非零向量,而 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_23,第23张多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_06,第6张多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_07,第7张 矩阵。多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_26,第26张 为正定矩阵。它的最大值和最小值是什么呢?其实我们只要通过将其标准化就可以转化为瑞利商的格式。我们令 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_27,第27张 ,则分母转化为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_28,第28张
而分子转化为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_29,第29张
此时我们的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_20,第20张 转化为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_31,第31张
多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_32,第32张
利用前面的瑞利商的性质,我们可以很快的知道,多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_33,第33张 的最大值为矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_34,第34张 的最大特征值,或者说矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_35,第35张 的最大特征值,而最小值为矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_35,第35张 的最小特征值。这里使用了一些技巧,即对矩阵进行标准化 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_37,第37张

三、二类LDA的原理

现在我们回到LDA的原理上,我们在第一小节介绍到了LDA希望投影后同种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,但这只是一个感官的度量。现在我们首先从比较简单的二类LDA入手,严谨的分析LDA的原理。

假设我们的数据集 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_38,第38张 ,其中任意样本 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_39,第39张多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_40,第40张 维向量,多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_41,第41张 。我们定义 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_42,第42张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的个数,多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_44,第44张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的集合,而 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_46,第46张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的均值向量,定义 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_48,第48张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张

多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_50,第50张 的表达式为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_51,第51张
多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_52,第52张 的表达式为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_53,第53张
由于是两类数据,因此我们只需要将数据投影到一条直线上即可。假设我们的投影直线是向量 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_54,第54张 ,则对任意一个样本 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_39,第39张,它在直线 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_54,第54张 的投影为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_57,第57张,对于我们的两个类别的中心点 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_58,第58张 ,在直线 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_54,第54张 上的投影为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_60,第60张多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_61,第61张 。由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_62,第62张 ,同时我们希望同种类别数据的投影点尽可能的接近,也就是要让同类样本投影点的协方差 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_63,第63张多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_64,第64张 尽可能的小,即最小化 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_65,第65张 。综上所述,我们的优化目标为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_66,第66张
我们一般定义类内散度矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_67,第67张 为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_68,第68张
同时定义类间散度矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_69,第69张为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_70,第70张
这样我们的优化目标重写为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_71,第71张
仔细观察上式,这不就是我们的广义瑞利商嘛!那么这就简单了,利用我们第二小节讲到的广义瑞利商的性质,我们知道我们的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_72,第72张 最大值为矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_73,第73张 的最大特征值,而对应的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_74,第74张 其实为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_73,第73张 的最大特征值对应的特征向量!而 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_76,第76张 的特征值和 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_73,第73张 的特征值相同, 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_76,第76张 的特征向量 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_54,第54张多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_73,第73张 的特征向量 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_74,第74张 满足 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_82,第82张

注意到对于二类的时候,多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_83,第83张 的方向恒为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_84,第84张 ,因为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_85,第85张
多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_86,第86张
我们在之前注意到了 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_87,第87张 其实是一个标量,即上式可以表示为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_88,第88张
不妨令 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_89,第89张 ,将其带入:多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_90,第90张 ,可以得到 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_91,第91张 , 也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_92,第92张

四、多类LDA原理

有了二类LDA的基础,我们再来看看多类别LDA的原理。

假设我们的数据集 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_93,第93张,其中任意样本 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_39,第39张多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_40,第40张 维向量,多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_96,第96张 。我们定义 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_97,第97张 为第j类样本的个数,多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_98,第98张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的集合,而 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_100,第100张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的均值向量,定义 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_102,第102张 为第 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_43,第43张 类样本的协方差矩阵。在二类LDA里面定义的公式我们可以类推到多类LDA

由于我们是多类向低维空间投影,则此时投影到的低维空间就不是一条直线了,而是一个超平面。假设我们投影到的低维空间的维度为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张 ,对应的基向量为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_105,第105张 ,基向量组成的矩阵为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_106,第106张 , 它是一个 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_107,第107张

此时我们的优化目标可以变成为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_108,第108张
其中 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_109,第109张多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_110,第110张为所有样本的均值向量, 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_111,第111张
但是这里有一个问题,就是 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_112,第112张多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_113,第113张 都是矩阵,不是标量,我们无法把它作为一个标量函数来优化!也就是说,我们无法直接用二类LDA的优化方法,怎么办呢?一般来说,我们可以用其他的一些优化目标来进行替换。

常见的一个LDA多类优化目标函数定义为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_114,第114张
其中 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_115,第115张多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_05,第5张 的主对角线元素的乘积,多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_106,第106张多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_118,第118张 的矩阵。
多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_119,第119张 的优化过程可以转化为:
多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_120,第120张
仔细观察上式最右边的等式,这不就是广义瑞利商嘛!最大值是矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_76,第76张 的最大特征值,最大的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张 个这样的广义瑞利商的值的乘积就是矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_76,第76张 的最大的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张 个特征值的乘积,此时对应的矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_106,第106张 为这最大的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张

由于 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_106,第106张 是一个利用了样本的类别得到的投影矩阵,因此它降维能降到的维度 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张 的最大值为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_129,第129张 。为什么最大维度不是类别数 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_130,第130张 呢?因为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_69,第69张 中每个 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_132,第132张 的秩为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_133,第133张 ,因此协方差矩阵相加后最大的秩为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_130,第130张 ( 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_135,第135张 ),但是由于如果我们知道前 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_129,第129张多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_50,第50张 后,最后一个 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_138,第138张 可以由前 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_129,第129张多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_50,第50张 线性表示(因为这里我们给定样本之后,所有样本的均值 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_110,第110张 是已知的),因此 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_69,第69张 的秩最大为 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_129,第129张 ,即特征向量最多有 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_129,第129张

五、LDA算法实现的流程

在第三小节和第四小节我们给大家介绍了LDA的原理,现在我们对LDA降维的流程做一个总结。

输入:数据集 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_93,第93张,其中任意样本 多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_39,第39张多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_40,第40张 维向量,多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_96,第96张 ,降维到的维度 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_104,第104张

输出:降维后的样本集多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_150,第150张

  • ① 计算类内散度矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_151,第151张
  • ② 计算类间散度矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_监督学习_152,第152张
  • ③ 计算矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_153,第153张
  • ④ 计算 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_153,第153张 的最大的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_155,第155张 个特征值和对应的 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_155,第155张 个特征向量 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_157,第157张 ,得到投影矩阵 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_158,第158张
  • ⑤ 对样本集中的每一个样本特征 多类LDA 代码 lda详解,多类LDA 代码 lda详解_机器学习_159,第159张 ,转化成为新的样本 多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_160,第160张
  • ⑥ 得到输出样本集 多类LDA 代码 lda详解,多类LDA 代码 lda详解_多类LDA 代码_161,第161张

以上就是使用LDA进行降维的算法流程。实际上LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为该样本的预测类别。

六、LDA与PCA之间的异同

LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得我们好好的比较一下两者的异同点。

首先我们看看相同点:

  • ① 两者均可以对数据进行降维。
  • ② 两者在降维时均使用了矩阵特征分解的思想。
  • ③ 两者都假设数据符合高斯分布。

不同点:

  • LDA是有监督的降维方法,而PCA是无监督的降维方法
  • LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
  • LDA除了可以用于降维,还可以用于分类。

-④ LDA选择分类性能最好的投影方向,而PCA选择样本点具有最大方差的投影方向。

在某些数据分布下LDAPCA的降维效果更优,如下图所示:

多类LDA 代码 lda详解,多类LDA 代码 lda详解_数据_162,第162张

当然,某些某些数据分布下PCALDA的降维效果更优,如下图所示:

多类LDA 代码 lda详解,多类LDA 代码 lda详解_最小值_163,第163张

七、总结

LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在我们进行图像识别图像识别相关的数据分析时,LDA是一个有力的工具。下面总结下LDA算法的优缺点。

LDA算法的主要优点有:

  • ① 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
  • LDA在样本分类信息依赖均值而不是方差的时候,优于PCA之类的降维算法。

LDA算法的主要缺点有:

  • LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
  • LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
  • LDA在样本分类信息依赖方差而不是均值的时候,降维效果不是很好。
  • LDA可能过度拟合数据。

https://www.xamrdz.com/backend/3tj1942355.html

相关文章: