本文主要是介绍机器学习项目——基于机器学习(决策树 随机森林 朴素贝叶斯 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)的帕金森脑电特征识别研究(代码/报告材料)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!