关闭

判别分析

1461人阅读 评论(0) 收藏 举报
分类:

判别分析

1 距离判别分析

  1. 基本概念
    • 判别分析是用以判别个体所属群体的一种统计方法产生于20世纪30年代, 在许多现代自然 科学的各个分支和技术部门中得到了广泛的应用
    • 例-心脏病利用计算机对一个人是否有心脏病进行判断时, 可以抽取一批没有心脏病的人, 测量其 $p$个指标的数据, 然后再取一批已知患有心脏病的人, 同样也测得 p个相同指 标数据, 利用这些数据建立一个判别函数, 并求出相应的临界值, 对新病人可以通过测得其 指标数据, 给出是否患心脏病的结论
    • 其他例子
      • 化石及文物年代的判断,
      • 地质学中, 对是否有矿的判断
      • 质量管理中, 对产品是否合格的判断
      • 植物学中, 对新发现植物种别的判断
  2. 判别分析是统计学中经典的分类预测方法。
    • 根据已有的训练样本, 确定分类型输出变量与数值型输入变量之间的数量关系, 建立 判别函数,
    • 给定新的样本数据, 通过判别函数, 实现对新数据输出变量类别的预测
    • 按照判别准则可以分为距离判别法, Fisher判别法和Bayes判别法
  3. 距离判别法简介
    • 模型 设有分别来自 K 个总体的 nk,k=1,,K 个样本, 每份样本都有若干个输入变量 X1,X2,...,Xp , (p<k) 个观测值, 且均为数值型, 服从正态分布
    • 距离判别法的主要思路
      • 将 nk 个样本数据看做 p 维空间中的点, 分别计算每个类别的类中心和类协方差矩 阵
      • 分别计算新数据到各类别中心的Mahalonobis距离,
      • 根据距离最近的原则, 将新数据点判给距离最近的类别
  4. 模型-马氏距离
    • 两点间马氏距离 设 X,Y 为总体 G 中抽取的样本, G 服从 p 维正态分布 N(μ,V) 定义 X,Y 两点之间的马氏距离为
      dM(X,Y)=(XY)TV1(XY)
    • 新数据点 X 与总体 G 的马氏距离, 设 G 的重心为 μ, 协方差阵为 V, 则
      dM(X,G)=(Xμ)TV1(Xμ)
  5. 判别分析以两个类别为例
    • 设有两个类别, G1 和 G2 ,
    • 从第一个总体中抽取 n 个样本, 从第二个总体中抽取m 个样本,
    • 每个样本有 p 个特征, 分别计算每个总体的均值估计和协方差阵的估计
      μ1=1ni=1nX1i,μ2=1mj=1mX2j
    • 协方差矩阵的估计分别为
      Σ1Σ2=1ni=1n(X1iμ1)(X1iμ1)T=1mj=1m(X2jμ2)(X2jμ2)T
  6. 计算马氏距离
    D2(X,Gi)=(Xμi)(Σ1)1(Xμi), i=1,2

    显然, 马氏距离是点 X 到类中心向量的协方差阵逆加权后的距离。

  7. 判别规则
    • 如果 D2(X,G1)<D2(X,G2) , 则 XG1
    • 如果 D2(X,G1)>D2(X,G2) , 则 XG2
    • 如果 D2(X,G1)=D2(X,G2) , 则 待判断

    进一步可以构造判别函数 W(X)=D2(X,G2)D2(X,G1) ,则相应的判别规则为

    • 如果 W(X)>0 则 XG1
    • 如果 W(X)<0 则 XG2
    • 如果 W(X)=0 则 待判断
  8. 协方差相同时的线性判别函数–二维情形

    lineardis.png

  9. 协方差相同时的线性判别函数–二维情形

    lineardis3.png

  10. 协方差阵不同时–非线性判别函数

    判别函数 W(X)=D2(X,G2)D2(X,G1) 是一个二次判别函数, 是一个分割曲线或超曲面

    nlinear.png

  11. 协方差阵不同时, 三维情形

    3nlinear.png

