前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 R语言的判别分析介绍与实践(1)

基于 R语言的判别分析介绍与实践(1)

作者头像
庄闪闪
发布2022-05-24 15:47:14
1.1K0
发布2022-05-24 15:47:14
举报
文章被收录于专栏:庄闪闪的R语言手册

前言

本期介绍的是 《Machine Learning with R, tidyverse, and mlr》 一书的第五章—— 判别分析(discriminant analysis)。 判别分析是解决分类问题的多种算法的总称,通过将预测变量组合成新的变量来找到预测变量的新表示(必须是连续的),从而最好地区分类。这种思想和一些降维算法有些相似。

1. 判别分析简介

假设我们要根据病人的基因表达来预测他们对药物的反应,测量 1000 个基因表达水平(即 1000 个预测变量),记录它们对药物的反应是积极的(Pos)、消极的(Neg),还是完全没有反应(None)(一个三分类问题)。

一个有多种预测变量的数据集可能有以下问题:

  • 数据难以探索和绘制;
  • 可能有许多预测变量没有或很少包含预测信息;
  • Curse of dimensionality。

1.1 判别函数

在这个例子中,同时绘制 1000 个基因表达水平并解释类之间的差异性或相似性几乎是不可能的。但是,我们可以使用判别分析来获取所有信息,并将其压缩成一个可管理数量的判别函数,每个判别函数都是原始变量的组合。 也就是说,判别分析将预测变量作为输入,并找到这些变量的一种新的、低维的表示方式(即判别函数),以最大化类之间的分离。过程如 Fig 1 所示。

Fig 1. 判别分析降维过程

判别函数的数量通常为:

  • 类个数减 1;
  • 预测变量的个数;

取二者更小值。

本例中,包含在这 1000 个预测变量中的信息将被压缩成两个变量(三个类 -1)。现在就可以很容易地将这两个新变量画在一起,并查看这三个类是如何分离的。

包括含有很少或没有预测信息的预测变量会增加噪声,这会对学习的模型性能产生负面影响。当判别分析算法学习它们的判别函数时,就会赋予预测信息较大的预测变量更大的权重,从而更好地判别类。含有很少或没有预测信息的预测变量被赋予较少的权重,对最终模型的贡献也较少。

:尽管可以通过设置权重减轻弱预测变量的影响,但判别分析模型在进行特征选择(删除弱预测变量)后仍然会表现得更好。

1.2 Curse of dimensionality

Curse of dimensionality 在处理高维数据(包含许多预测变量的数据)时会出现问题。随着特征空间(预测变量所有可能组合的集合)的变大,该空间中的数据就会变得稀疏。更简单地说,对于一个数据集中相同数量的情况,若稀疏地增加特征空间维数,那么这些实例之间的距离就会越来越远,它们之间的空隙就会越来越大,如 Fig 2 所示。

Fig 2. 随着维度的增加,数据变得更加稀疏

这种维数增加的后果是,特征空间的某个区域可能只有很少的实例来占据,因此算法更有可能从"例外的"实例中学习。在数据中。当算法从例外实例中学习时,会导致模型的过度拟合,这就是 curse of dimensionality

然而,这并不是说预测变量越多就越不好。对于大多数问题,添加有预测价值的预测变量可以提高模型的预测精度。通过实行特征选择和降维可以进一步防范 curse of dimensionality 造成的过拟合。

判别分析两种最基本和常用的算法是:

  1. 线性判别分析 linear discriminant analysis (LDA)
  2. 二次判别分析 quadratic discriminant analysis (QDA)

LDAQDA 分别学习类之间的线性(直线)和曲线决策边界.

2. LDA

2.1 二分类问题

假设我们要用两个预测变量来分离数据中的两个类,如 Fig 3 所示。LDA 的目标是学习一种新的数据表示方式,将每个类的质心分开,同时保持类内方差尽可能低。质心就是特征空间中所有预测因子的均值(一个均值向量)的点。然后,LDA 找到一条穿过原点的线,进行投影并同时:

  • 最大化关于这条线的类质心之间的差异
  • 最小化关于这条线的类内方差

即通过最大化

\frac{(\bar{x1}-\bar{x2})^2}{s_1^2+s_2^2}

来选择合适的直线。分子是类均值之差,分母是直线上每个类的方差之和。

Fig 3. 二维下判别分析

为什么不简单地找出使质心间距最大化的直线呢?因为最好地分离质心的这条线并不能保证不同类最好地分离,如 Fig 4 所示

Fig 4. 是否仅使质心间距最大化对比

  • 左图中,绘制的一条直线只是将两个类的质心分离最大化,当将数据投影到这条直线上时,类并没有完全分离,因为相对较高的方差意味着它们彼此重叠。
  • 右图中,直线试图最大化质心距离,同时最小化沿该线的每个类的方差。这导致质心稍微靠近一些,但方差小得多,这样两个类是完全分开的。

