关闭

【Scikit-Learn 中文文档】线性和二次判别分析 - 监督学习 - 用户指南 | ApacheCN

标签: Scikit-Learn 中文文档Sklearn 中文文档线性和二次判别分析
182人阅读 评论(0) 收藏 举报
分类:

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html

英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutorial.html

官方文档: http://scikit-learn.org/0.19/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(觉得不错麻烦给个 Star,我们一直在努力)

贡献者: https://github.com/apachecn/scikit-learn-doc-zh#贡献者


1.2. 线性和二次判别分析

Linear Discriminant Analysis(线性判别分析)(discriminant_analysis.LinearDiscriminantAnalysis) 和 Quadratic Discriminant Analysis (二次判别分析)(discriminant_analysis.QuadraticDiscriminantAnalysis) 是两个经典的分类器。 正如他们名字所描述的那样,他们分别代表了线性决策平面和二次决策平面。

这些分类器十分具有魅力,因为他们可以很容易计算得到闭式解,其天生的多分类特性,在实践中已经证明很有效,并且不需要再次调参。

ldaqda

以上这些图像展示了 Linear Discriminant Analysis (线性判别分析)以及 Quadratic Discriminant Analysis (二次判别分析)的决策边界。其中,最底行阐述了线性判别分析只能学习线性边界, 而二次判别分析则可以学习二次函数的边界,因此它相对而言更加灵活。

示例:

Linear and Quadratic Discriminant Analysis with covariance ellipsoid: LDA和QDA在特定数据上的对比

1.2.1. 使用线性判别分析来降维

discriminant_analysis.LinearDiscriminantAnalysis 可以通过给予包含了最大化不同类别间距的方向的线性子空间(subspace)投放输入数据, 从而用来执行监督下的降维。输出的维度必然会比原来的类别数量更少的。因此它是总体而言十分强大的降维方式,同样也仅仅在多分类环境下才会起作用。

实现方式在 discriminant_analysis.LinearDiscriminantAnalysis.transform 中.关于维度的数量可以通过n_components参数来调节 . 值得注意的是,这个参数不会对 discriminant_analysis.LinearDiscriminantAnalysis.fit 或者 discriminant_analysis.LinearDiscriminantAnalysis.predict 产生影响.

示例:

Comparison of LDA and PCA 2D projection of Iris dataset: 在 Iris 数据集对比 LDA 和 PCA 之间的降维差异

1.2.2. LDA 和 QDA 分类器的数学公式

LDA 和 QDA 都是源于简单的概率模型,这些模型对于每一个类别 k 的相关分布 P(X|y=k) 都可以通过贝叶斯定理所获得。

P(y=k | X) = \frac{P(X | y=k) P(y=k)}{P(X)} = \frac{P(X | y=k) P(y = k)}{ \sum_{l} P(X | y=l) \cdot P(y=l)}

并且我们选择能够最大化条件概率的类别 k.

更详细地,对于线性以及二次判别分析, P(X|y) 被塑造成一个多变量的高斯分布密度:

p(X | y=k) = \frac{1}{(2\pi)^n |\Sigma_k|^{1/2}}\exp\left(-\frac{1}{2} (X-\mu_k)^t \Sigma_k^{-1} (X-\mu_k)\right)

为了使用该模型作为分类器使用,我们需要通过训练集数据预测更重要的类别 P(y=k) (通过每个类 k 的实例的概率预测) 类别均值 \mu_k (用经验的样本类别均值)以及协方差矩阵(过用经验的样本类别协方差或者正则化的估计器estimator: 见下面的 shrinkage章节).

在 LDA 中,每个类别 k 的高斯分布共享相同的协方差矩阵:\Sigma_k = \Sigma for all k。可以带来线性的 决策平面, 正如所见, 通过比较log似然比 \log[P(y=k | X) / P(y=l | X)] 。

\log\left(\frac{P(y=k|X)}{P(y=l | X)}\right) = 0 \Leftrightarrow (\mu_k-\mu_l)\Sigma^{-1} X = \frac{1}{2} (\mu_k^t \Sigma^{-1} \mu_k - \mu_l^t \Sigma^{-1} \mu_l)