2 Fisher判别分析

  1. Fisher判别法
    • Fisher 判别法基本思想: R. A. Fisher1932年提出 先投影再判别, 其中投影是Fisher判别的核心思想,
    • 投影的含义是进行线性变换, 之后在低维空间中寻找更好的判别方法
    • 投影法则
      • 从两个总体中抽取具有 p 个指标的样品观测数据, 记为 X1,,Xp ,
      • 借助于方差分析的思想,构造线性判别函数
        y=b0+b1X1+...+bpXp
      • 系数 bi 称为判别系数,表示各输入变量对于判别函数的影响,
      • bi 的确定规则是两组间的组间离差最大, 而每个组的组内离差最小
  2. 寻找最理想的分类判别效果

    二维数据投影到一维空间中

    fisher1.png

  3. 高维情形

    三维数据投影到二维空间中

    fisher2.png

  4. 理论分析
    • 首先应该在输入变量的p维空间中, 找到某个线性组合, 使各类别间的差异最大(和组内差异 相比较而言), 作为第一维度, 代表输入变量组间方差中的最大部分, 得到第一判别函数
    • 然后, 按照同样规则依次找到第二判别函数、
    • 第三判别函数,
    • 且各判别函数之间尽可能独立
  5. 求解-矩阵形式表示(以两组判别为例)
    • 设原始数据为 xki, i=1,,nk,k=1,,K
    • 点 x 的以a为法方向的投影为 ax 则各组数据的投影为axk1,axk2,...,axknk,k=1,,K ,记 Gk 组投影的均值为ax¯(k)=1nki=1nkax¯(k)i,k=1,,K ,
    • 则 K 组数据投影的总均值为 ax¯=1nk=1Ki=1nmax¯(m)i
  6. 组间平方和 记为SSG
    SSG=m=1knm(ax¯(m)ax¯)2=a[m=1knm(x¯(m)x¯)(x¯(m)x¯)]a=aBa
    • 其中 B=[m=1knm(x¯(m)x¯)(x¯(m)x¯)] 代表了各组均值和总 均值的差异
    • 称为组间 SSCP(Sums of Squares and Cross-product Matrix)
  7. 组内离差平方和记为SSE
    SSE==m=1ki=1nm(ax(m)ix¯(m))2a[m=1ki=1nm(x(m)ix¯(m))(x(m)ix¯(m))]a=aEa
    • 其中 E=m=1ki=1nm(x(m)ix¯(m))(x(m)ix¯(m)) 为组内SSCP
    • 注意上述的 E,B 都可以通过数据直接计算得出
  8. 寻找 a 使得SSG尽可能大 而SSE尽可能小,

    考虑SSG和SSE的比值,

    Δ(a)=aBaaEamax

    可以证明使 Δ(a) 达到最大的值为 方程 |BλE|=0 的最大 特征根 λ1 记 方程 |BλE|=0 的全部特征根为 λ1λ2λr>0 , 相应的特征变量为 ν1,ν2,,νr 则判别函数为 yi(x)=νix

  9. Fisher 线性判别函数的求法
    • 不妨记 B=SSG 代表组间离差阵, A=SSE 代表组内离差阵
    • 求 a 使得
      aBaaAa=defΔ(a)

      达到最大。

    • 显然这样的 a 只与方向有关, 因此假设附加条件为 aAa=1
    • 此时问题转化为求 a ,使得 Δ(a)=aBa 在条件 aAa=1 的条件下达到最大
    • 构造拉格朗日目标函数为
      φ(a)=aBaλ(aAa1)
  10. 拉格朗日乘子法
    • 关于 a 和 λ 求导得
      φa=2(BλA)a=0,φλ=1aAa=0
      • 由上述方程组的第一个方程知, λ 是 A1B 的特征根, a 是相应的特征 向量, 且可以证明 λ=Δ(a) , 实际上 Δ(a)=aBa=λaAa=λ
      • 因此上述条件极值问题转化为求 A1B 的最大特征根和相应特征向量问题
      • 设 A1B 的非零特征值为 λ1λ2λr>0 ,相应的满足约束条件的特征向量为 l1,,lr .
      • 取 a=l1 时 Δ(a) 可以达到最大, 最大值为 λ1
      • Δ(a) 的大小可以衡量判别函数 u(X)=aX 的判别效果
      • 定义 λ1/i=1rλi 称为线性判别函数 u1(X)=l11X 的判别能力
  11. 判别能力的定义
    • pi 为第i个判别函数的判别能力
    pi=λih=1rλh
    1. 前m个判别函数的判别能力为
      i=1mpi=i=1mλih=1rλh

      可依据两个标准决定最终取几个判别函数

      • 指定取特征值大于 1 的特征根
      • 前m个判别函数的判别能力达到指定的百分比,一般采用 85\%
  12. Fisher 判别法的进行步骤
    • 首先计算Y空间中样本所属类别的中心
    • 对于新样本, 计算其Fisher 判别函数值, 以及Y空间中与各类别中心的距离
    • 然后利用距离判别法, 判别其归属的类别
      W(Y)=(YY¯)Σ1(Y¯iY¯(j))Y¯=12(Y¯i+Y¯(j))

      当 W(y)>0 时, 新样本 X属于第 i 类

