搜档网
当前位置:搜档网 › FISHER线性判别MATLAB实现

FISHER线性判别MATLAB实现

FISHER线性判别MATLAB实现
FISHER线性判别MATLAB实现

Fisher 线性判别上机实验报告

班级: 学号: 姓名:

一.算法描述

Fisher 线性判别分析的基本思想:选择一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。

Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值w0, 即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。

线性判别函数的一般形式可表示成0)(w X W X g T += 其中

Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求。 如下为具体步骤:

(1)W 的确定

w S 样本类间离散度矩阵b

在投影后的一维空间中,各类样本均值T

i

i

m '= W

m

样本类内离散度和总类内离散度 T T

i i w

w S ' = W S W S ' = W S W 样本类间离散度T

b

b S ' = W S W Fisher 准则函数为 max 22

212

21

~~)~~()(S S m m W J F +-=

(2)阈值的确定

w 0

是个常数,称为阈值权,对于两类问题的线性分类器可以采用下属决策规则: 令)

()()(2

1

x x x g g g -=则:

如果g(x)>0,则决策w x 1∈;如果g(x)<0,则决策w x 2∈;如果g(x)=0,则可将x 任意分到某一类,或拒绝。

(3)Fisher 线性判别的决策规则 Fisher 准则函数满足两个性质:

1.投影后,各类样本内部尽可能密集,即总类内离散度越小越好。

2.投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出

W :-1w 12W = S (m - m ) 。

这就是Fisher 判别准则下的最优投影方向。 最后得到决策规则

P P m m w w

w x x g T

)(

)