这条直线称为判别函数,它是原始变量的线性组合。例如,一个判别函数可以用如下公式来描述:

DF=-0.5*var_1+1.2*var_2+0.85*var_3

判别函数是变量的线性组合,每个变量乘以的值称为正则判别函数系数,每个变量的权重为它的正则判别函数系数对类分离的贡献。

2.2 多分类问题

2.2.1 两个预测变量

判别分析可以处理两类以上的分类问题,但在这种情况下,它如何学习得到最佳直线呢? 它不是试图最大化类质心之间的分离,而是最大化每个类质心和数据的大质心(所有数据的质心,忽略类成员关系)之间的分离。如 Fig 5 所示,每个类质心用三角表示,数据大质心用十字表示。

Fig 5. LDA 处理三分类

LDA 首先找出最能将类质心与大质心分离并使各类的方差最小的线,第二条直线与第一条正交。然后,数据被投影到这些直线上,这样,每个实例都会得到每个判别函数的判别分数(沿着新直线的值)。这些判别分数可以相互作图,形成原始数据的新表示形式。

2.2.2 多个预测变量

Fig 6. LDA 多分类多个预测变量问题

Fig 6 所示是三个预测变量分三类的情况。首先,LDA 求出的判别函数使各类质心与大质心之间的距离最大化,同时使各类质心之间的方差最小。接下来,LDA 找到第二个判别函数(与第一个正交),它也试图在最小化方差的同时最大化分离质心(这里读者们可以思考一下为什么只需要两个判别函数)。通过在数据中获取每个实例的判别分数,我们可以只在两个维度上绘制数据。

但如果不是仅仅是三个预测变量,比如有 1000个(前面例子),LDA 将把所有预测变量信息压缩到两个变量中。

3. QDA

通常情况下类有不同的协方差,此时 QDA 往往比 LDA 表现得更好。QDA 不是学习直线,而是学习曲线。因此,它也非常适合于一类由非线性决策边界最好分离的情况。

Fig 7. 两个类具有相等的协方差(变量 1 和变量 2 之间的关系对两个类来说是相同的)和不等的协方差的例子

Fig 7 左图中两个类有相等的协方差,因为对于每个类来说,变量 1 增加,变量 2 减少的数量相同。在这种情况下,LDA 和 QDA 会找到相似的判别函数,尽管 LDA 由于灵活性较差比 QDA 更不容易出现过拟合。Fig 7 右图中,两个类的协方差不同。在这种情况下,QDA 会找到一个曲线判别函数,当数据被投影到它上面时,它会比线性判别函数在分离类方面做得更好。

4. 使用 LDA 和 QDA 进行预测

假设此时已经构造出判别函数并将高维数据压缩成少量的判别函数。LDA 和 QDA 如何利用这些信息对新的观测结果进行分类? 这里将会使用一个非常重要的统计定理—— Baye’s rule

Baye’s rule 可以告诉我们已知数据中任何一个实例的预测变量的值,这个实例属于 k 类的概率是多少,即

p(k|x)

:

p(k|x)=p(x|k)×p(k)/p(x)

。通常要得到

p(x)

较为困难,更多使用

p(k|x)\propto p(x|k)×p(k)
posterior \propto likelihood × prior
p(k)

: 先验,为数据集中实例属于类 k 的比例

p(x|k)

: 似然,将数据投影到它们的判别函数上,再估计它们的概率密度。判别分析假设数据是正态分布的,因此它通过将正态分布拟合到每一类,并结合判别函数来估计概率密度。

Fig 8. 假设每个类的概率密度是正态分布的,每个分布的中心是类的质心

Fig 8 展示的是有一个和两个判别函数时估计所得的概率密度图。可以看到,沿着判别函数直线靠近类质心的实例概率密度高,而远离类质心的实例概率密度低。

一旦得到先验和概率密度,便可以根据 Baye’s rule 对每一类的后验概率 p(k|x) 进行估计,概率最高的一类就是这个实例的分类。

小编有话说

本期主要是对两种常见的判别分析算法进行简介,其中也涉及了降维和 Baye’s rule 等统计思想。下期内容将学习建立线性和二次判别分析模型,其中仍会用到交叉验证、混淆矩阵等,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 庄闪闪的R语言手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. 判别分析简介
    • 1.1 判别函数
      • 1.2 Curse of dimensionality
      • 2. LDA
        • 2.1 二分类问题
          • 2.2 多分类问题
            • 2.2.1 两个预测变量
            • 2.2.2 多个预测变量
        • 3. QDA
        • 4. 使用 LDA 和 QDA 进行预测
        • 小编有话说
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档