函数型线性判别分析
- 格式:pdf
- 大小:1.94 MB
- 文档页数:9
线性判别分析(LinearDiscriminantAnalysis,LDA)⼀、LDA的基本思想线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引⼊模式识别和⼈⼯智能领域的。
线性鉴别分析的基本思想是将⾼维的模式样本投影到最佳鉴别⽮量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的⼦空间有最⼤的类间距离和最⼩的类内距离,即模式在该空间中有最佳的可分离性。
如下图所⽰,根据肤⾊和⿐⼦⾼低将⼈分为⽩⼈和⿊⼈,样本中⽩⼈的⿐⼦⾼低和⽪肤颜⾊主要集中A组区域,⿊⼈的⿐⼦⾼低和⽪肤颜⾊主要集中在B组区域,很显然A组合B组在空间上明显分离的,将A组和B组上的点都投影到直线L上,分别落在直线L的不同区域,这样就线性的将⿊⼈和⽩⼈分开了。
⼀旦有未知样本需要区分,只需将⽪肤颜⾊和⿐⼦⾼低代⼊直线L的⽅程,即可判断出未知样本的所属的分类。
因此,LDA的关键步骤是选择合适的投影⽅向,即建⽴合适的线性判别函数(⾮线性不是本⽂的重点)。
⼆、LDA的计算过程1、代数表⽰的计算过程设已知两个总体A和B,在A、B两总体分别提出m个特征,然后从A、B两总体中分别抽取出、个样本,得到A、B两总体的样本数据如下:和假设存在这样的线性函数(投影平⾯),可以将A、B两类样本投影到该平⾯上,使得A、B两样本在该直线上的投影满⾜以下两点:(1)两类样本的中⼼距离最远;(2)同⼀样本内的所有投影距离最近。
我们将该线性函数表达如下:将A总体的第个样本点投影到平⾯上得到投影点,即A总体的样本在平⾯投影的重⼼为其中同理可以得到B在平⾯上的投影点以及B总体样本在平⾯投影的重⼼为其中按照Fisher的思想,不同总体A、B的投影点应尽量分开,⽤数学表达式表⽰为,⽽同⼀总体的投影点的距离应尽可能的⼩,⽤数学表达式表⽰为,,合并得到求从⽽使得得到最⼤值,分别对进⾏求导即可,详细步骤不表。
R语⾔中的线性判别分析_r语⾔线性判别分析在中,线性判别分析(Liner Discriminant Analysis,简称LDA),依靠软件包MASS中有线性判别函数lqa()来实现。
该函数有三种调⽤格式:1)当对象为数据框data.frame时lda(x,grouping,prior = propotions,tol = 1.0e-4,method,CV = FALSE,nu,…)2) 当对象为公式Formula时lda(formula,data,…,subnet,na.action)3) 当对象为矩阵Matrix时lda(x,group,…,subnet,na.action)对于第⼀种情况,grouping表⽰每个观测样本的所属类别;prior表⽰各类别的先验概率,默认取训练集中各样本的⽐例;tol表⽰筛选变量,默认取0.0001对于第⼆种情况,formula表⽰判别公式,⽐如,y~x1 x2 x3,或者y~x1*x1data表⽰数据集subnet表⽰样本na.action表⽰处理缺失值的⽅法,默认为“如果样本中有缺失值,则lda()函数⽆法运⾏”;如果设置为na.omit,则表⽰“⾃动删除样本中的缺失值,然后,进⾏计算”对于第三种情况,x表⽰矩阵data表⽰数据集subnet表⽰样本na.action表⽰处理缺失值的⽅法,默认为“如果样本中有缺失值,则lda()函数⽆法运⾏”;如果设置为na.omit,则表⽰“⾃动删除样本中的缺失值,然后,进⾏计算”下⾯,举⼀个例⼦,来说明线性判别分析。
我们选⽤kknn软件包中的miete数据集进⾏算法演⽰。
miete数据集记录了1994年慕尼⿊的住房佣⾦标准中⼀些有趣变量,⽐如房⼦的⾯积、是否有浴室、是否有中央供暖、是否供应热⽔等等,这些因素都影响着佣⾦的⾼低。
1.数据概况⾸先,简单了解⼀下,miete数据集。
> library(kknn) > data(miete) > head(miete)nm wfl bj bad0 zh ww0 badkach fenster kueche mvdauer bjkat wflkat1 693.29 50 1971.5 0 1 0 0 0 02 4 12 736.60 70 1971.5 0 1 0 0 0 0 26 4 23 732.23 50 1971.5 0 1 0 0 0 0 14 14 1295.14 55 1893.0 0 1 0 0 0 0 0 1 25 394.97 46 1957.0 0 0 1 0 0 0 27 3 16 1285.64 94 1971.5 0 1 0 1 0 0 2 4 3nmqm rooms nmkat adr wohn1 13.865800 1 32 22 10.5228573 3 2 23 14.644600 1 3 2 24 23.548000 35 2 25 8.586304 3 1 2 26 13.677021 4 5 2 2> dim(miete)[1] 1082 17我们看到,该数据集⼀共有1082条样本,和17个变量。
线性判别分析(LDA)说明:本⽂为个⼈随笔记录,⽬的在于简单了解LDA的原理,为后⾯详细分析打下基础。
⼀、LDA的原理LDA的全称是Linear Discriminant Analysis(线性判别分析),是⼀种supervised learning。
LDA的原理:将带上标签的数据(点),通过投影的⽅法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,⼀簇⼀簇的情况,相同类别的点,将会在投影后的空间中更接近。
因为LDA是⼀种线性分类器。
对于K-分类的⼀个分类问题,会有K个线性函数:当满⾜条件:对于所有的j,都有Yk > Yj,的时候,我们就说x属于类别k。
上式实际上就是⼀种投影,是将⼀个⾼维的点投影到⼀条⾼维的直线上,LDA最求的⽬标是,给出⼀个标注了类别的数据集,投影到了⼀条直线之后,能够使得点尽量的按类别区分开,当k=2即⼆分类问题的时候,如下图所⽰:上图提供了两种⽅式,哪⼀种投影⽅式更好呢?从图上可以直观的看出右边的⽐左边的投影后分类的效果好,因此右边的投影⽅式是⼀种更好地降维⽅式。
LDA分类的⼀个⽬标是使得不同类别之间的距离越远越好,同⼀类别之中的距离越近越好。
⼆、LDA算法流程输⼊:数据集 D = {(x1, y1), (x1, y1), ... ,(x m, y m)},任意样本x i为n维向量,y i∈{C1, C2, ... , Ck},共k个类别。
现在要将其降维到d维;输出:降维后的数据集D'。
(1)计算类内散度矩阵 S B;(2)计算类间散度矩阵 S W;(3)将 S B和 S W代⼊上⾯公式计算得到特征值λ和特征向量 w,取前⾯⼏个最⼤的特征值向量λ'与特征向量相乘得到降维转换矩阵λ'w;(4)将原来的数据与转换矩阵相乘得到降维后的数据 (λ'w)T x ;三、LDA优缺点分析LDA算法既可以⽤来降维,⼜可以⽤来分类,但是⽬前来说,主要还是⽤于降维。
判别分析公式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.线性判别函数模型线性判别函数模型是一种线性分类方法,它使用一个线性判别函数将样本划分为不同的类别。
假设样本空间为X,类别集合为Y={y_1,y_2},其中y_1和y_2是两个类别。
线性判别函数模型的目标是找到一个超平面,可以将样本空间划分为两个决策域,一个属于类别y_1,另一个属于类别y_2为了构建线性判别函数模型,首先需要假设每个类别的概率分布满足多元高斯分布。
假设y_1的先验概率为P(y_1),y_2的先验概率为P(y_2)。
假设x是一个样本点,x的观测值为x=(x_1,x_2,...,x_n)',n是特征个数。
则x在类别y_i中的条件概率分布可以表示为P(x,y_i),i=1,2根据贝叶斯准则,可以求得后验概率P(y_1,x),即在观测到x的情况下,样本属于类别y_1的概率。
根据线性判别函数模型的定义,可以用一个线性判别函数g(x)来表示后验概率:g(x)=w'x+w_0其中,w=(w_1,w_2,...,w_n)'是权重向量,w_0是偏置项。
根据后验概率的定义,可以将g(x)转化为相应的概率值,通过一个非线性函数转换:P(y_1,x)=1/(1+e^(-g(x)))上述模型就是逻辑回归模型,逻辑回归模型可以通过最大似然估计或其它方法来估计模型参数。
2.线性判别分析模型线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的分类算法,也是基于贝叶斯准则的一种方法。
与线性判别函数模型不同,线性判别分析模型假设各类别的协方差矩阵相等,且为单位矩阵。
因此,LDA可以通过计算样本的均值和协方差矩阵来实现分类。
具体地,假设y_1和y_2是两个类别,样本空间为X,样本点x的观测值为x=(x_1,x_2,...,x_n)',n是特征个数。
1. 问题之前我们讨论的PCA、ICA也好,对样本数据来言,可以是没有类别标签y的。
回想我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。
我们可以使用PCA 来降维,但PCA没有将类别标签考虑进去,属于无监督的。
比如回到上次提出的文档中含有“learn”和“study”的问题,使用PCA后,也许可以将这两个特征合并为一个,降了维度。
但假设我们的类别标签y是判断这篇文章的topic是不是有关学习方面的。
那么这两个特征对y几乎没什么影响,完全可以去除。
再举一个例子,假设我们对一张100*100像素的图片做人脸识别,每个像素是一个特征,那么会有10000个特征,而对应的类别标签y仅仅是0/1值,1代表是人脸。
这么多特征不仅训练复杂,而且不必要特征对结果会带来不可预知的影响,但我们想得到降维后的一些最佳特征(与y关系最密切的),怎么办呢?2. 线性判别分析(二类情况)回顾我们之前的logistic回归方法,给定m个n维特征的训练样例(i从1到m),每个对应一个类标签。
我们就是要学习出参数,使得(g 是sigmoid函数)。
现在只考虑二值分类情况,也就是y=1或者y=0。
为了方便表示,我们先换符号重新定义问题,给定特征为d维的N个样例,,其中有个样例属于类别,另外个样例属于类别。
现在我们觉得原始特征数太多,想将d维特征降到只有一维,而又要保证类别能够“清晰”地反映在低维数据上,也就是这一维就能决定每个样例的类别。
我们将这个最佳的向量称为w(d维),那么样例x(d维)到w上的投影可以用下式来计算这里得到的y值不是0/1值,而是x投影到直线上的点到原点的距离。
当x是二维的,我们就是要找一条直线(方向为w)来做投影,然后寻找最能使样本点分离的直线。
如下图:从直观上来看,右图比较好,可以很好地将不同类别的样本点分离。
接下来我们从定量的角度来找到这个最佳的w。
首先我们寻找每类样例的均值(中心点),这里i只有两个由于x到w投影后的样本点均值为由此可知,投影后的的均值也就是样本中心点的投影。
用线性判别分析(Linear Discriminant Analysis )对Wine 数据集进行分类 1. 线性判别分析(LDA )原理LDA 是统计学上一种经典的分析方法,在医学中的患者疾病分级、经济学的市场定位、产品管理、市场研究、人脸识别和机器学习等领域有广泛的应用。
LDA 可以用于对数据进行分类,首先,我们要用事先分好类的数据对LDA 进行训练,建立判别模型,所以LDA 属于监督学习的算法。
LDA 的基本思想是投影,将n 维数据投影到低维空间,使得投影后组与组之间尽可能分开,即在该空间中有最佳的可分离性,而衡量标准是新的子空间有最大的类间距离和最小的类内距离。
LDA 的目标是求出使新的子空间有最大的类间距离和最小的类内距离的向量a ,构造出判别模型。
形象地理解,如图1,红色点和蓝色点分别代表两个类别的数据,他们是二维的,取二维空间中的任一个向量,作各点到该向量的投影,可以看到,右图比左图投影后的分类效果好。
再如图2,是三维空间的各点作投影到二维空间,可以看到左图比右图分类效果好。
有时需要根据实际选择投影到几维才能实现最好的分类效果。
构造判别模型的过程: (1) 作投影设n 维数据样本集X={x i |i=1,2,3…j},这j 个样本可以分为k 个类别X 1,X 2,…,X k . 令w 为n 维空间中任一向量,则样本x i 在w 上的投影为w T x i ,得到的是一维数据. (2) 计算投影后的类内距离与类间距离其中利用了方差分析的思想:类内距离:E 0= ∑∑(w T x −w T X t ̅̅̅)2x∈X t k t=1X t ̅̅̅表示 X t 中的样本未投影前的平均.整理得 E 0=w T E w 其中矩阵E=∑∑(x −X t ̅̅̅)(x −X t ̅̅̅)T x∈X tk t=1类间距离:B 0= ∑n t (w T X t ̅̅̅−w T X ̅)2k t=1X̅表示所有样本未投影前的平均,n t 表示X t 中样本数 整理得 B 0=w T Bw 其中矩阵B= ∑n t (X t ̅̅̅−X ̅)(X t ̅̅̅−X ̅)T k t=1(3) 构造目标函数为了得到最佳的w ,我们希望E 0尽量小,B 0尽量大,因此构造J(w)= B0E 0问题转化为求w 使J(w)达到极大值,但使J(w)达到最大值的w 不唯一,于是我们加上一个约束条件E 0=1即求w ,使J(w)在约束条件E 0=1下达到极大值(4) 拉格朗日乘数法求w利用拉格朗日乘数法我们可以得到以下等式(E −1B)w =λw λ为拉格朗日乘子即λ为E −1B 的特征值,w 为对应的特征矩阵 由特征方程|E −1B −λI |= 0 可解除 特征值λ 和特征向量 w(5) 导出线性判别函数把特征值由大到小排列,取最大的特征值,所求w 就是对应的特征向量w 导出线性判别函数为u(x)=wx若用一个线性判别函数不能很好区别各个总体,可用第二大特征根,第三大特征根……对应的特征向量构造线性判别函数进行判别(即上面所说根据实际选择降维到几维空间),线性判别函数个数不超过k-1个。
判别函数分析dfa由于样本特征空间的类条件概率密度的形式常常很难确定,利用非参数方法估计需要很大的样本空间,而且随着特征空间位数的增加所需的样本数急剧增加,因此在实际问题中,我们往往不确定某个判别函数类,然后利用样本集确定出判别函数中的未知参数。
线性判别线性判别函数法是一种较为简单的判别函数,最简单的是线性函数,它的分界面是超平面,采用线性判别函数所产生的错误率或风险虽然可能比贝叶斯分类器来的大,但是他简单,容易实现,而且需要的计算量和存储量小。
因此可以认为线性判别函数是统计模式识别的基本方法之一。
模式识别系统的主要作用,判别各个模式所属的类别,对一个两类问题的判别,就是将模式x划分成ω1和ω2两类。
用判别函数分类的概念两类问题的判别函数(以二维模式样本为例)若x是二维模式样本x=(x1x2)T,用x1和x2作为坐标分量。
这时,若这些分属于ω1和ω2两类的模式可用一个直线方程d(x)=0来划分d(x)=w1x1+w2x2+w3=0其中x1、x2为坐标变量,w1、w2、w3为参数方程,则将一个不知类别的模式代入d(x),有若d(x)>0,则x属于w1若d(x)<0,则x属于w2此时,d(x)=0称为判别函数。
用判别函数进行模式分类依赖的两个因素用判别函数进行模式分类依赖的两个因素(1)判别函数的几何性质:线性的和非线性的函数。
线性的是一条直线;非线性的可以是曲线、折线等;线性判别函数建立起来比较简单(实际应用较多);非线性判别函数建立起来比较复杂。
(2)判别函数的系数:判别函数的形式确定后,主要就是确定判别函数的系数问题。
只要被研究的模式是可分的,就能用给定的模式样本集来确定判别函数的系数。
判别分析四种方法判别分析(Discriminant Analysis)是一种用于分类问题的统计方法, 它通过分析已知分类的样本数据,构造出一个判别函数,然后将未知类别的样本数据带入判别函数进行分类。
判别分析可以用于研究变量之间的关系以及确定分类模型等方面。
在判别分析中,有四种主要的方法,包括线性判别分析(Linear Discriminant Analysis, LDA)、二次判别分析(Quadratic Discriminant Analysis, QDA)、多重判别分析(Multiple Discriminant Analysis, MDA)和正则化判别分析(Regularized Discriminant Analysis, RDA)。
1.线性判别分析(LDA):线性判别分析是最常用的判别分析方法之一、它假设每个类别的样本数据都服从多元正态分布,并且各个类别具有相同的协方差矩阵。
基于这些假设,LDA通过计算类别间离散度矩阵(Sb)和类别内离散度矩阵(Sw),然后求解广义瑞利商的最大化问题,得到最佳的线性判别函数。
线性判别分析适用于样本类别数量较少或样本维度较高的情况。
2.二次判别分析(QDA):二次判别分析是基于类别的样本数据服从多元正态分布的假设构建的。
与LDA不同的是,QDA没有假设各个类别具有相同的协方差矩阵。
相反,QDA为每个类别计算一个特定的协方差矩阵,并将其带入到判别函数中进行分类。
由于QDA考虑了类内协方差矩阵的差异,因此在一些情况下可以提供比LDA更好的分类效果。
3.多重判别分析(MDA):4.正则化判别分析(RDA):正则化判别分析是近年来提出的一种改进的判别分析方法。
与LDA和QDA不同的是,RDA通过添加正则化项来解决维度灾难问题,以及对输入数据中的噪声进行抑制,从而提高分类的准确性。
正则化项的引入使得RDA可以在高维数据集上进行有效的特征选择,并获得更鲁棒的判别结果。
线性判别分析(LDA)准则:FIsher准则、感知机准则、最⼩⼆乘(最⼩均⽅误差)准则准则采⽤⼀种分类形式后,就要采⽤准则来衡量分类的效果,最好的结果⼀般出现在准则函数的极值点上,因此将分类器的设计问题转化为求准则函数极值问题,即求准则函数的参数,如线性分类器中的权值向量。
分类器设计准则:FIsher准则、感知机准则、最⼩⼆乘(最⼩均⽅误差)准则Fisher准则Fisher线性判别分析LDA(Linearity Distinction Analysis)基本思想:对于两个类别线性分类的问题,选择合适的阈值,使得Fisher准则函数达到极值的向量作为最佳投影⽅向,与投影⽅向垂直的超平⾯就是两类的分类⾯,使得样本在该⽅向上投影后,达到最⼤的类间离散度和最⼩的类内离散度。
Fisher线性判别并不对样本的分布进⾏任何假设,但在很多情况下,当样本维数⽐较⾼且样本数也⽐较多时,投影到⼀维空间后样本接近正态分布,这时可以在⼀维空间中⽤样本拟合正态分布,⽤得到的参数来确定分类阈值。
类间离差平⽅和最⼤,类内离差平⽅和最⼩的投影⽅向。
准则函数:组间离差平⽅和/组内离差平⽅和;准则:超过阈值?感知机准则基本思想:对于线性判别函数,当模式的维数已知时,判别函数的形式实际上就已经确定下来,线性判别的过程即是确定权向量 。
感知机是⼀种神经⽹络模型,其特点是随意确定判别函数初始值,在对样本分类训练过程中,针对分类错误的样本不断进⾏权值修正,逐步迭代直⾄最终分类符合预定标准,从⽽确定权向量值。
可以证明感知机是⼀种收敛算法,只要模式类别是线性可分的,就可以在有限的迭代步数⾥求出权向量的解。
优点:简单、便于实现。
缺点:结果不唯⼀,在线性不可分情况下不收敛。
给定初始权值向量,通过样本的训练分类过程逐渐修正权值直到最终确定。
准则函数:错分样本数,准则:错分样本数为0上述两个准则的区别和联系Fisher线性判别是把线性分类器的设计分为两步,⼀是确定最优⽅向,⼆是在这个⽅向上确定分类阈值;感知机则是通过不断迭代直接得到完整的线性判别函数。
线性判别函数5.1引言在第三章中我们假设概率密度函数的参数形式已知,于是可以使用训练样本来估计概率密度函数的参数值.在本章中,我们将直接假定判别函数的参数形式已知,而用训练的方法来估计判别函数的参数值.我们将介绍求解判别函数的各种算法,其中一部分基于统计方法,而另一些不是.这里都不要求知道有关的概率密度函数的确切的(参数)形式,从这种意义上来说,它们都属于非参数化的方法.在这一章中,我们将关注以下形式的判别函数:它们或者是X的各个分量的线性函数,或者是关于以X为自变量的某些函数的线性函数.线性判别函数具有许多优良的特性,因而便于进行分析.就像我们在第二章看到的一样,如果内在的概率密度函数恰当的话,那么采用线性判别函数是最优的,比如通过适当的选择特征提取方法,可以使得各个高斯函数具有相等的协方差矩阵.即使它们不是最优的,我们也愿意牺牲一些分类准确率,以换取处理简便的优点.线性判别函数的计算是相当容易的,另外,当信息比较缺乏时,线性分类器对处于最初的.尝试阶段的分类器来说也是很有吸引力的选择.它们所展示的一些非常重要的原理在第6章的神经网络中将得到更充分的应用.寻找线性差别函数的问题将被形式为极小化准则函数的问题.以分类为目的的准则函数可以是样本风险,或者是训练误差,即对训练样本集进行分类所引起的平均损失.但在这里我们必须强调的是:尽管这个准则是很有吸引力的,但它却有很多的问题.我们的目标是能够对新的样本进行分类,但一个小的训练误差并不能保证测试误差同样的小-------这是一个吸引人而又非常微妙的问题,我们将在第9章中进一步论述这个问题.这里我们将看到,准确的计算极小风险判别函数通常是困难的,因此我们将考查一些有关的更易于分析的准则函数.我们的注意力将在很大程度上放在收敛性用各种应用于极小化准则函数的梯度下降法的计算复杂度上,它们当中一些方法的是很相似的,这使得清晰地保持它们之间的不同变得困难,因此,我们在后面的章节里会作出总结.5.2线性判别函数的判定面一个判别函数是指X的各个分量的线性组合而成的函数g(x)=w’x+w0 (1)这里W是权向量,w0被称为阈值权或偏置.和我们在第二章所看到的一样,一般情况下有C个这样的判别函数,分别对应C类的一类.我们在后面将讨论这样的情况,但首先考虑中人两个类别的简单情况.5.2.1两类情况对具有式(1)形式的判别函数的一个两类线性分类器来说,要求实现以下判定规则:如果G(x)>0则判定w1,如果g(x)<0,那么x可以被随意归到任意一类,但是在本章我们将它们归为未定义的.图5-1给出了一个典型的系统实现结构,是第二章所讨论的典型的模式识别系统结构的一个例子.图5-1一个简单线性分类器,有d个输入的单元,每个对应一个输入向量在各维上的分量值.每个输入特征值xi被乘以它对应的权wi, 输出单元为这些乘积的和∑wixi.因此这d个输入单元都是线性的,产生的是它对应的特征的值.惟一的一个偏差单元总是产生常数 1.0.如果w’x+w0>0的话,输出单元输出a+1,反之为a-1方程g(x)=0定义了一个判定面,它把归类于w1的点与归类于w2的眯分开来.当g(x)是线性的,这个平面被称为超平面.如果x1和x2都在判定面上,则w’x1+w0=w’x2+w0或W’(x1-x2)=0这表明,w和超平面上的任意向量正交.通常,一个超平面H将特征空间分成两个半空间,即对应于W1类的决策域R1和对应于W2的决策域R2.因为当X在R1中时,g(x)>0,所以判定面的法向量W指向R1,因此,有时称R1中的任何X在H的”正侧”,相应地,称R2中的任何向量在H的负侧.判别函数g(x)是特征空间中某点X到超平面的距离的一种代数度量.或许这一点最容易从表达式X=xp+r(w/IIwII)看出来,这里的XP是X在H上的投影向量,r是相应的算术距离------如果为正,表示X在H的正侧;如果为负,表示X在H的负侧.于是,由于g(xp)=0,有g(x)=w’x+w0=rIIwII或R=g(X)/IiwII特别,从原点到H的距离为W0/IiwII.如果W0>0表明原点在H的正侧,w0<0表明原点在H的负侧.如果W0=0,那么g(x)有齐次形式w’x,说明超平面H通过原点.图5---2对这些代数结果给出了几何解释.总之,线性判别函数利用一个超平面判定面把特征空间分割成两个区域.超平面的方向由法向量W确定,它的位置由阈值权W0确定.判别函数g(x)正比于x点到超平面的代数距离(带正负号).当X在H正侧时,g(x)>0,在负侧时,g(x)<0.5.2.2多类的情况利用线性判别函数设计多类分类器有多种方法,例如,可以把C类问题转化为C个两类问题,其中第I个问题是用线性判别函数把属于WI类的点与不属于W1类的分开.更复杂一些的方法是用c(c-1)/2个线性判别函数,把样本分为C个类别,每个线性判别函数只对其中的两个类别分类,如图5-3所示.这两种方法都会产生如无法确定其类型的区域.为此,我们采用在第二章采用的方法,通过定义C个判别函数Gt(x)=wt’xt+wi0 i=1......c (2)5.4二类线性可分的情况假设我们在一个包含N个样本的集合y1,y2,……yn,一些标记为w1,另一些标记为w2.我们希望用这样的样本确定一个判别函数g(x)=a’y的权向量a.假设我们有理由相信存在一个解,它产生错误的概率非常小.那么一个很合理的想法是寻找一个能将所有这些样本正确分类的权向量.如果这个权向量存在,这些样本就被称为线性可分的.对于一个样本yi,如果有a’yi>0就标记为w1,如果小于0,就标记为w2.这样,我们可以用一种规范化操作来简化二类样本的训练过程,也就是说对属于W2的样本,用负号表示而不是标记W2.有了规范化,我们可以忘掉这些标记,而寻找一个对所有样本都有a’yi>0的权向量a.这样的向量被称为分离向量,更正规的说法是解向量.5.4.1几何解释和术语求解权向量的过程可认为是确定权空间中的一点.每个样本都对解向量的可能位置给出限制.等式a’yi=0确定一个穿过权空间原点的超平面,yi为其法向量.解向量-----如果存在的话,必须在每个超平面的正侧.也就是说,解向里如果存在,必在N个正半空间的交叠区,而且该区中的任意向量都是解向量.我们称这样的区域为解区域,注意不要将它和任何特定类对应的特征空间的判决区域相混淆.对于二维问题.我们用图5.8说明解区域的情况,其中包含了规范化样本和未规范化样本.从以上讨论可知,解向量如果存在的话,通常不是惟一的.有许多方法引入一些附加要求来对解向量进行限制.一种可能的方法是找到一个单位长度的权向量,它使得从样本到分类平面最小距离达到最大.另一种方法是在所有I中寻找满足a’yi>=b的有最小长度的权向量,这里的b是被称为边沿裕量或间隔的正常数.正如图5—9所示的,新的解区域位于由a’yi>=b>0所产生的正半空间的交叠区,它是在原解区之中,且它和原解区边界被隔开的距离为b/IIyiII.我们一般试图在解区域的中间位置来寻找解向量,这背后的动机是一个自然的信念,认为这样的解更能将新测试样本正确地分类.但在大多数情况下,我们对解区域中的任何解都感到满意.而主要关心的是任何一种可行的递归算法,只是它的递归过程能够不收敛到边界点上即可.这个问题可通过引入一个边沿裕量来解决,比如要求对所有的I都有a’yi>=b>0.5.7不可分的情况当样本是线性可分的时候,感知器法和松弛法给我我们许多寻找分类向量的简单方法.这些都被称为误差校正方法,这是因为它们只在遇到错分样本时才对权向量进行校正.它们对可分问题的成功之处在于对求得一个无解进行坚持不懈的摸索.实际上只有在有理由认为最优线性判别函数的误差率比较低的时候才会考虑使用这些方法.当然,即使对训练样本的分离向量已经找到,也不能保证它对独立的测试数据都能很好地分类.我们感觉有种直觉印象,它表明数目少于2d的样本集很可能是线性可分的----我们会在第九章再次考察这一点.因此有人可能会想到:对设计好的样本集使用多次,综合多种因素来获得分类器,并由此确保它在训练和实际数据上的分类性能是相同的.不幸的是,如果使用非常多的数据的话,它们往往不是线性可分的.这样,当样本不是线性可分时了解误差校正方法的效果如何就变得非常重要了.由于不存在可以将不可分数据集中的样本都能正确分类的权向量(由定义可知),显然误差校正过程永远不会结束.这些算法都将产生一个无限的权向量序列,所有的成员都有可能或者不可能得到有用的解.在一些特殊的例子中,这些算法在不可分的情况下的行为被全面的研究过.比如,固定增量算法得到的权向量的幅值波动的趋势.从理论的观点来看,如果样本的分量是整数值的话,固定增量算法将产生一个有限状态过程.如果校正过程停在任意一个状态上,权向量可能正处于,也可能不处于好的状态上.如果对校正算法得到的权向量求均值的话,就可以降低偶然选到处于不好状态上的坏向量的风险.有许多类似的启发式规则被用于修改误差校正算法,并进行了实验研究.修改的目的是在不可分的问题中得到令人接受的结果,同时保持它对可分问题仍能正确分类的性质.最普通的想法是使用变增量Q(K),且当K趋向无穷大时Q(K)趋向0.Q(K)趋向0的速度是相当重要的.如果它太慢的话,得到的结果对那些使得集合为不可分的样本仍然敏感.如果太快,权向量在还没有得到最优结果的时候就收敛了.一种选择Q(K)的方法是今它为当前性能的函数,也即当性能提高的时候减小Q(K).另一种方法是选择Q(K)=Q(1)/K.当研究随机逼近技术的时候,我们发现后一种方法是一种类似问题的理论解.但在展开这个主题之前,我们先考一种在可分和不可分情况下都有很好性能的折中方法,它不再试图直接获取分离向量.本章小结本章给出了一些判别函数,它们都是某个参数集的线性函数,而这些参数一般被称为权系数.在所有两类样本集的情况下这些判别都能确定一个判定超平面,它可能是位于样本自身的原始特征空间中,也可能是位于原始特征通过一个非线性函数(通常是线性判别式)映射而得到的空间.从更广的角度看.感知器算法是一类技术是通过调整参数来提高与W1的样本的内积,而降低与W2的样本的内积.一个更通用的方法是构造准则函数进行梯度下降.不同的准则函数在计算复杂度和收敛性方面各有不同的优缺点,没有哪个方法说是比别的方法都好.我们也可以通过线性代数运算来直接求得权(参数).比如对小型问题采用伪逆的方法.在支持向量机中,输入被非线性函数映射到一个更高维的空间,最优超平面就是具有最大“间隔”(margin)的平面.支持向量就是用来确定间隔的(变换后的)样本,它们通常是那些最难被分类,却能给分类器提供最多信息的样本.分类器期望误差率的上界线性依赖于支持向量的期望个数.对多类问题,线性机产生了由一些部分超平面构成的判定面.为了证明多类算法的收敛性可先将它们转化成两类算法再用两类法的证明.单纯型算法用来寻找由(不等式)约束的一个线性函数的优化.它也能被用来训练线性分类器.线性判别函数虽然很有用,对任意的很具挑战性的模式识别问题却不有足够的通用性(比如那些包含多模的或非凸密度的问题),除非能找到一个适当的非线性映射(Q函数).这一章我们没有给出如何选择这些函数的原则,但我们会在第六章讲述这个主题.文献的历史评述因为线性判别函数是易于分析的,在这方面有极大量的文章,尽管它的内容有限而不值得有这么多的文章.历史上,所有这方面的工作都是从ronald A.Fisher(5)的经典论文开始的.文献9很好描述了线性判别函数在模式识别中的应用,它提出了最优化(最小风险)线性判别问题并建议采用适当的梯度下降从样本中求得解.然而,在不知道内在的分布时,我们对这些方法的适用程度的了解是很有限的,即使是有条件的分析也是很复杂的.用两类方法来设计多类分类器来自于文献16.Minsky和papert的感知器一书强有力地指出了线性分类器的弱点------但可以用我们将在第六章中学习的方法来解决.无差错情况下的Winnow算法10以及更一般情况下的后续工作在计算(机器)学习领域是非常有用,它们都允许导出收敛的界.虽然这些工作都是基于统计的,许多从其他观点出发的模式识别的文章出现在20世纪50年代末和60年代初.其中一种观点是神经网络的,每一个单独的神经无被建模成阈值元----即两类的线性机,这些工作都是从McCulloch和Pitts12的著名的论文开始的.。
判别分析--线性判别分析(LDA)应⽤案例1 线性判别分析执⾏线性判别分析可使⽤lda()函数,且该函数有三种执⾏形式,依次尝试使⽤。
(1)公式formula格式我们使⽤nmkat变量作为待判别变量,其他剩余的变量作为特征变量,根据公式nmkat~使⽤训练集数据来运⾏lda()函数:library(MASS)library("MASS")fitlda1<-lda(nmkat~.,datatrain) #以公式格式执⾏判别分析names(fitlda1) #查看lda输出项名称结果分析:我们看到,可以根据lda()函数得到10项输出结果,分别为执⾏过程中所使⽤的先验概率prior、数据集中各类别的样本量counts、各变量在每⼀类别中的均值 means等。
fitlda1$prior #查看本次执⾏过程中所使⽤的先验概率fitlda1$counts #查看数据集datatrain中各类别的样本量结果分析:由于我们在之前的抽样过程中采⽤的是nmkat各等级的等概率分层抽样⽅式,因此如上各类别的先验概率和样本量在5个等级中都是相等的。
具体的,5类的先验概率都为0.2,之和为1,且训练集中每⼀类都抽出了144个样本。
fitlda1$means结果分析:在如上的均值输出结果中,我们可以看到⼀些很能反映现实情况的数据特征。
⽐如,对于占地⾯积wfl变量,它明显随着租⾦nmkat的升⾼⽽逐步提⾼,我们看到在租⾦为等级1(少于500马克)时,占地⾯积的均值仅为55.53平⽅⽶,⽽对于租⾦等级5(租⾦不低于1150 马克),平均占地⾯积则达到了92.24平⽅⽶。
⾯积越⼤的房屋租⾦越贵,这是⼗分符合常识的。
执⾏fitlda1可直接将判别结果输出。
(2)数据框data.frame及矩阵matrix格式由于这两种函数格式的主体参数都为x与grouping,我们放在⼀起实现,程序代码如下:fitlda2<-lda(datatrain[,-12],datatrain[,12])#设置属性变量(除第12个变量nmkat外)与待判别变量(第12个变量nmkat)的取值fitlda22.判别规则可视化我们⾸先使⽤plot()直接以判别规则fit_ldal为对象输出图形,如下图所⽰:plot(fitlda1)结果分析:从图可以看到,在所有4个线性判别式(Linear Discriminants,即 LD)下1⾄5这5个类别的分布情况,不同类别样本已⽤相应数字标出。
线性判别分析(LinearDiscriminantAnalysis,LDA)⼀、线性判别器的问题分析线性判别分析(Linear Discriminant Analysis, LDA)是⼀种经典的线性学习⽅法,在⼆分类问题上亦称为 "Fisher" 判别分析。
与感知机不同,线性判别分析的原理是降维,即:给定⼀组训练样本,设法将样本投影到某⼀条直线上,使相同分类的点尽可能地接近⽽不同分类的点尽可能地远,因此可以利⽤样本点在该投影直线上的投影位置来确定样本类型。
⼆、线性判别器的模型还是假定在p维空间有m组训练样本对,构成训练集T=(x1,y1),(x2,y2),...,(x n,y n),其中x i∈R1×p,y i∈{−1,+1},以⼆维空间为例,在线性可分的情况下,所有样本在空间可以描述为:我们的⽬的就是找到⼀个超平⾯Φ:b+w1x1+w2x2+..+w n x n=0,使得所有的样本点满⾜ “类内尽可能接近,类外尽可能遥远"。
那么我们⽤类内的投影⽅差来衡量类内的接近程度,⽤类间的投影均值来表⽰类间的距离。
这⾥,我们另w代表投影⽅向,如下图所⽰,在这⾥,x,w均为p×1 的列向量,那么根据投影定理,x在w上的投影p既有⽅向⼜有距离,那么:p与w同⽅向,表⽰为:w||w||;p的长度为:||x||cosθ=||x||x⋅w||w||||x||=x⋅w||w||由于w的长度不影响投影结果,因此我们为了简化计算,设置 ||w||=1,只保留待求w的⽅向:||p||=x⋅w=w T x 2.1 类间投影均值我们假设⽤u0,u1分别表⽰第1,2类的均值,那么:u0=1mm∑i=1x i,u1=1nn∑i=1x i所以,第⼀,⼆类均值在w⽅向上的投影长度分别表⽰为:w T u0,w T u1 2.2 类内投影⽅差根据⽅差的计算公式,第⼀类的类内投影⽅差可以表⽰为:z0=1nn∑i=1(w T x i−w T u0)2=1nn∑i=1(w T x i−w T u0)(w T x i−w T u0)T即:z0=1nn∑i=1w T(x i−u0)(x i−u0)T w=w T[1nn∑i=1(x i−u0)(x i−u0)T]w如下图所⽰:当x i,u0都是⼀维时,式⼦1n∑ni=1(x i−u0)(x i−u0)T就表⽰所有输⼊x i的⽅差;当x i,u0都是⼆维时,式⼦1n∑ni=1(x i−u0)(x i−u0)T就表⽰:1nn∑i=1x11−u01x12−u02x11−u01x12−u02=1nn∑i=1(x11−u01)2(x11−u01)(x12−u02)(x12−u02)(x11−u01)(x12−u02)2其中:u01表⽰第⼀类集合中在第⼀个维度上的均值,u01表⽰第⼀类集合中在第⼆个维度上的均值,x11表⽰第⼀类集合中第⼀个维度的坐标值,x12表⽰第⼀类集合中第⼆个维度的坐标值[][][]综上:当x i,u0都是p维时,式⼦1n∑ni=1(x i−u0)(x i−u0)T表⽰p个维度之间的协⽅差矩阵,我们⽤符号M0表⽰。