模式识别结课作业Word下载.docx

上传人:b****5 文档编号:21301207 上传时间:2023-01-29 格式:DOCX 页数:19 大小:69.67KB
下载 相关 举报
模式识别结课作业Word下载.docx_第1页
第1页 / 共19页
模式识别结课作业Word下载.docx_第2页
第2页 / 共19页
模式识别结课作业Word下载.docx_第3页
第3页 / 共19页
模式识别结课作业Word下载.docx_第4页
第4页 / 共19页
模式识别结课作业Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

模式识别结课作业Word下载.docx

《模式识别结课作业Word下载.docx》由会员分享,可在线阅读,更多相关《模式识别结课作业Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

模式识别结课作业Word下载.docx

(线性分类器)设w1为疲劳后的数据,w2为疲劳前的数据,设计fisher线性分类器并判断可行性。

Fisher线性判别的基本原理是,把d维空间样本投影到一条直线上,形成一维空间。

找到某个最好的、最易于分类的投影方向,使在这个方向的直线上,样本的投影能分开得最好。

程序如下:

clear

%%%%%%%%导入数据w1,w2

w1=load('

E:

\上交张老师\处理结果及分析\分析\特征\特征明显\疲劳后T波.txt'

);

w2=load('

\上交张老师\处理结果及分析\分析\特征\特征明显\疲劳前T波.txt'

figure;

plot(w1(:

1),'

g+'

holdon;

plot(w2(:

bo'

xlabel('

x

(1)'

ylabel('

x

(2)'

title('

Fisher准则分类'

%调用fisher判别函数,返回最优投影方向w和分界阈值点y0

[w,y0]=fisher1(w1,w2);

%作图:

两类样本在最优投影方向上点投影

o1=(w*(w'

*w1'

))'

;

%第一类点样本向量在最优方向上w上点投影

fori=1:

length(o1)

h=line([o1(i,1),w1(i,1)]);

set(h,'

Color'

'

b'

LineStyle'

--'

end

o2=(w*(w'

*w2'

%第二类点样本向量在最优方向上w上点投影

length(o2)

h=line([o2(i,1),w2(i,1)]);

th=(w*y0)'

plot(th

(1),th

(2),'

rx'

LineWidth'

2,'

MarkerSize'

8)

axistight

axisequal

h=gca;

XLim=get(h,'

XLim'

YLim=get(h,'

YLim'

l=(w*(w'

*[XLim

(1),YLim

(1)]'

r=(w*(w'

*[XLim

(2),YLim

(2)]'

h=line([l

(1),r

(1)]);

set(h,'

color'

k'

仿真结果如图所示:

疲劳后的数据用‘+’表示,疲劳前的数据用‘o’表示。

因为w1,w2类间距离很小,而类内距离很大,混合在一起,找不到合适点分类线将其分开。

本次实验不成功。

方法二:

采集35组疲劳前后的心电信号,对原始信号进行去工频干扰和基线漂移后,提取清醒和疲劳时心电信号中T波幅值变化的平均值作为实验数据。

下面使用图形表示的方法。

我首先将提取的疲劳前、后各35组数据作为训练样本集在同一幅图上表示出来进行比较。

程序如下:

clc;

clear;

%close(1:

9);

tic

x1=load('

%x1=load('

x1=x1'

%转为行向量

x1=x1(1:

35);

d=x1;

sfreq=1;

%采样

s=length(d);

%信号长度

s2=1./sfreq;

%采样周期

s3=round(s./s2);

%有多少周期信号,取小数区里最近的整数

N=length(d);

r=1:

1:

N-1;

C=[1,r+1];

%序列x对应的采样点数

fs=1;

%采样频率

figure

(1)

subplot(211),plot(d,'

r--'

grid;

时间/ms'

幅值/mv'

T波变化曲线'

holdon

x2=load('

x2=x2'

x2=x2(1:

d=x2;

%采样

%信号长度

%采样周期

%有多少周期信号,取小数区里最近的整数

%采样频率

subplot(211),plot(d);

holdoff;

axistight;

结果如下图所示,红色的虚线表示的是疲劳后T波的幅值变化,蓝色的实线表示的是疲劳前T波的幅值变化,可以发现疲劳后T波幅值显著升高,说明T波特征值可以用来区别疲劳。

接着,对此程序作了一下改进,将疲劳前后T波特征值相加求均值,作为分界线,在图中用绿色的线表示,当幅值低于此线时可以认为是清醒状态,当幅值高于此状态时可以认为是疲劳状态。

改进后的结果如下图所示:

(非线性分类器)后面又对函数进行了改进,程序如下:

w1=load('

w2=load('

figure

plot(w1,'

plot(w2,'

分类结果'

w1=w1'

w1=w1(1:

w2=w2'

w2=w2(1:

w3=(w1+w2)/2;

d=w3;

sfreq=1000;

%采样

plot(d,'

r'

由图中可以看出当红线以上是疲劳后,以下是疲劳前的。

当输入测试样本时若在红线以上就代表疲劳状态。

但此方法必须保证训练样本完全正确。

(二)采用Q波特征

方法一:

用fisher分类器

%%%%%%%%%构造两类二维近似线性可分的样本数据集合w1和Í

w2

C:

\DocumentsandSettings\Administrator\桌面\模式识别\前21个人v5和maibo_zao-DD.txt'

\DocumentsandSettings\Administrator\桌面\模式识别\前21个人v5和maibo_wu-DD.txt'

3),'

Q波分类'

%调用fisher判别函数,返回最优投影方向W和分界阈值点y0

两类样本在最优投影方向上的投影

%第一类的样本向量在最优方向W上的投影

%第二类的样本向量在最优方向W上的投影

结果如图所示:

方法二:

对21个人清醒和睡眠时的心电数据进行采集,去除原始信号的工频干扰和基线漂移后,提取出Q波特征值,求出Q波在1S内幅值变化的平均值,作为此次的数据。

其中蓝线表示的是早晨的实验数据(清醒),红线表示的是中午的实验数据(睡着),从图中可以看出睡眠时Q波的幅值变化平均值明显降低,但有时会升高。

然后对清醒和睡眠时的数据求均值,作出清醒和睡眠的分界线,如图中绿线所示。

当幅值低于绿线时可以认为是清醒状态,当幅值高于绿线时可认为是睡眠状态。

a1=load('

%x1=load('

x1=a1(:

3);

转为行向量

Q波均值变化'

a2=load('

x2=a2(:

3)

plot(d);

x3=(x1+x2)/2;

d=x3;

N=length(d);

fs=1;

g'

由图中可以看出,按此方法可以区分清醒与睡意状态,但不能完全区分。

非线性分类:

%%%%%%%%µ

¼

È

ë

Ê

ý

¾

Ý

w1,w2

a1=load(C:

a2=load(C:

w1=a1(:

w2=a2(:

21);

由以上这个图可以很明显的看出图中有几个点是错分的。

方法三:

用LDA分类器

clc

a=load('

b=load('

a1=a(:

b1=(b(:

3));

m=a1;

n=b1;

A=m;

B=n;

d=length(n'

n0=d;

n1=d;

i=1;

c1=zeros(2*d,1);

forj=1:

d

c1(i)=1;

i=i+1;

c1(i)=n(j)/m(j);

end

N=2*d;

x1=mean(c1);

2*d

a1(i)=(c1(i)-x1)^2;

q1=sum(a1)/(2*d-1);

w1=sqrt(q1);

e1=(c1-x1)/w1;

T=zeros(2*d,1);

T(j,1)=e1(j);

%T(j,2)=e2(j);

T

correctp=LDAclassz(T,n0,n1)

结果为T=

0.0471

2.0885

-0.9212

-0.0518

-0.5496

-0.5075

-1.2028

1.1291

-0.8162

-0.3377

-1.3231

2.5714

-0.2468

-1.1088

-0.3489

-2.6720

-0.5050

2.5885

2.3588

-0.5566

0.6524

-1.2289

correctp=83.3333

此程序通过对T波的检测来判断睡意状态和清醒状态,准确率高达83.3333。

本实验中发现为问题:

在本实验中T波幅值均值采用的是杨华师姐的数据,发现疲劳后T波幅值显著升高。

后来我又用柳倩师姐采集的清醒和睡眠时T波幅值变化的均值做了一下仿真,发现T波幅值是降低的,如下图所示。

其中红色虚线表示的是睡眠时T波幅值均值的变化范围,蓝色实线表示的是早晨清醒时采集的T波幅值均值变化范围,绿色实线表示的是二者平均值的变化范围。

这与前面的结果不相符合。

系统评估:

采用方法一、二两种方法对睡意状态和清醒状态的T波、Q波进行分类。

发现第二种方法可以将两者区分开,但是训练样本要完全正确,若训练样本出现错误则得到的分类线就会有错误。

第一种fisher分类器经过多次改进仍不能对样本进行区分,可能因为疲劳前Q波的幅值范围是-625.1754

10

mv—-173.0940

mv,疲劳后Q波的幅值范围是-671.0890

mv—-176.8657

mv。

R波幅值也如此。

可见,其中有很大一部分叠加在一起,而分类器一般适用于内间距离很大,而内类距离很小的两类样本,所以线性分类器是不可行的。

若将其中一个样本增大到与另一个样本无重叠数据,则可以通过Fisher或者其余的线性分类器进行区分。

第三种方法(LDA分类)是第二种方法的继续,第二种方法虽然可以区分清醒和睡意,但是并不知道分类正确率,从第三种方法可以知道正确率为83.3333。

本次仿真所采用的T波、Q波幅值均值变化因为类内距离大而类间距离小,用线性分类器不易区分,因此选用非线性分类器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1