(211

2

log

))(2

1()(大于或小于+-=,则

{1

2w

w x ∈ 对于某一个未知类别的样本向量x ,如果y=W T

·x>y0,则x ∈w1;否则x ∈w2。

二.数据描述 1.iris 数据

IRIS 数据集以鸢尾花的特征作为数据来源,数据集包含150个数据集,有4维,分为3 类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中非常常用的测试集、训练集。

模式识别最近邻和fisher分类matlab实验报告

一、Fisher 线性判别 Fisher 线性判别是统计模式识别的基本方法之一。它简单,容易实现,且计算量和存储量小,是实际应用中最常用的方法之一。Fisher 判别法Fisher 在1936年发表的论文中首次提出的线性判别法。Fisher 判别法的基本思想是寻找一个最好的投影,当特征向量x 从d 维空间映射到这个方向时,两类能最好的分开。这个方法实际上涉及到特征维数的压缩问题。 一维空间的Fisher 线性判别函数为: 2 1212 ()()F m m J w S S -= + (1) i m = ∑x N 1,i=1,2 (2) 2,1,)()(=--=∑∈i m x m x S T i x i i i ξ (3) 其中,1m 和2m 是两个样本的均值,1S ,2S 分别为各类样本的的类内离散度。投影方向w 为: )(211 m m S w w -=- (4) 12w S S S =+ (5) 在Fisher 判决函数中,分子反应了映射后两类中心的距离平方,该值越大,类间可分性越好;分母反应了两类的类内的离散度,其值越小越好;从总体上讲,()F J w 的值越大越好,在这种可分性评价标准下,使()F J w 达到最大值的w 即为最佳投影方向。

1.1、 Fisher线性判别实验流程图

1.2 Fisher线性判别mtalab代码 data=importdata('C:\Users\zzd\Desktop\data-ch5.mat'); data1=data.data; data2=https://www.sodocs.net/doc/9d14998591.html,bel; sample1=data1(1:25,:); sample2=data1(51:75,:); sample=[sample1 sample2]; sp_l=data2(26:75); test1=data1(26:50,:); test2=data1(76:100,:); test=[test1 test2]; lth=zeros(50,50); sample_m1=mean(sample1); sample_m2=mean(sample2); m1=sample_m1'; m2=sample_m2'; sb=(m1-m2)*(m1-m2)'; s1=zeros(2); for n=1:25 temp = (sample1(n,:)'-m1)*(sample1(n,:)'-m1)'; s1=s1+temp; end; s2=zeros(2); for n=1:25 temp = (sample2(n,:)'-m2)*(sample2(n,:)'-m2)'; s2 = s2+temp; end; sw=s1+s2; vw=inv(sw)*(m1-m2); a_m1 = vw'*m1; a_m2 = vw'*m2; w0 = (a_m1+a_m2)/2;

机器学习实验1-Fisher线性分类器设计

一、实验意义及目的 掌握Fisher分类原理,能够利用Matlab编程实现Fisher线性分类器设计, 熟悉基于Matlab算法处理函数,并能够利用算法解决简单问题。 二、算法原理 Fisher准则基本原理:找到一个最合适的投影周,使两类样本在该轴上投影之间的距离尽可能远,而每一类样本的投影尽可能紧凑,从而使分类效果为最佳。 内容: (1)尝试编写matlab程序,用Fisher线性判别方法对三维数据求最优方向w的通用函数(2)对下面表1-1样本数据中的类别w1和w2计算最优方向w (3)画出最优方向w 的直线,并标记出投影后的点在直线上的位置 (4)选择决策边界,实现新样本xx1=(-0.7,0.58,0.089),xx2=(0.047,-0.4,1.04)的分类 三、实验内容 (1)尝试编写matlab程序,用Fisher线性判别方法对三维数据求最优方向w的通用函数程序清单: clc clear all %10*3样本数据 w1=[-0.4,0.58,0.089;-0.31,0.27,-0.04;-0.38,0.055,-0.035;-0.15,0.53,0.011;- 0.35,.47,0.034;0.17,0.69,0.1;-0.011,0.55,-0.18;-0.27,0.61,0.12;-0.065,0.49,0.0012;- 0.12,0.054,-0.063]; w2=[0.83,1.6,-0.014;1.1,1.6,0.48;-0.44,-0.41,0.32;0.047,-0.45,1.4;0.28,0.35,3.1;- 0.39,-0.48,0.11;0.34,-0.079,0.14;-0.3,-0.22,2.2;1.1,1.2,-0.46;0.18,-0.11,-0.49]; W1=w1';%转置下方便后面求s1

Fisher线性判别分析实验(模式识别与人工智能原理实验1)

实验1 Fisher 线性判别分析实验 一、摘要 Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 二、算法的基本原理及流程图 1 基本原理 (1)W 的确定 各类样本均值向量mi 样本类内离散度矩阵i S 和总类内离散度矩阵 w S [ 12w S S S =+ 样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 。样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 。样本类间离散度T b b S ' = W S W 。 Fisher 准则函数满足两个性质: ·投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 ·投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出W : -1w 12W = S (m - m ) 。 (2)阈值的确定 实验中采取的方法:012y = (m ' + m ') / 2。 \ T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑T 1212S (m m )(m m )b =--

(3)Fisher线性判别的决策规则 对于某一个未知类别的样本向量x,如果y=W T·x>y0,则x∈w1;否则x∈w2。 2 流程图 方差标准化(归一化处理) 一个样本集中,某一个特征的均值与方差为: 归一化: 三、实验要求 寻找数据进行实验,并分析实验中遇到的问题和结论,写出实验报告。

FISHER线性判别MATLAB实现

Fisher线性判别上机实验报告 班级: 学号: 姓名:

一.算法描述 Fisher 线性判别分析的基本思想:选择一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值w0, 即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 线性判别函数的一般形式可表示成0)(w X W X g T += 其中 ????? ??=d x x X 1 ?????? ? ??=d w w w W 21 Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求。 如下为具体步骤: (1)W 的确定 样本类内离散度矩阵i 和总类内离散度矩阵w S 12w S S S =+ T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑

样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 样本类间离散度T b b S ' = W S W Fisher 准则函数为 max 22 212 21~~)~~()(S S m m W J F +-= (2)阈值的确定 w 0 是个常数,称为阈值权,对于两类问题的线性分类器可以采用下属决策规则: 令) ()()(2 1 x x x g g g -=则: 如果g(x)>0,则决策w x 1∈;如果g(x)<0,则决策w x 2∈;如果g(x)=0,则可将x 任意分到某一类,或拒绝。 (3)Fisher 线性判别的决策规则 Fisher 准则函数满足两个性质: 1.投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 2.投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出 W :-1w 12W = S (m - m ) 。 这就是Fisher 判别准则下的最优投影方向。 最后得到决策规则 若 P P m m w w w x x g T ) ()(2112 log ))(21()(大于或小于+-=,则 {1 2w w x ∈ T 1212S (m m )(m m ) b =--

Fisher线性判别

3·4 Fisher线性判别 多维 T Fisher变换 T 利于分类的一维 对于线性判别函数 ( 3-4-1) 可以认为是矢量在以为方向的轴上的投影的倍。这里, 视作特征空间中的以为分量的一个维矢量 希望所求的使投影后,同类模式密聚,不同类模式相距较远。 求权矢量T 求满足上述目标的投影轴的方向和在一维空间中确定判别规则。 从另一方面讲,也是降维,特征提取与选择等问题的需要。(R.A.Fisher,1936) 下面我们用表示待求的。 图 (3-4-1) 二维模式向一维空间投影示意图 (1)Fisher准则函数 对两类问题,设给定维训练模式,其中有个和个模式分属 类和类。为方便,各类的模式又可分别记为和,于是,各类模式均值矢量为 ( 3-4-2) 各类类内离差阵和总的类内离差阵分别为 ( 3-4-3) ( 3-4-4) 我们取类间离差阵为

( 3-4-5) 作变换,维矢量在以矢量为方向的轴上进行投影 ( 3-4-6) 变换后在一维空间中各类模式的均值为 ( 3-4-7) 类内离差度和总的类内离差度为 ( 3-4-8) ( 3-4-9) 类间离差度为 ( 3-4-10) 我们希望经投影后,类内离差度越小越好,类间离差度越大越好,根据这个目标作准则函数 ( 3-4-11) 称之为Fisher准则函数。我们的目标是,求使最大。 (2)Fisher变换 将标量对矢量微分并令其为零矢量,注意到的分子、分母均为标量,利用二次型关于矢量微分的公式可得 ( 3-4-12) 令 可得 当时,通常是非奇异的,于是有

( 3-4-13) 上式表明是矩阵相应于本征值的本征矢量。对于两类问题,的秩为1,因此 只有一个非零本征值,它所对应的本征矢量称为Fisher最佳鉴别矢量。由式( 3-4-13)有 ( 3-4-14) 上式右边后两项因子的乘积为一标量,令其为,于是可得 式中为一标量因子。这个标量因子不改变轴的方向,可以取为1,于是有 ( 3-4-15) 此时的是使Fisher准则函数取最大值时的解,即是维空间到一维空间投影轴的最佳方向, ( 3-4-16) 称为Fisher变换函数。至此可以说解决了将维模式的分类转变为一维模式分类的问题。(3)Fisher判别规则 由于变换后的模式是一维的,因此判别界面实际上是各类模式所在轴上的一个点。可以根据训练模式确定一个阈值,Fisher判别规则为 ( 3-4-17) 判别阈值可取两个类心在方向上轴的投影的连线的中点作为阈值,即 ( 3-4-18) 容易得出 ( 3-4-19) 显然,这里是和连线的中点。 当考虑类的先验概率时,、应取下面的定义 ( 3-4-20)

Fisher线性判别分析实验(模式识别与人工智能原理实验1)

实验1 Fisher 线性判别分析实验 一、摘要 Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 二、算法的基本原理及流程图 1 基本原理 (1)W 的确定 各类样本均值向量mi 样本类内离散度矩阵i S 和总类内离散度矩阵w S 12w S S S =+ 样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 。样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 。样本类间离散度T b b S ' = W S W 。 Fisher 准则函数满足两个性质: ·投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 ·投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出W : -1w 12W = S (m - m ) 。 (2)阈值的确定 实验中采取的方法:012y = (m ' + m ') / 2。 (3)Fisher 线性判别的决策规则 对于某一个未知类别的样本向量x ,如果y=W T ·x>y0,则x ∈w1;否则x ∈w2。 x 1 m x, 1,2 i i X i i N ∈= =∑T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑T 1212S (m m )(m m )b =--

模式识别 Fisher线性判别实验

实验三 Fisher 线性判别实验 姓名:徐维坚 学号:2220103484 日期:2012/7/7 一、实验目的: 1)加深对Fisher 线性判别的基本思想的认识和理解。 2)编写实现Fisher 线性判别准则函数的程序。 二、实验原理: 1.基本原理: 一般情况下,我们总可以找到某个方向,使得这个方向的直线上,样本的投影能分开的最好,而Fisher 法所要解决的基本问题就是找到这条最好的、最易于分类的投影线。 先从d 维空间到一维空间的一维数学变换方法。假设有一集合X 包含N 个d 维样本 N x x x ,...,,21,其中1N 个属于1ω类的样本记为子集1X ,2N 个属于2ω类的样本记为2X 。 若对N x 的分量做线性组合可得标量 n T n x w y =,i N n ,...,2,1= 这样便得到N 个一维样本n y 组成的集合,并可分为两个子集1Y 和2Y 。w 的绝对值是无关紧要的,它仅使n y 乘上一个比例因子,重要的是选择w 的方向,从而转化为寻找最好的投影方向* w ,是样本分开。 2.基本方法: 先定义几个基本参量: (1)各类样本均值向量i m 2,1,1== ∑∈i x N m i X x i (2)样本类内离散度矩阵i S 和总类内离散度矩阵ωS 2,1,) )((=--= ∑∈i m x m x S i X x T i i i 21S S S +=ω (3)样本类间离散度矩阵b S T b m m m m S ))((2121--= 我们希望投影后,在低维空间里个样本尽可能的分开些,即希望两类均值)(21m m -越大越

好,同时希望各类样本内部尽量密集,即i S 越小越好。因此,我们定义Fisher 准则函数为 2 12 21)()(S S m m w J F +-= 但)(w J F 不显含w ,因此必须设法将)(w J F 变成w 的显函数。 由式子 i T X x i T X x T i Y y i i m w x N w x w N y N m i i i === = ∑ ∑∑∈∈∈)1( 11 w S w w m m m m w m w m w m m b T T T T T =--=-=-))(()()(2121221221 w S w w m x m x w m w x w m y S i T T i i T Y y i T T Y y i i i i =--=-=-=∑∑∈∈))(()()(22 从而得到 w S w w S w w J T b T F ω=)(, 采用Lagrange 乘子法求解它的极大值* w )(),(c w S w w S w w L T b T --=ωλλ 对其求偏导,得0**=-w S w S b ωλ,即 **w S w S b ωλ= 从而我们很容易得到 *21211 *1*)(,)()(w m m R R m m S w S S w T b -=-==--其中ωωλ )(211 *m m S R w -= -ωλ 忽略比例因子λ/R ,得 )(211 *m m S w -=-ω 这就是我们Fisher 准则函数)(w J F 取极大值时的解。 三、实验内容: 依据实验基本原理和基本方法,对下面表3-1样本数据中的类别1ω和2ω计算最优方向 w ,画出最优方向w 的直线,并标记出投影后的点在直线上的位置。选择决策边界,实现 新样本xx1=(-0.7,0.58,0.089),xx2=(0.047,-0.4,1.04)的分类。 设某新类别3ω数据如表3-2所示,用自己的函数求新类别3ω分别和1ω、2ω分类的投

FISHER线性判别MATLAB实现

Fisher 线性判别上机实验报告 班级: 学号: 姓名: 一.算法描述 Fisher 线性判别分析的基本思想:选择一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。 Fisher 线性判别分析,就就是通过给定的训练数据,确定投影方向W 与阈值w0, 即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 线性判别函数的一般形式可表示成0)(w X W X g T += 其中 ????? ??=d x x X Λ1 ?????? ? ??=d w w w W Λ21 Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求。 如下为具体步骤: (1)W 的确定

样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 样本类内离散度与总类内离散度 T T i i w w S ' = W S W S ' = W S W 样本类间离散度T b b S ' = W S W Fisher 准则函数为 max 22 212 21 ~~)~~()(S S m m W J F +-= (2)阈值的确定 w 0 就是个常数,称为阈值权,对于两类问题的线性分类器可以采用下属决策规 则: 令) ()()(2 1 x x x g g g -=则: 如果g(x)>0,则决策w x 1∈;如果g(x)<0,则决策w x 2∈;如果g(x)=0,则可将x 任意分到某一类,或拒绝。 (3)Fisher 线性判别的决策规则 Fisher 准则函数满足两个性质: 1、投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 2、投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出 W :-1 w 12W = S (m - m ) 。 这就就是Fisher 判别准则下的最优投影方向。 最后得到决策规则 T 1212S (m m )(m m ) b =--

fisher判别法

实验1 Fisher 线性判别实验 一、实验目的 应用统计方法解决模式识别问题的困难之一是维数问题,在低维空间行得通的方法,在高维空间往往行不通。因此,降低维数就成为解决实际问题的关键。Fisher 的方法,实际上涉及维数压缩。 如果要把模式样本在高维的特征向量空间里投影到一条直线上,实际上就是把特征空间压缩到一维,这在数学上容易办到。问题的关键是投影之后原来线性可分的样本可能变得混杂在一起而无法区分。在一般情况下,总可以找到某个最好的方向,使样本投影到这个方向的直线上是最容易分得开的。如何找到最好的直线方向,如何实现向最好方向投影的变换,是Fisher 法要解决的基本问题。这个投影变换就是我们寻求的解向量* w 本实验通过编制程序体会Fisher 线性判别的基本思路,理解线性判别的基本思想,掌握Fisher 线性判别问题的实质。 二、实验原理 1.线性投影与Fisher 准则函数 各类在d 维特征空间里的样本均值向量: ∑∈= i k X x k i i x n M 1 ,2,1=i (4.5-2) 通过变换w 映射到一维特征空间后,各类的平均值为: ∑∈= i k Y y k i i y n m 1,2,1=i (4.5-3) 映射后,各类样本“类内离散度”定义为: 22 ()k i i k i y Y S y m ∈= -∑,2,1=i (4.5-4) 显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。因此,定义Fisher 准则函数: 2 122 2 12 ||()F m m J w s s -=+ (4.5-5) 使F J 最大的解* w 就是最佳解向量,也就是Fisher 的线性判别式。

实验1 Fisher线性判别实验

实验1 Fisher线性判别实验 一、实验目的 应用统计方法解决模式识别问题的困难之一是维数问题,低维特征空间的分类问题一般比高维空间的分类问题简单。因此,人们力图将特征空间进行降维,降维的一个基本思路是将d维特征空间投影到一条直线上,形成一维空间,这在数学上比较容易实现。问题的关键是投影之后原来线性可分的样本可能变为线性不可分。一般对于线性可分的样本,总能找到一个投影方向,使得降维后样本仍然线性可分。如何确定投影方向使得降维以后,样本不但线性可分,而且可分性更好(即不同类别的样本之间的距离尽可能远,同一类别的样本尽可能集中分布),就是Fisher线性判别所要解决的问题。 本实验通过编制程序让初学者能够体会Fisher线性判别的基本思路,理解线性判别的基本思想,掌握Fisher线性判别问题的实质。 二、实验要求 1、改写例程,编制用Fisher线性判别方法对三维数据求最优方向W的通用函数。 2、对下面表1-1样本数据中的类别ω1和ω2计算最优方向W。 3、画出最优方向W的直线,并标记出投影后的点在直线上的位置。 表1-1 Fisher线性判别实验数据 4、选择决策边界,实现新样本xx1=(-0.7,0.58,0.089),xx2=(0.047,-0.4,1.04)的分类。 5、提高部分(可做可不做):设某新类别ω3数据如表1-2所示,用自己的函数求新类别ω3分别和ω1、ω2分类的投影方向和分类阈值。

表1-2 新类别样本数据 三、部分参考例程及其说明 求取数据分类的Fisher投影方向的程序如下:其中w为投影方向。 clear %Removes all variables from the workspace. clc %Clears the command window and homes the cursor. % w1类训练样本,10组,每组为行向量。 w1=[-0.4,0.58,0.089;-0.31,0.27,-0.04;-0.38,0.055,-0.035;-0.15,0.53,0. 011;-0.35,0.47,0.034;... 0.17,0.69,0.1;-0.011,0.55,-0.18;-0.27,0.61,0.12;-0.065,0.49,0.0012;-0 .12,0.054,-0.063]; % w2类训练样本,10组,每组为行向量。 w2=[0.83,1.6,-0.014;1.1,1.6,0.48;-0.44,-0.41,0.32;0.047,-0.45,1.4;0.2 8,0.35,3.1;... -0.39,-0.48,0.11;0.34,-0.079,0.14;-0.3,-0.22,2.2;1.1,1.2,-0.46;0.18,-0.11,-0.49]; xx1=[-0.7,0.58,0.089]'; % 测试数据xx1,为列向量。 xx2=[0.047,-0.4,1.04]'; % 测试数据xx2,为列向量。 s1= cov(w1,1); % w1类样本类内离散度矩阵 m1= mean(w1)'; % w1类样本均值向量,为列向量 s2= cov(w2,1); % w2类样本类内离散度矩阵 m2= mean(w2)'; % w2类样本均值向量,为列向量 sw=s1+s2; % 总类内离散度矩阵 w= inv(sw)*(m1-m2); % 投影方向 y0=(w'*m1+w'*m2)/2; % 阈值y0 figure(1) for i=1:10 plot3(w1(i,1),w1(i,2),w1(i,3),'r*') hold on plot3(w2(i,1),w2(i,2),w2(i,3),'bo')

FISHER线性判别MATLAB实现

Fisher 线性判别上机实验报告 班级: 学号: 姓名: 一.算法描述 Fisher 线性判别分析的基本思想:选择一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值w0, 即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 线性判别函数的一般形式可表示成0)(w X W X g T += 其中 Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求。 如下为具体步骤: (1)W 的确定 w S 样本类间离散度矩阵b 在投影后的一维空间中,各类样本均值T i i m '= W m 样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 样本类间离散度T b b S ' = W S W Fisher 准则函数为 max 22 212 21 ~~)~~()(S S m m W J F +-=

(2)阈值的确定 w 0 是个常数,称为阈值权,对于两类问题的线性分类器可以采用下属决策规则: 令) ()()(2 1 x x x g g g -=则: 如果g(x)>0,则决策w x 1∈;如果g(x)<0,则决策w x 2∈;如果g(x)=0,则可将x 任意分到某一类,或拒绝。 (3)Fisher 线性判别的决策规则 Fisher 准则函数满足两个性质: 1.投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 2.投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出 W :-1w 12W = S (m - m ) 。 这就是Fisher 判别准则下的最优投影方向。 最后得到决策规则 若 P P m m w w w x x g T )( ) (211 2 log ))(2 1()(大于或小于+-=,则 {1 2w w x ∈ 对于某一个未知类别的样本向量x ,如果y=W T ·x>y0,则x ∈w1;否则x ∈w2。 二.数据描述 1.iris 数据 IRIS 数据集以鸢尾花的特征作为数据来源,数据集包含150个数据集,有4维,分为3 类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中非常常用的测试集、训练集。

基于Fisher准则的线性分类器设计

基于Fisher 准则的线性分类器设计 一、 实验目的: 1. 进一步了解分类器的设计概念,能够根据自己的设计对线性分类器有更深刻地认识; 2. 理解Fisher 准则方法确定最佳线性分界面方法的原理,以及拉格朗日乘子求解的原理。 二、 实验条件: 1. PC 微机一台和MATLAB 软件。 三、 实验原理: 设有一个集合包含N 个d 维样本N x x x ,,,21 ,其中1N 个属于1ω类,2N 个属于2ω类。线性判别函数的一般形式可表示成0)(w x W x g T +=,其中T d w w W ),,(1 =。 根据Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W 的函数为: W S W W S W W J w T b T F =)( T W m m S W )(211 *-=- 其中: ∑==i N j j i i x N m 1 1 2,1=i j x 为i N 类中的第j 个样本 w S 为类内离散度,定义为:∑∑==--= 2 11 1))((i N j T i j j w i m x m x S b S 为类间离散度,定义为:T b m m m m S ))((2121--= 上面的公式是使用Fisher 准则求最佳法线向量的解,我们称这种形式的运算 为线性变换,其中)(21m m -是一个向量,1 -W S 是W S 的逆矩阵,如)(21m m -是d 维,1 -W S 和W S 都是d ×d 维,得到的*W 也是一个d 维的向量。 向量*W 就是使Fisher 准则函数)(W J F 达极大值的解,也就是按Fisher 准则将d 维X 空间投影到一维Y 空间的最佳投影方向,该向量*W 的各分量值是对原

模式识别fisher线性判别作业

实验容使用FISHER线性判别来对树叶进行分类指导老师_王旭初_____ 一.实验目的 利用FISHER线性判别函数来对桃树叶子和芒果树叶子进行分类,将这两者若干片树叶进行一定特点分类,做出函数图,使得我们容易分析这两者之间的异同。 二.数据获取方式 实验过程中将会使用到FISHER线性判别函数法,MATLAB实验仿真程序。通过实验MATLAB程序来设计一个FISHER线性判别分类器,将实验前收集到的两种树叶的若干片叶子的数据输入分类器,运行后得出一个分类仿真图形,从而可以得出其叶子间的异同点。 三.实验原理 Fisher线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。 Fisher线性判别分析,就是通过给定的训练数据,确定投影方向W和阈值y0,即确定

线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 线性判别函数的一般形式可表示成 0)(w X W X g T += 其中 ????? ??=d x x X Λ1 ?????? ? ??=d w w w W Λ21 根据Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类样本投影尽可能密集的要求,用以评价投影方向W 的函数为: 2 2 2122 1~~)~~()(S S m m W J F +-= )(211 *m m S W W -=- 上面的公式是使用Fisher 准则求最佳法线向量的解,该式比较重要。另外, 该式这种形式的运算,我们称为线性变换,其中21m m -式一个向量,1 -W S 是W S 的逆矩阵,如21m m -是d 维,W S 和1-W S 都是d ×d 维,得到的*W 也是一个d 维的向量。 向量*W 就是使Fisher 准则函数)(W J F 达极大值的解,也就是按Fisher 准则将d 维X 空间投影到一维Y 空间的最佳投影方向,该向量*W 的各分量值是对原d 维特征向量求加权和的权值。

fisher判别法

1 实验1 Fisher 线性判别实验 一、实验目的 应用统计方法解决模式识别问题的困难之一是维数问题,在低维空间行得通的方法,在高维空间往往行不通。因此,降低维数就成为解决实际问题的关键。Fisher 的方法,实际上涉及维数压缩。 如果要把模式样本在高维的特征向量空间里投影到一条直线上,实际上就是把特征空间压缩到一维,这在数学上容易办到。问题的关键是投影之后原来线性可分的样本可能变得混杂在一起而无法区分。在一般情况下,总可以找到某个最好的方向,使样本投影到这个方向的直线上是最容易分得开的。如何找到最好的直线方向,如何实现向最好方向投影的变换,是Fisher 法要解决的基本问题。这个投影变换就是我们寻求的解向量* w 本实验通过编制程序体会Fisher 线性判别的基本思路,理解线性判别的基本思想,掌握Fisher 线性判别问题的实质。 二、实验原理 1.线性投影与Fisher 准则函数 各类在d 维特征空间里的样本均值向量: ∑∈=i k X x k i i x n M 1 ,2,1=i (4.5-2) 通过变换w 映射到一维特征空间后,各类的平均值为: ∑∈=i k Y y k i i y n m 1 ,2,1=i (4.5-3) 映射后,各类样本“类内离散度”定义为: 22()k i i k i y Y S y m ∈= -∑,2,1=i (4.5-4) 显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。因此,定义Fisher 准则函数: 2 122212 ||()F m m J w s s -=+ (4.5-5) 使F J 最大的解* w 就是最佳解向量,也就是Fisher 的线性判别式。 2.求解*w 从)(w J F 的表达式可知,它并非w 的显函数,必须进一步变换。

Fisher准则线性分类器设计

一 、基于F i s h e r 准则线性分类器设计 1、 实验内容: 已知有两类数据1ω和2ω二者的概率已知1)(ωp =,2)(ωp =。 1ω中数据点的坐标对应一一如下: 数据: x = y = z =

数据点的对应的三维坐标为2 x2 = y2 = z2 =

数据的样本点分布如下图: 1)请把数据作为样本,根据Fisher选择投影方向W的原则,使原样本向量在该 方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要 求,求出评价投影方向W的函数,并在图形表示出来。并在实验报告中表示 取极大值的*w。用matlab完成Fisher线性分类器的设出来,并求使) J (w F 计,程序的语句要求有注释。 2)根据上述的结果并判断(1,,),,,,,,,,,(,,),属于哪个类别,并画出数据分 类相应的结果图,要求画出其在W上的投影。 3)回答如下问题,分析一下W的比例因子对于Fisher判别函数没有影响的原因。 2、实验代码 x1 =[ ]; x2 =[ ]; x3 =[ ]; %将x1、x2、x3变为行向量 x1=x1(:);x2=x2(:);x3=x3(:); %计算第一类的样本均值向量m1 m1(1)=mean(x1); m1(2)=mean(x2); m1(3)=mean(x3); %计算第一类样本类内离散度矩阵S1 S1=zeros(3,3); for i=1:36