3 判别分析实现(Using R)

  1. Iris数据简介
    • 数据150条,包含三类鸢尾花数据, 每样50个
      • Iris Setosa
      • Iris Versicolour
      • Iris Virginica
    • 四个变量分别为
      • 花萼(sepal) 的长度(length)
      • 宽度 (width)
      • 花瓣(petal) 的长度(length)
      • 宽度 (width)
  2. 数据展示
    head(iris)
    
      Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    1          5.1         3.5          1.4         0.2  setosa
    2          4.9         3.0          1.4         0.2  setosa
    3          4.7         3.2          1.3         0.2  setosa
    4          4.6         3.1          1.5         0.2  setosa
    5          5.0         3.6          1.4         0.2  setosa
    6          5.4         3.9          1.7         0.4  setosa
    
  3. 数据图形展示
    plot(iris[,1:4],col=as.numeric(iris[,5]))
    

    irisscatter.png

  4. Fisher 线性判别分析实现(Using R)
    • 在R中实现线性判别分析的命令是 MASS 包中的LDA函数(linear discriminant Analysis)
    • 下面以 Iris 数据为例进行判别分析, 首先从150条数据中抽取75条数据建立判别函数
    require("MASS")
    set.seed(1314)
     train <- sample(1:150, 90)
    table(iris$Species[train])
    
    setosa versicolor  virginica
        30         31         29
    
  5. 进行线性判别分析,并预测剩余60个样品的类别号
    z <- lda(Species ~ ., iris, prior = c(1,1,1)/3, subset = train)
    test.sp<-predict(z, iris[-train, ])$class
    test.true<-iris[-train,5]
    table(test.true,test.sp)
    
                test.sp
    test.true    setosa versicolor virginica
      setosa         20          0         0
      versicolor      0         18         1
      virginica       0          1        20
    
  6. 线性判别分析的结果
    Call:
    lda(Species ~ ., data = iris, prior = c(1, 1, 1)/3, subset = train)
    Group means:
               Sepal.Length Sepal.Width Petal.Length Petal.Width
    setosa         5.013333    3.456667     1.440000   0.2366667
    versicolor     5.967742    2.832258     4.287097   1.3451613
    virginica      6.582759    2.986207     5.582759   1.9827586
    Coefficients of linear discriminants:
                        LD1        LD2
    Sepal.Length  0.8095703  0.2655179
    Sepal.Width   1.4207588 -2.4118265
    Petal.Length -2.0779530  0.5599844
    Petal.Width  -2.9318010 -2.3536921
    
    Proportion of trace:
       LD1    LD2
    0.9943 0.0057
    
  7. 线性判别分析的投影效果
    plot(z,col=as.numeric(iris[train,5]))
    

    irislda.png

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23092次
    • 积分:366
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论