1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)

1.2. Linear and Quadratic Discriminant Analysis

补:写完算法才发现这章内容有点长,所以我决定把LDA和QDA的区别和有关降维的应用放到下一章去讲

一、简介

西瓜书里是这样介绍的线性判别的:

LDA的思想十分朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)_第1张图片

sklearn的这段话给出了几个信息:
第一,判别的核心叫做决策面(decition surface),而线性判别和二次判别具有不同的决策面。
第二,线性判别和二次判别作为经典的分类算法,有几个很是吸引人的优点:

  1. 它们具有封闭解(我的理解是正常凸函数),很容易计算
  2. “固有的多类”:它们天生具有多分类的特性
  3. 已被证明有很好的性能(这才是最主要的吧)
  4. 无需调参(这个也很香啊)

二、算法详解

线性判别有概率模型非概率模型两种阐述方式
(依据李航老师的《统计学习方法》,概率模型和非概率模型的主要区别在于,其内部变量是否可以表示为联合概率分布的形式

2.1 非概率模型

西瓜书上是从非概率模型的角度对LDA阐述的,因为从这个角度,我们可以更直观的理解LDA的内核。

根据我们在简介里对其思想的阐述,我们发现有两个抽象的概念在约束模型。分别是 “同类样例的投影点尽可能接近”“异类样例的投影点尽可能远离”

下面我们以二维平面内的二分类举例:

首先,我们要找到一个线性变换 ω \omega ω 来将数据集投影到一条直线上(一维空间)。( ω \omega ω是优化目标

2.1.1 “类间散度矩阵”

于是,我们计算正负两类的样本中心点,并记为 μ 0 , μ 1 \mu_0,\mu_1 μ0,μ1.
既然 μ 0 , μ 1 \mu_0,\mu_1 μ0,μ1表示原空间(二维空间)同类样本的中心,那么 ω T μ 0 , ω T μ 1 \omega^T\mu_0,\omega^T\mu_1 ωTμ0,ωTμ1 是不是就可以可以投影空间中(一维空间)同类样本的中心。

要让“异类样例的投影点尽可能远离”,实际上,就是让这两个类的中心远离,也就是让它们之间的“距离”最远。 这里,我们距离的定义为 l 2 − n o r m l_2-norm l2norm

这样,我们得到了第一个优化目标,即最大化 ∥ ω T μ 0 − ω T μ 1 ∥ 2 2 \parallel\omega^T\mu_0-\omega^T\mu_1\parallel_2^2 ωTμ0ωTμ122
化简一下为 ω T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T ω \omega^T(\mu_0-\mu_1)(\mu_0-\mu_1)^T\omega ωT(μ0μ1)(μ0μ1)Tω(这是一个常数)

为了方便表示,记 ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) (\mu_0-\mu_1)(\mu_0-\mu_1) (μ0μ1)(μ0μ1) S w S_w Sw
( S w S_w Sw)的意思是“类间散度矩阵”(within-class scatter matrix)

2.1.2 “类内散度矩阵”

μ 0 , μ 1 \mu_0,\mu_1 μ0,μ1只能表示样本的中心,却不能表示样本的离散程度。对于离散程度,我们用协方差来表示。

记正负类样本的协方差矩阵为 Σ 0 , Σ 1 \Sigma_0,\Sigma_1 Σ0,Σ1. 则每类样本的离散程度可表示为 ω T Σ 0 ω , ω T Σ 1 ω \omega^T\Sigma_0\omega,\omega^T\Sigma_1\omega ωTΣ0ω,ωTΣ1ω .

这样,我们又得到了第二个目标,即最小化 ω T Σ 0 ω + ω T Σ 1 ω \omega^T\Sigma_0\omega+\omega^T\Sigma_1\omega ωTΣ0ω+ωTΣ1ω
化简一下为 ω T ( Σ 0 + Σ 1 ) ω \omega^T(\Sigma_0+\Sigma_1)\omega ωTΣ0+Σ1ω(这是也一个常数)

为了方便表示,记 Σ 0 + Σ 1 \Sigma_0+\Sigma_1 Σ0+Σ1 S b S_b Sb
( S b S_b Sb)的意思是“类内散度矩阵”(between-class scatter matrix)

2.1.3 广义瑞利商

结合两个目标,我们采用比值定义的方法来定义我们的目标函数

J = ω T S b ω ω T S w ω J = \frac{\omega^TS_b\omega}{\omega^TS_w\omega} J=ωTSwωωTSbω (成为广义瑞利商)

我们的目的是最大化目标函数J

多分类推广

线性判别在多分类上的推广体现在定义了整个样本集的数据分布。具体可参照西瓜书第三章第4小节。

2.2 概率模型

sklearn对线性判别的阐述是基于贝叶斯决策理论的。从这个角度,我们将引出二次判别分析(QDA)并阐明它与LDA的不同

2.2.1 基于贝叶斯的基本模型

在这部分,GDA与LDA保持一致,没有分别。

1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)_第2张图片

看到sklearn给出的公式,我们可以发现这部分其实很好理解。

  1. 基于贝叶斯决策,我们通过求出样本 x 属于类别 k 的概率,并选取概率最大的一类作为最后的分类。
  2. 基于贝叶斯公式,x的概率(即分母)并不影响的不同类别的概率之间的大小关系,起决定性作用的是是样本x与类别 k 的联合概率分布,也就是先验概率P(x=k)与概率似然P(x|y=k)的乘积。
  3. 更具体的,通常情况下,我们假定似然函数P(x|y=k)服从高斯分布。

2.2.2 QDA(二次判别分析)

1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)_第3张图片

最神奇的事情来了,为了方便计算,我们对后验概率P(y=k|x)取对数,得到了以上的新的目标函数log-posterior

这就是QDA的全部内容。

哈哈哈哈哈哈,开玩笑。我们来对这个目标还是做个简单的分析。

目标函数分为四项:

  1. 第一项最重要(划重点),它来自概率似然系数对数。它的组成主要是第k类样本协方差矩阵行列式。它的含义是:作为高斯分布中的形状参数,表示了该样本的分布(有时候也说方差,但有些片面,只是方差更直观,一定程度上代表了分布)。它的作用是,对每个类别的样本的协方差矩阵做优化,以提升目标函数的值
  2. 第二项最主要,它其实是样本点之间的马氏距离,反应的其实就是非概率模型里的“类内散度”。它和第一项共同构成这一类别样本点的分布特征。
  3. 第三项是先验概率,通常表示为该类样本占总样本的比例,即 N K N \frac{N_K}{N} NNK。总之,我们一般视其为常数。
  4. 第四项,铁常数,没啥好说的。

2.2.3 LDA(线性判别分析)

1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)_第4张图片

LDA是QDA的一种特殊情况,它对所有样本集做了一个假设,那就是,所有的样本都服从一个分布(我查资料的时候,发现有的博客里写高斯分布,其实是不严谨的。只能说,它们满足同分布,而生活中的数据一般情况下满足高斯分布)

在这种情况下,我们对数后验概率中的第一项(表示数据分布的一项),对不同类别就没有区分度了,可舍弃或视为常数。

对这个对数后验概率化简,我们可以得到一个关于样本x的一次函数,这就是为什么这个算法为什么被称为线性判别的原因。

小总结

这篇博客里,我主要介绍了LDA和QDA的思想与算法
我们还有关于它们的区别、应用没有介绍。
大家可以看下一篇博客(如果我已经写完了的话)。

说实话,最近我都是日更,还翘了很多课,制作不易,还请点个赞,哈哈哈哈哈哈。

你可能感兴趣的:(从sklearn学机器学习,机器学习,python,算法)