sklearn文档 — 1.2. 线性与二次判别分析法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn文档 — 1.2. 线性与二次判别分析法相关的知识,希望对你有一定的参考价值。

参考技术A

线性判别分析法( discriminant_analysis.LinearDiscriminantAnalysis
) 和二次判别分析法( discriminant_analysis.QuadraticDiscriminantAnalysis
) 是两种经典的分类器。正如他们的名字所示,分别为线性的与二次决策面。
这两种方法很具有吸引力,因为他们拥有容易计算,并且本质是多类的闭合解,提供了在无超参数情况下的良好性能。

这个绘图展示了线性与二次判别分析法各自的决策边界。第二行展示了线性判别分析法只能得出一个线性的边界,而二次判别分析法能够得到一个更灵活的二次边界。

discriminant_analysis.LinearDiscriminantAnalysis
能够同来执行监督降维,通过把输入数据到投影由最大化类间隔(空间)的方向的线性子空间(在下面的数学部分会讨论其确切含义)。让输出的维数个数比类的个数少是必要的,所以这通常是一个相当巨大的维数降维,并且只在多类中才有效。
discriminant_analysis.LinearDiscriminantAnalysis.transform
的实现使得可以通过设置构造器参数** n_components **来设置所需的维度。但是这个参数丝毫不会影响 discriminant_analysis.LinearDiscriminantAnalysis.fit
或 discriminant_analysis.LinearDiscriminantAnalysis.predict

LDA(线性判别分析法)和QDA(二次判别分析法)能够使用一个简单的概率模型来分别派生出。这个模型是关于每一类** k 中关于数据概率 P(X|y = k) 的条件分布。然后可以通过使用贝叶斯来获得预测结果:

为了了解LDA在降维中的是如何应用的,根据上面解释的LDA分类规则开始几何重构是有必要的。我们定义** K 作为目标类的总数。自从在LDA里,我们定义所有的类拥有相同的被估计出的协方差 Σ **,我们可以重缩放输入数据以使得将其定义为如下:

然后可以表明在缩放之后对数据点进行分类等效于获得估计类平均值** μk^* ,其在欧氏距离上最靠近数据点。但是这一点可以通过投影到由所有类的均值 μk^* 生成的仿射 K - 1 子空间之后完成。这表明其是内置在LDA分类器中,通过线性投影在 K - 1 维度空间上的降维操作。
我们可以进一步的降低更多的维度,为了选出
L ,可以通过投影在线性子空间 HL ,其使得投影后, μk^* 的方差最大化(实际上,我们正在为被转换的类均值 μk^* 提供一种PCA的形式)。在 discriminant_analysis.LinearDiscriminantAnalysis.transform
函数,
L 在这函数中代表的是 n_components **参数。可以查看 [3] 来获得更多的细节。

收缩是一个用于提高估量协方差矩阵的工具,其中训练集的数据是比特征的数量要小。在这种情况下,经验样本协方差是一种不好的估计。收缩LDA可以通过在 discriminant_analysis.LinearDiscriminantAnalysis
类中设置** shrinkage 参数为 auto 。这样会在通过引入Ledoit and Wolf [4] 的论点后,以分析的方式自动选出合适的收缩参数。但要注意的是,当前的收缩只适合在 solver 参数设置为 \'lsqr\' ** 或 ** \'eigen\' **时有效。

**shrinkage **参数同样也可以手动设置为[0, 1]之间的值。尤其是值设置为0时代表着不收缩(其意味着会使用经验样本协方差矩阵)。和值设置为1时对应着完全收缩(其意味着方差的对角矩阵会被用来作为协方差矩阵的估计)。设置其之间值(即(0, 1))将会估计出对应的协方差矩阵的收缩。

默认的求解器是** \'svd\' 。它可以执行分类和变换,并且不依赖协方差矩阵的计算。这一特性在应对大量特征数量时是一个优点,但 \'svd\' **求解器却无法进行收缩。

**\'lsqr\' **求解器是一个对于分类问题是十分有效的算法(只能处理分类问题),并且其支持收缩。

**\'eigen\' 求解器是基于类散射与类散射比之间的最优值。他可以处理分类和变换问题,同时也支持收缩。但是, \'eigen\' **求解器需要计算器协方差矩阵,所以它在处理大量特征的情况下可能不是一个好选择。

(在尝试翻译这篇文档的时候难免会因为各种问题而出现错翻,如果发现的话,烦请指出,谢谢> <)

《App Inventor 2 定制与二次开发》的配套资源和一些常用扩展插件的下载地址

《App Inventor 2 定制与二次开发》这本书的配套资源和一些常用扩展插件的下载地址:

https://github.com/xjbclz/appinventor

以上是关于sklearn文档 — 1.2. 线性与二次判别分析法的主要内容,如果未能解决你的问题,请参考以下文章

《机器学习》周志华 习题答案3.6

LAD线性判别模型简介及sklearn参数

线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

您可以使用 LDA(线性判别分析)作为 sklearn 管道的一部分进行预处理吗?

R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

机器学习&sklearn笔记:LDA(线性判别分析)