机器学习项目——基于机器学习(决策树 随机森林 朴素贝叶斯 SVM KNN XGBoost)的帕金森脑电特征识别研究(代码/报告材料)

本文主要是介绍机器学习项目——基于机器学习(决策树 随机森林 朴素贝叶斯 SVM KNN XGBoost)的帕金森脑电特征识别研究(代码/报告材料),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

完整的论文代码见文章末尾 以下为核心内容和部分结果

问题背景

帕金森病(Parkinson’s Disease, PD)是一种常见的神经退行性疾病,其主要特征是中枢神经系统的多巴胺能神经元逐渐丧失,导致患者出现运动障碍、震颤、僵硬等症状。然而,除运动症状外,帕金森病患者还常常伴有一系列非运动症状,其中睡眠障碍是最为显著的非运动症状之一。

脑电图(Electroencephalogram, EEG)是一种记录大脑电活动的无创检测方法,广泛用于睡眠研究。通过分析帕金森病患者在不同睡眠状态下的脑电图特征,可以揭示其睡眠结构的异常变化,为进一步的诊断和治疗提供依据。

本文旨在利用多种机器学习模型对帕金森病患者的睡眠状态脑电特征进行分析和分类。

数据集

帕金森病EEG数据集来自UCI机器学习数据库,包含15名帕金森病患者和16名健康对照的EEG信号。这些数据用于研究帕金森病患者和健康人之间EEG信号的差异,旨在帮助诊断和理解帕金森病,数据集地址为:点击

部分数据分析

在这里插入图片描述

    MDVP基本频率,单位为赫兹(Hz)。MDVP最大基本频率。MDVP最小基本频率。MDVP基本频率的波动百分比。MDVP基本频率的绝对波动。MDVP基本频率相对平均扰动。MDVP五点周期扰动商。Jitter 周期差异的绝对平均值,衡量频率波动。MDVP 振幅波动。MDVP振幅波动,以分贝(dB)为单位。Shimmer三点振幅扰动商。Shimmer五点振幅扰动商。MDVP平均振幅扰动商。Shimmer振幅差异的绝对平均值。NHR - 噪声与谐波比。HNR - 谐波与噪声比。status - 受试者状态(通常0表示健康,1表示病理状态)。RPDE - 递归周期密度熵,衡量信号复杂度。DFA - 去趋势波动分析 spread1 - 基本频率扩展的非线性度量。D2 - 关联维数,衡量信号混沌性。PPE - 音调周期熵,另一种衡量信号复杂度的方法。

相关性分析

在这里插入图片描述

部分算法代码

XGBoost 网格搜索交叉验证(GridSearchCV)

# Defining Parameter Dictionary
param_dict = {'max_depth': range(4,8), 'eta' : [0.1, 0.2, 0.3, 0.4, 0.5],'reg_lambda' : [0.8, 0.9, 1, 1.1, 1.2],'random_state': [300, 600, 900]}
clf = GridSearchCV(XGBClassifier(), param_grid = param_dict,scoring = 'f1', cv = 3, verbose = 1)
clf.fit(X_train, y_train)
GridSearchCV(cv=3, error_score=nan,estimator=XGBClassifier(base_score=0.5, booster='gbtree',colsample_bylevel=1, colsample_bynode=1,colsample_bytree=1, gamma=0,learning_rate=0.1, max_delta_step=0,max_depth=3, min_child_weight=1,missing=None, n_estimators=100, n_jobs=1,nthread=None, objective='binary:logistic',random_state=0, reg_alpha=0, reg_lambda=1,scale_pos_weight=1, seed=None, silent=None,subsample=1, verbosity=1),iid='deprecated', n_jobs=None,param_grid={'eta': [0.1, 0.2, 0.3, 0.4, 0.5],'max_depth': range(4, 8),'random_state': [300, 600, 900],'reg_lambda': [0.8, 0.9, 1, 1.1, 1.2]},pre_dispatch='2*n_jobs', refit=True, return_train_score=False,scoring='f1', verbose=1) 

部分结果展示

展示了使用决策树分类器(Decision Tree Classifier)对数据进行训练和测试的结果,具体包括模型的精度、召回率、F1分数和支持度。

  • 模型在测试数据集上的总体准确率为92%,表现良好。
  • 对类别0的精度较高(97%),但召回率稍低(88%),可能会漏掉一些实际为类别0的样本。
  • 对类别1的召回率较高(96%),精度相对较低(86%),有时会错误地将一些样本预测为类别1。
  • 综合来看,模型在这两个类别上的表现较为均衡,F1分数也较高(都在0.91以上),说明模型在处理这类任务时具有较好的分类能力。

在这里插入图片描述
展示了使用随机森林分类器(Random Forest Classifier)对数据进行训练和测试的结果,具体包括模型的精度、召回率、F1分数和支持度。

  • 模型在测试数据集上的总体准确率为95%,表现非常优秀。
  • 对类别0的精度和召回率都很高(分别为94%和97%),F1分数也很高(0.96),说明模型对类别0的预测非常准确和全面。
  • 对类别1的精度和召回率也很高(分别为96%和92%),F1分数为0.94,说明模型对类别1的预测也很准确。
  • 综合来看,模型在这两个类别上的表现都非常均衡,F1分数都在0.94以上,表明模型在处理这类任务时具有非常强的分类能力,比之前的决策树分类器表现更好。

在这里插入图片描述

在这里插入图片描述
最优模型: 随机森林(RF)和支持向量机(SVM)在各项指标上表现均衡且优异,特别是在准确率、F1-Score和R2-Score上表现突出。

次优模型: K近邻(KNN)也表现良好,但相比RF和SVM稍逊色。

逻辑回归(LR)和XGBoost(XGB): 表现尚可,但在一些指标上略低于最优模型。

表现较差: 朴素贝叶斯(NB),特别是在准确率、F1-Score和R2-Score上,性能较为不理想。

论文 代码 获取方式

点这里 只需要一点点辛苦费,不需要你跑模型,都是ipynb文件。

这篇关于机器学习项目——基于机器学习(决策树 随机森林 朴素贝叶斯 SVM KNN XGBoost)的帕金森脑电特征识别研究(代码/报告材料)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138192

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]