Fisher判别分析
- 格式:doc
- 大小:42.00 KB
- 文档页数:2
LDA线性判别分析LDA(Linear Discriminant Analysis),也被称为Fisher线性判别分析,是一种经典的统计模型和机器学习算法,常用于降维和模式识别任务。
LDA的目标是寻找一个线性变换,将高维数据投影到一个低维子空间上,使得在该子空间上的投影具有最优的数据分离性能。
换句话说,LDA希望找到投影方式,使得不同类别的数据在低维子空间上的投影显著分离,并且同一类别内部的数据尽可能地紧密聚集。
LDA的基本思想是通过计算类间离散度矩阵和类内离散度矩阵来得到最佳的投影方向。
类间离散度矩阵度量的是不同类别数据分布之间的差异,而类内离散度矩阵度量的是同一类别内部数据之间的差异。
LDA目标函数可以表示为J(w)=w^T*Sw*w/(w^T*Sb*w),其中w是投影方向,Sw为类内离散度矩阵,Sb为类间离散度矩阵。
在实际应用中,我们需要先计算类内离散度矩阵Sw和类间离散度矩阵Sb,然后通过求解J(w)的最大值来得到最佳的投影方向w。
通常情况下,可以通过特征值分解或者广义特征值分解来求解最优的投影方向。
LDA的应用非常广泛,特别是在模式识别和计算机视觉领域。
它可以用于人脸识别、手写数字识别、垃圾邮件过滤等任务。
LDA的优点是在高维数据集中可以找到最优的投影方向,具有很好的数据分离性能。
而且LDA不需要事先假设数据分布的形式,适用于各种分布情况。
然而,LDA也存在一些限制。
首先,LDA假设数据满足多元正态分布,如果数据违反了该假设,那么LDA的判别性能可能会下降。
其次,LDA投影到的低维子空间的维度最多等于类别数减一,这可能导致信息丢失。
此外,当类别样本数量不平衡时,LDA的效果可能会受到影响。
为了克服LDA的局限性,人们提出了一些改进的方法。
例如,局部判别分析(Local Discriminant Analysis)可以在局部区域内构建LDA模型,适用于非线性可分的数据。
深度学习的发展也为LDA的改进提供了新的思路和方法,如稀疏表示LDA和核LDA等。
费歇尔判别法费歇尔判别法(Fisher's Discriminant Analysis)是一种统计学中的方法,用于寻找两个或多个分类变量中最能有效区分它们的线性组合。
这种方法最初是由英国统计学家罗纳德·费歇尔(Ronald A. Fisher)在1936年所提出。
费歇尔判别法的目标是通过将数据投影到低维空间来确定样本类别之间最明显的分离平面。
这个方法假设所有数据员来自正态分布,这使得它的结果具有很高的概率。
此外,这种方法特别适用于小样本数据,在这种情况下,其它多变量方法往往受到数据不足或对角线矩阵估计的影响。
费歇尔判别法通过将多维数据投影到一维空间上,找到最能表示数据差异的线性变量。
具体步骤如下:1. 定义问题在进行费歇尔判别分析之前,首先需要定义问题。
这个问题可以是不同的变量之间的分类问题,或者是同一变量在不同条件下的分类问题。
例如,可以通过费歇尔判别分析找到两个组的区别,这两个组的特征可以用来预测其他类似两个组。
2. 构造分类变量在对数据进行投影之前,需要将分类变量定义为正态分布。
这种变量通常为两个或更多个。
3. 计算均值和方差计算每个分类变量的均值和方差,以用于后面的投影计算。
4. 计算类内离散度矩阵类内离散度矩阵是指每个类别内所有点与该类别均值之间的距离的累加和。
这个矩阵用来衡量类的内部分散程度,通常使用矩阵的矩阵乘法来进行计算。
5. 计算类间离散度矩阵类间离散度矩阵是指不同类别均值之间的距离的累加和。
这个矩阵用来衡量类别之间的分散程度,也通常使用矩阵的矩阵乘法来进行计算。
6. 计算特征值和特征向量计算类内离散度矩阵和类间离散度矩阵的特征值和特— 1 —征向量。
这些值可以使用线性代数中的方法计算。
一般来说,特征向量是正交(perpendicular)的。
7. 选取最大特征值从计算出的特征值中找到最大特征值,找到最大特征值所对应的特征向量。
这个特征向量就是数据的主要方向,也被称为“判别变量”。
Fisher判别是一种基于线性判别分析的分类方法,用于将样本分为不同的类别。
其基本步骤如下:
1. 确定判别变量:首先需要确定用于判别的变量,即用于分类的特征。
2. 计算判别函数:根据样本数据,计算出判别函数,即用于将样本分为不同类别的函数。
3. 确定判别类别:根据判别函数,将样本分为不同的类别。
4. 计算判别准确率:计算分类准确率,即正确分类的样本数与总样本数之比。
5. 优化判别函数:根据判别准确率,调整判别函数,以提高分类准确率。
6. 重复步骤3~5:重复以上步骤,直到达到所需的分类准确率。
在Fisher判别中,判别函数是基于Fisher线性判别的,即对于每个类别,计算出一个线性函数,使得属于该类别的样本与属于其他类别的样本的距离最大化。
这个过程可以通过矩阵运算和求导来实现。
总之,Fisher判别是一种基于线性判别分析的分类方法,其基本步骤包括确定判别变量、计算判别函数、确定判别类别、计算判别准确率、优化判别函数和重复步骤3~5,直到达到所需的分类准确率。
判别分析公式Fisher线性判别二次判别判别分析是一种常用的数据分析方法,用于根据已知的类别信息,将样本数据划分到不同的类别中。
Fisher线性判别和二次判别是两种常见的判别分析方法,在实际应用中具有广泛的应用价值。
一、Fisher线性判别Fisher线性判别是一种基于线性变换的判别分析方法,该方法通过寻找一个合适的投影方向,将样本数据投影到一条直线上,在保持类别间离散度最大和类别内离散度最小的原则下实现判别。
其判别函数的计算公式如下:Fisher(x) = W^T * x其中,Fisher(x)表示Fisher判别函数,W表示投影方向的权重向量,x表示样本数据。
具体来说,Fisher线性判别的步骤如下:1. 计算类别内离散度矩阵Sw和类别间离散度矩阵Sb;2. 计算Fisher准则函数J(W),即J(W) = W^T * Sb * W / (W^T * Sw * W);3. 求解Fisher准则函数的最大值对应的投影方向W;4. 将样本数据投影到求得的最优投影方向上。
二、二次判别二次判别是基于高斯分布的判别分析方法,将样本数据当作高斯分布的观测值,通过估计每个类别的均值向量和协方差矩阵,计算样本数据属于每个类别的概率,并根据概率大小进行判别。
二次判别的判别函数的计算公式如下:Quadratic(x) = log(P(Ck)) - 0.5 * (x - μk)^T * Σk^-1 * (x - μk)其中,Quadratic(x)表示二次判别函数,P(Ck)表示类别Ck的先验概率,x表示样本数据,μk表示类别Ck的均值向量,Σk表示类别Ck的协方差矩阵。
具体来说,二次判别的步骤如下:1. 估计每个类别的均值向量μk和协方差矩阵Σk;2. 计算每个类别的先验概率P(Ck);3. 计算判别函数Quadratic(x);4. 将样本数据划分到概率最大的类别中。
判别分析公式Fisher线性判别和二次判别是常见的判别分析方法,它们通过对样本数据的投影或概率计算,实现对样本数据的判别。
1 绪论1.1课题背景随着社会经济不断发展,科学技术的不断进步,人们已经进入了信息时代,要在大量的信息中获得有科学价值的结果,从而统计方法越来越成为人们必不可少的工具和手段。
多元统计分析是近年来发展迅速的统计分析方法之一,应用于自然科学和社会各个领域,成为探索多元世界强有力的工具。
判别分析是统计分析中的典型代表,判别分析的主要目的是识别一个个体所属类别的情况下有着广泛的应用。
潜在的应用包括预测一个公司是否成功;决定一个学生是否录取;在医疗诊断中,根据病人的多种检查指标判断此病人是否有某种疾病等等。
它是在已知观测对象的分类结果和若干表明观测对象特征的变量值的情况下,建立一定的判别准则,使得利用判别准则对新的观测对象的类别进行判断时,出错的概率很小。
而Fisher判别方法是多元统计分析中判别分析方法的常用方法之一,能在各领域得到应用。
通常用来判别某观测量是属于哪种类型。
在方法的具体实现上,采用国内广泛使用的统计软件SPSS(Statistical Product and Service Solutions),它也是美国SPSS公司在20世纪80年代初开发的国际上最流行的视窗统计软件包之一1.2 Fisher判别法的概述根据判别标准不同,可以分为距离判别、Fisher判别、Bayes判别法等。
Fisher 判别法是判别分析中的一种,其思想是投影,Fisher判别的基本思路就是投影,针对P维空间中的某点x=(x1,x2,x3,…,xp)寻找一个能使它降为一维数值的线性函数y(x):()j j xy=x∑C然后应用这个线性函数把P维空间中的已知类别总体以及求知类别归属的样本都变换为一维数据,再根据其间的亲疏程度把未知归属的样本点判定其归属。
这个线性函数应该能够在把P维空间中的所有点转化为一维数值之后,既能最大限度地缩小同类中各个样本点之间的差异,又能最大限度地扩大不同类别中各个样本点之间的差异,这样才可能获得较高的判别效率。
R语⾔中Fisher判别的使⽤⽅法最近编写了Fisher判别的相关代码时,需要与已有软件⽐照结果以确定⾃⼰代码的正确性,于是找到了安装⽅便且免费的R。
这⾥把R中进⾏Fisher判别的⽅法记录下来。
1. 判别分析与Fisher判别不严谨但是通俗的说法,判别分析(Discriminant Analysis)是⼀种多元(多个变量)统计分析⽅法,它根据样本的多个已知变量的值对样本进⾏分类的⽅法。
⼀般来说,判别分析由两个阶段构成——学习(训练)和判别。
在学习阶段,给定⼀批已经被分类好的样本,根据它们的分类情况和样本的多个变量的值来学习(训练)得到⼀种判别⽅法;在判别阶段⽤前⼀阶段得到的判别⽅法对其他样本进⾏判别。
Fisher判别(Fisher Discrimination Method)⼜被称为线性判别(LDA,Linear Discriminative Analysis),是判别分析的⼀种,历史可以追溯到1936年。
它的核⼼思想是将多维数据(多个变量)投影(使⽤线性运算)到⼀维(单⼀变量)上,然后通过给定阈值将样本根据投影后的单⼀变量进⾏分类。
Fisher判别的学习(训练)阶段,就是找到合适的投影⽅式,使得对于已经被分类好的样本,同⼀类的样本被投影后尽量扎堆。
学习阶段的结果是找到⼀系列的系数(Coeffcient),构成形如y=a1 * x1 + a2 * x2 + a3 * x3 + ... + an * xn其中:a1,a2,... an是系数,x1,x2,... ,xn是变量值。
的判别式和阈值。
⽽判别阶段可以根据这个判别式计算出y,并根据阈值将样本进⾏分类。
2. 在R中使⽤Fisher判别R中使⽤Fisher判别说起来很简单,但是我当初也放狗搜索了不短的时间才搞明⽩如何使⽤。
⾸先,它在R⾥不叫Fisher,⽤Fisher搜索多半误⼊歧途。
在R中,它叫LDA(Linear Discriminative Analysis)。
fisher判别法Fisher判别分析的基本思想:选取适当的投影方向,将样本数据进行投影,使得投影后各样本点尽可能分离开来,即:使得投影后各样本类内离差平方和尽可能小,而使各样本类间的离差平方和尽可能大。
为了克服“维数灾难”,人们将高维数据投影到低维空间上来,并保持必要的特征,这样,一方面数据点变得比较密集一些,另一方面,可以在低维空间上进行研究。
fisher判别法是判别分析的方法之一,它是借助于方差分析的思想,利用已知各总体抽取的样品的p维观察值构造一个或多个线性判别函数y=l′x其中l= (l1,l2…lp)′,x= (x1,x2,…,xp)′,使不同总体之间的离差(记为B)尽可能地大,而同一总体内的离差(记为E)尽可能地小来确定判别系数l=(l1,l2…lp)′。
数学上证明判别系数l恰好是|B-λE|=0的特征根,记为λ1≥λ2≥…≥λr>0。
所对应的特征向量记为l1,l2,…lr,则可写出多个相应的线性判别函数,在有些问题中,仅用一个λ1对应的特征向量l1所构成线性判别函数y1=l′1x不能很好区分各个总体时,可取λ2对应的特征向量l′2建立第二个线性判别函数y2=l′2x,如还不够,依此类推。
有了判别函数,再人为规定一个分类原则(有加权法和不加权法等)就可对新样品x判别所属。
Fisher判别法是根据方差分析的思想建立起来的一种能较好区分各个总体的线性判别法,由Fisher在1936年提出。
该判别方法对总体的分布不做任何要求。
Fisher判别法是一种投影方法,把高维空间的点向低维空间投影。
在原来的坐标系下,可能很难把样品分开,而投影后可能区别明显。
一般说,可以先投影到一维空间(直线)上,如果效果不理想,在投影到另一条直线上(从而构成二维空间),依此类推。
每个投影可以建立一个判别函数。
对案例中小企业的破产模型做Fisher判别分析
江义114113001059
一问题:对企业的运行状态利用Fisher判别进行分类
选取四个经济指标用于判断企业处于破产状态还是正常运行状态,具体数据如下,其中类别1表示破产状态,类别2表示正常运行状态
X1总负债率X2收益率指
标
X3短期
支付能
力
X4生产
效率指
标
类别
-0.45 -0.41 1.09 0.45 1 -0.56 -0.31 1.51 0.16 1
0.06 0.02 1.01 0.4 1
-0.07 -0.09 1.45 0.26 1
0.38 0.11 3.27 0.55 2
0.19 0.05 2.25 0.33 2
0.32 0.07 4.24 0.63 2
0.04 0.01 1.5 0.71 2
-0.06 -0.06 1.37 0.4 1
0.07 -0.01 1.37 0.34 2
-0.13 -0.14 1.42 0.44 1
0.15 0.06 2.23 0.56 2
0.16 0.05 2.31 0.2 2
0.29 0.06 1.84 0.38 带测定
0.54 0.11 2.33 0.48 带测定
二、程序如下:(R语言)
> data=read.table("E:/bac/qiye.txt",header=T)
> data1=c(rep(1,6),rep(2,7))
> data2=as.factor(data1)
> data$class=data2
> attach(data)
> names(data)
[1] "X1" "X2" "X3" "X4" "class"
> library(MASS)
> data.lda=lda(class~X1+X2+X3+X4)
> data.lda
Call:
lda(class ~ X1 + X2 + X3 + X4)
Prior probabilities of groups:
1 2
0.4615385 0.5384615
Group means:
X1 X2 X3 X4
1 -0.07500000 -0.105000000 1.763333 0.3583333
2 0.0785714
3 -0.002857143 2.062857 0.4685714
Coefficients of linear discriminants:
LD1
X1 -7.9358690
X2 15.8747840
X3 0.1653748
X4 5.0408074
> newdata=data.frame(X1=c(0.29,0.54),X2=c(0.06,0.11),X3=c(1.84,2.33),X4=c(0.38,0.48))
> predict(data.lda,newdata=newdata)
三、运行结果
$class
[1] 1 1
Levels: 1 2
$posterior
1 2
1 0.6249180 0.3750820
2 0.7540681 0.2459319
$x
LD1
1 -0.6981236
2 -1.3032372
四、
$class显示,最后两组数据均属于第一类别,如下表:
X1 X2 X3 X4 类别
0.29 0.06 1.84 0.38 1
0.54 0.11 2.33 0.48 1
四、总结
判别分析是多元统计分析中较为成熟的一种分类方法,根据已知类别的若干样本数据,总结出客观事物分类的规律性。
例如上述问题中,利用Fisher判别,就可以判别最后两个未知类别的企业运行状态,从而达到一定的经济效益。