转载请注明作者和出处:https://blog.csdn.net/qq_28810395 Python版本: Python3.x 运行平台: Windows 10 IDE: Pycharm profession 2019
一、任务需求:
看懂程序,理解眼电数据处理;把程序完善,现在eog.py是一个校准的文件在此基础上,写一个检测是否有眨眼的程序
二、数据集解析:
根据程序观察对数据集数据进行了解,使用EDFbrowser软件对5个数据集进行数据观看并分析 *EOG是采集的眼电信号 event是时钟打标(同步信号) 此图为病人的眼电信号数据图,眨眼动作眼电信号会进行一个赋值跳变,打标点基本把每个眨眼动作分离。
三、程序理解:
进入程序进行程序理解,代码算法实现逻辑为,首先将眼电数据进行读入,利用打标点判断进行分离,每次选取125个数据点。然后进入数据处理部分,将波峰位置、波峰值、波谷值和持续时间返回并绘制曲线。最后将所得数据进行处理(均值、标准差)建立模型。
四、EOG眼电数据(峰值、峰值位置、持续时间)检测函数
对传入的125个数据点进行低通滤波 在20-98之间进行峰值位置、峰值和持续时间检测计算 根据持续时间进行选择,持续时间过大,说明不是眨眼动作,峰值位置无效(赋值124 和1) 最后将相关数据赋值返回
五、眨眼检测与绘图函数
眨眼检测采用了K-近邻算法(五特征值),训练数据集采用了这5套数据集进行汇总,是否眨眼根据人眼识别进行标记。训练数据集如下:
六、50个样本数据:
*第一特征值:波峰位值、 第二特征值:波峰值、 第三特征值:波谷位值
*第四特征值:波谷值、 第五特征值:持续时间
*标签:眨眼(1)未眨眼(0)
由于数据集是文本,所以添加文本处理函数: 根据其三特征值的K-近邻中占比相差不大,所以未采用归一化算法进行数据处理。眨眼检测——K-近邻算法实现 kNN算法是著名的模式识别统计学方法,是最好的文本分类算法之一,在机器学习分类算法中占有相当大的地位,是最简单的机器学习算法之一。算法实现为: K-近邻算法对未知类别属性的数据集中每个数据点处理流程如下 ① 计算已知类别数据集中的每个数据点与当前数据点之间的距离; 采用欧氏距离公式(两特征值): ② 按照距离递增次序排序; ③ 选取与当前数据点距离最小的K个数据点; ④ 确定前K个数据点所在类别的出线频率; ⑤ 发挥前K个数据点最高的类别当作当前点的预测分类; K-近邻进行分类完成后进行绘图显示: 绘图结果显示:(3.13)