/Driving-fatigue-dectect-base-on-EEG-signal

基于EEG信号的驾驶疲劳度估计,运用特征提取,岭回归,迁移学习

Primary LanguageMATLAB

##一、 问题分析

###1.1疲劳驾驶的检测 给定n个用户的数据,包含剔除信息,对它们加以处理,训练回归,利用迁移学习得到新用户的疲劳检测的回归模型,并用这个回归模型来判断新用户的驾驶疲劳状态。 ###1.2流程图 训练这样一个回归模型的过程,分析如下: ##二、 数据预处理 对于获取的EEG信号,我们必须进行相关的处理,才能把数据拿去进行训练或分类,这就是数据预处理,常见的数据预处理有:降采样,重参考,滤波,基线校正

当前所给数据根据说明文件可知,已经进行降采样,重参考,我们所做的就是对它进行滤波操作,这样就预处理完成。

##三、 划分trial 采样频率250Hz,时间窗口30s,窗口间隔10s,最大时长1h,我们可以得出时间窗口右边界取值最多为30:10:3600共358个取值,也就是最多为358个trail。 idsNaN是标记数据中对数据有效性的一个评估,给定数据idsNaN信息也被用于划分trial,idsNaN有两个作用: 1、idsNaN长度代表可以最大划分的trail数目;idsNaN是一个最大为358的列向量,它的长度为N,代表我们划分trail的数量为N,划分的trail为前N个时间窗口。即我们划分的时间窗口右边界取值30:10:(30*N+20),当长度为358,我们划分的时间窗口最多,其右边界取值则最大为30:10:3600 2、idsNaN中每一个数据用于代表第一步划分的trial的有效性:其中只有0与1,为0代表数据没有出错,数据有效,为1代表数据出错,应该去掉。根据有效与否,我们会删除第一步中的trail 经过两个步骤之后,我们就得到了我们的trail。 举个例子:060227.mat中idsNaN长度为353,那么358个窗口取前353个窗口使用,即窗口右边界取值为30:10:3550共353个取值。接着可以根据idsNaN中取值为1的地方对窗口进一步裁剪,比如060227.mat中idsNaN在第132135共4个位置取值为1,那么在353个从前往后的窗口中,第132135共4个位置的窗口需要去掉。两次裁剪后剩下共349个滑动窗口

##四、 特征提取 ###4.1特征提取 脑电信号的常见特征为时域分析与频域分析,特征參数主要包括时域信号(如幅值)和频域信号(如频率)两大类,相应的特征提取方法也分为时域法、频域法 和时-频域方法。频域分析方法主要是基于EEG信号各频段功率、相干等;时域分析方法则主要分析EEG波形的几何性质,如幅度、均值、方差、偏歪度、峭度等。 常使用的特征提取方法: 自回归、傅里叶变换、表面拉普拉斯变换和小波变换。 ###4.2平均功率谱 在这个问题中,我们选取对信号进行功率谱分析。因为,基于先验知识,我们知道疲劳与否最主要的是与Theta(4 – 7 Hz)信号有关,所以我就提取代表Theta(4 – 7 Hz)信号的强弱的平均功率谱来做为特征。 经典功率谱估计采用的是传统傅里叶变换分析方法(又称线性谱估计),主要包括直接法(又称周期图法)和间接法(又称自相关法)两种 ##五、 模型回归与测试 ###5.1岭回归RR ####5.1.1原理: 线性回归模型的目标函数:

找到最小的beta使得J(beta)最小,得beta的表达式:

采用不同的邻参数lamda,多次测试后找到使目标函数最小的那个beta ####5.1.2训练策略: 每个被使者大约有360个样例,随机选取连续的100个样例做训练,其余做测试,最后观察其模型误差,当模型误差控制在0.1以下,我们认为我们已经找到比较好的RR模型,不必进行接下去的训练,而经过全部训练之后返回的模型平均方差在10以上,这是个很糟糕的模型,我们不满意,再一次训练以找到更好的模型。

###5.2迁移学习TL 在剔除一个坏数据之后(060629.mat),我们可以得到14个RR模型,我们将它取平均,用到测试模型上,再进行归一化处理,得到最终结果。 ###5.3 结果 获取最后的RR模型的beta值,测试效果符合预期