对于 QDA 而言,没有关于高斯协方差矩阵 \Sigma_k 的假设,因此带来二次决策平面. 更多细节见 [3] .

Note

 

与高斯朴素贝叶斯的关系

如果在QDA模型中假设协方差矩阵是对角的,那么在每个类别中的输入数据则被假定是相关依赖的。 而且结果分类器会和高斯朴素贝叶斯分类器 naive_bayes.GaussianNB 相同。

1.2.3. LDA 的降维数学公式

为了理解 LDA 在降维上的应用,它对于进行 LDA 分类的几何重构是十分有用的。我们用 K 表示目标类别的总数。 由于在 LDA 中我们假设所有类别都有相同预测的协方差 \Sigma ,我们可重新调节数据从而让让协方差相同。

X^* = D^{-1/2}U^t X\text{ with }\Sigma = UDU^t

在缩放后可以分类数据点和找到离数据点最近的欧式距离相同的预测类别均值。但是它可以在投影到 K-1 个由所有 \mu^*_k 个类生成的仿射子空间
H_K 之后被完成。这也表明,LDA 分类器中存在一个利用线性投影到 K-1 个维度空间的降维工具。

我们可以通过投影到可以最大化 \mu^*_k 的方差的线性子空间 H_L 以更多地减少维度,直到一个选定的 L 值 (实际上,我们正在做一个类 PCA 的形式为了实现转换类均值 \mu^*_k) discriminant_analysis.LinearDiscriminantAnalysis.transform 方法. 详情参考 [3] 。

1.2.4. Shrinkage(收缩)

收缩是一个在训练样本数量相比特征而言很小的情况下可以提升预测(准确性)的协方差矩阵。 在这个情况下,经验样本协方差是一个很差的预测器。LDA 收缩可以通过设置 discriminant_analysis.LinearDiscriminantAnalysis 类的 shrinkage参数为 ‘auto’ 以得到应用。

shrinkage parameter (收缩参数)的值同样也可以手动被设置为 0-1 之间。特别地,0 值对应着没有收缩(这意味着经验协方差矩阵将会被使用), 而 1 值则对应着完全使用收缩(意味着方差的对角矩阵将被当作协方差矩阵的估计)。设置该参数在两个极端值之间会估计一个(特定的)协方差矩阵的收缩形式

shrinkage

1.2.5. 预估算法

默认的 solver 是 ‘svd’。它可以进行classification (分类) 以及 transform (转换),而且它不会依赖于协方差矩阵的计算(结果)。这在特征数量特别大的时候就显得十分具有优势。然而,’svd’ solver 无法与 shrinkage (收缩)同时使用。

‘lsqr’ solver 则是一个高效的算法,它仅仅只能用于分类使用,而且它支持 shrinkage (收缩)。

‘eigen’(特征) solver 是基于 class scatter (类散度)与 class scatter ratio (类内离散率)之间的优化。 它既可以被用于classification (分类)以及 transform (转换),此外它还同时支持收缩。然而,该解决方案需要计算协方差矩阵,因此它可能不适用于具有大量特征的情况。

Examples:

Normal and Shrinkage Linear Discriminant Analysis for classification: Comparison of LDA classifiers with and without shrinkage.

References:

[3] (12) “The Elements of Statistical Learning”, Hastie T., Tibshirani R., Friedman J., Section 4.3, p.106-119, 2008.
[4] Ledoit O, Wolf M. Honey, I Shrunk the Sample Covariance Matrix. The Journal of Portfolio Management 30(4), 110-119, 2004.



中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html

英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutorial.html

官方文档: http://scikit-learn.org/0.19/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(觉得不错麻烦给个 Star,我们一直在努力)

贡献者: https://github.com/apachecn/scikit-learn-doc-zh#贡献者

有兴趣的大佬们也可以和我们一起来维护,持续更新中 。。。

机器学习交流群: 629470233

3
0
查看评论

判别模型:logistic,GDA,QDA(一)