-m1(3)+x3(i)]; end %w2的数据点坐标 x4 =[ ]; x5 =[ ]; x6 =[ ]; x4=x4(:); x5=x5(:); x6=x6(:); %计算第二类的样本均值向量m2 m2(1)=mean(x4); m2(2)=mean(x5); m2(3)=mean(x6); %计算第二类样本类内离散度矩阵S2 S2=zeros(3,3); for i=1:36 S2=S2+[-m2(1)+x4(i) -m2(2)+x5(i) -m2(3)+x6(i)]'*[-m2(1)+x4(i) -m2(2)+x5(i) -m2(3)+x6(i)]; end %总类内离散度矩阵Sw Sw=zeros(3,3); Sw=S1+S2; %样本类间离散度矩阵Sb Sb=zeros(3,3); Sb=(m1-m2)'*(m1-m2); %最优解W W=Sw^-1*(m1-m2)' %将W变为单位向量以方便计算投影 W=W/sqrt(sum(W.^2)); %计算一维Y空间中的各类样本均值M1及M2

Fisher线性判别原理(实例论证解析)

Fisher 线性判别原理 原始数据: 1112 12122212p p n n np n p x x x x x x X x x x ???????=???????? 寻找关于X 的线性组合,使得Y Xa =,其中 121p p a a a a ???????=????????为p 维列向量。使得1112121112122222 11221 p p p p n n p np n n a x a x a x y a x a x a x y Y Xa a x a x a x y ?+++?? ??????+++? ???==????????+++????? ? 对于Y 中的每个分量来说,离差平方和为: 2 2 21 1 ()n n i i i i y y y ny ==-=-∑∑ 令111 11n n n H I n ??'=-,则有: [][][][]121212121212100101 011(111)00 111 11111 111111n n n n n n y y Y HY y y y n y n n n y y y y y n n n y n n n y y y y y y y y y ?????? ????????? ???'=-????????? ????????? ??---????? ?????---????=????????????---? ??? ???? ?? =---?????22 2 11 ()n n i i i i y ny y y ==?=-=-∑∑ 而 2 1 () ()n i i y y Y HY Xa HXa a X HXa a Ta ='''''-====∑ 若n 个原始数据X 来自J 个不同的组,每个组有j n 个数据,12+ +J n n n n +=。

Fisher线性判别算法

模式识别实验报告实验二:Fisher线性判别算法 院系电子信息工程学院 班级计算机092 学生姓名 *** 学号 091040602**

实验二:Fisher线性判别算法 一.实验名称: Fisher线性判别算法 二.实验目的: 1、加深对Fisher判别分析的理解和认识 2、掌握Fisher分类器的设计方法 三.实验环境: Windows系统平台Matlab6.5软件 四.实验原理 1、Fisher判别分析的理论基础 2、分类器的性能评价 五.实验内容: 1、用FAMALE.TXT和MALE.TXT的数据作为训练的样本集,建立Fisher分类 器; 2、用测试样本数据text2.txt对该分类器进行测试; 3、调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响, 从而加深对所学内容的理解和感性认识。 六.实验步骤 1、同时采用身高和体重数据作为特征,用Fisher线性判别方法求分类器。 2、将该分类器应用到训练和测试样本,考察训练和测试错误情况。 3、将训练样本和求的的决策边界画到图上,同时把以往用Bayes方法求得 的分类器也画到图上,比较结果的异同。 4、用留一法在训练集上估计错误率,与在测试集上得到的错误率进行比较。七.完成情况及结果 图1

图2是原始代码运行结果所显示的图像结果是有一个点在分类的时候出现;图1是根据此图修改原始代码之后所显示的图像,所求得的分类器正好没有误差出现。 八、实验总结 通过本实验,我能进一步理解和认识Fisher分类器的原理,能够初步的掌握对Bayes分类器的设计方法,通过图形化界面查看Fisher分类器的效果。 附:实验程序代码 clear all; load FEMALE.txt; load MALE.txt; FEMALE=FEMALE'; %特征为列向量MALE=MALE'; fid=fopen('test1.txt','r'); test1=fscanf(fid,'%f %f %c',[3,inf]); test=test1'; fclose(fid); FS=[0 0;0 0]; MS=[0 0;0 0]; Fmean = mean(FEMALE')'; Mmean = mean(MALE')'; figure; for i=1:50 FS1=(FEMALE(:,i)-Fmean)*(FEMALE(:,i)-Fmean )'; MS2=(MALE(:,i)-Mmean)*(MALE(:,i)-Mmean)' ; FS = FS1+FS; MS = MS2+MS end; SW=FS+MS; Sb=(Fmean-Mmean)*(Fmean-Mmean)'; w=inv(SW)*(Fmean-Mmean); mu1=w'*Fmean; mu2=w'*Mmean; b=(mu1+mu2)/2; for i=1:35 if (test(i,3)==102) plot(test(i,1),test(i,2),'r+'); end; if (test(i,3)==109) plot(test(i,1),test(i,2),'k*'); end; hold on; end; x=test(:,1); y=(b-w(1,1)*x)/w(2,1); plot(x,y); title('Fisher方法求分界线'); xlabel('身高(cm)'),ylabel('体重(kg) 图 2

Fisher线性判别分析实验报告

Fisher 线性判别分析实验报告 一、摘要 Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有性质:同类样本尽可能聚集在一起,不同类样本尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向w 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 二、算法的基本原理及流程图 1 基本原理 (1) W 的确定 各类样本均值向量 mi 样本类内离散度矩阵i S 和总类内离散度矩阵 w S 12w S S S =+ 样本类间离散度矩阵 b S 在投影后的一维空间中, 各类样本均值 T i i m '= W m 样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 样本类间离散度 T b b S ' = W S W Fisher 准则函数满足两个性质: 投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出w T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑T 1212S (m m )(m m )b =--

-1 w12 W = S(m - m) (2)阈值的确定 实验中采取的方法: 012 y = (m' + m') / 2 (3) Fisher线性判别的决策规则 对于某一个未知类别的样本向量 x,如果y = W T x >y0, 则x∈w1 否则x∈w2 2流程图 方差标准化(归一化处理) 一个样本集中,某一个特征的均值与方差为:归一化:

相关主题