前言准备: 输入变量可称呼为预测变量、自变量、属性变量、解释变量,有时候就称为变量; 输出变量称为:响应变量或因变量。本篇目的:预测定性响应变量的方法及分类,预测一个定性响应变量也指对观测分类(classifying),因为它涉及到将观测分配到一个类别中。大部分的分类方法先从预测定性变量不同类别...
  • G090909
  • G090909
  • 2015-12-06 19:28
  • 3462

线性判别分析(Linear Discriminant Analysis)

从贝叶斯公式出发,得到了线性判别分析的公式,这里从另外一个角度来看线性判别分析,也就是常说的Fisher判别式。其实Fisher判别式就是线性判别分析(LDA),只是在讨论Fisher判别式的时候,更侧重于LDA的数据降维的能力。
  • daunxx
  • daunxx
  • 2016-07-11 16:34
  • 18360

【Scikit-Learn 中文文档】线性和二次判别分析 - 监督学习 - 用户指南 |

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html 英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutor...
  • V_Princekin
  • V_Princekin
  • 2017-11-21 14:39
  • 127

scikit-learn 中文文档-线性和二次判别分析-监督学习|ApacheCN

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html 英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutor...
  • qq_41127512
  • qq_41127512
  • 2017-11-21 20:10
  • 66

【Scikit-Learn 中文文档】4 线性和二次判别分析 - 监督学习 - 用户指南 | ApacheCN

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html 英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutor...
  • airufengye
  • airufengye
  • 2017-11-22 19:26
  • 17

【Scikit-Learn 中文文档】四:线性和二次判别分析 - 监督学习 - 用户指南 | ApacheCN

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html 英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutoria...
  • lonsonlee
  • lonsonlee
  • 2017-11-21 13:44
  • 92

【Scikit-Learn 中文文档】流形学习 - 监督学习 - 用户指南 | ApacheCN

流形学习是一种减少非线性维度的方法。 这个任务的算法基于许多数据集的维度只是人为导致的高。 高维数据集可能非常难以可视化。 虽然可以绘制两维或三维数据来显示数据的固有结构,但等效的高维图不太直观。 为了帮助可视化数据集的结构,必须以某种方式减小维度。 通过对数据的随机投影来实现降维的最简单方法。 ...
  • u012185296
  • u012185296
  • 2017-11-23 12:06
  • 178

【Scikit-Learn 中文文档】半监督学习 - 监督学习 - 用户指南 | ApacheCN

半监督学习 适用于在训练数据上的一些样本数据没有贴上标签的情况。 sklearn.semi_supervised 中的半监督估计, 能够利用这些附加的未标记数据来更好地捕获底层数据分布的形状,并将其更好地类推到新的样本。 当我们有非常少量的已标签化的点和大量的未标签化的点时,这些算法表现均良好。
  • u012185296
  • u012185296
  • 2017-11-23 11:05
  • 189

【Scikit-Learn 中文文档】高斯过程 - 监督学习 - 用户指南 | ApacheCN

1.7. 高斯过程 高斯过程 (GP) 是一种常用的监督学习方法,旨在解决*回归问题*和*概率分类问题*。 高斯过程模型的优点如下: 预测内插了观察结果(至少对于正则核)。 预测结果是概率形式的(高斯形式的)。这样的话, 人们可以计算得到经验置信区间并且据此来判断是否需要修改(在线拟合,自适应) 在...
  • u012185296
  • u012185296
  • 2017-11-21 16:42
  • 163

【Scikit-Learn 中文文档】支持向量机 - 监督学习 - 用户指南 | ApacheCN

中文文档: http://sklearn.apachecn.org/cn/0.19.0/modules/svm.html 英文文档: http://sklearn.apachecn.org/en/0.19.0/modules/svm.html 官方文档: h...
  • u012185296
  • u012185296
  • 2017-11-21 16:14
  • 125
    个人资料
    • 访问:125207次
    • 积分:2484
    • 等级:
    • 排名:第17528名
    • 原创:50篇
    • 转载:0篇
    • 译文:57篇
    • 评论:54条
    ApacheCN 官方微博
    最新评论