信号处理--基于EEG脑电信号的抑郁症识别分类

本实验为生物信息课程专题实验的一个小项目。数据集为私有的EEG脑电信号。实现基于机器学习的脑电信号抑郁症病人的识别分类。

目录

1 加载需要的库函数

2 加载需要的数据

3 数据特征预处理和文本特征转换

4 数据编码

5 数据集分割

6 使用KNN进行数据分类

7 对训练模型进行评价


1 加载需要的库函数

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
import seaborn as sb


2 加载需要的数据

data = pd.read_csv('/eeg-psychiatric-disorders-dataset/EEG.machinelearing_data_BRMH.csv')
data.head()

3 数据特征预处理和文本特征转换

print("Data Shape:",data.shape)print("Data Description: \n")
data.describe()data.isnull().sum()data.education.isnulldata.education.isnull().sum()data.IQdata.IQ.isnull()data.IQ.isnull().sum()data.drop(["no.", "age", "eeg.date","education", "IQ"], axis=1, inplace =True)
data.head()data.drop(["sex"], axis=1,inplace= True)
data.head()data.rename(columns={"main.disorder":"main_disorder"}, inplace = True)
data.rename(columns={"specific.disorder":"specific_disorder"}, inplace = True)
data.head()features_with_null=list(data.columns[data.isna().any()])
len(features_with_null)features_with_null=list(data.columns[data.isna().any()])
len(features_with_null)main_disorders = list(data.main_disorder.unique())
main_disordersspecific_disoders = list(data.specific_disorder.unique())
specific_disodersmood_data = data.loc[data['main_disorder'] == 'Mood disorder']
mood_data.head()main_disorderstest = list(mood_data.main_disorder.unique())
main_disorderstestspecific_mood_disoders = list(mood_data.specific_disorder.unique())
specific_mood_disoders

 

4 数据编码

from sklearn import preprocessing
pre_processing=preprocessing.LabelEncoder()
specific_disoders_encoding = pre_processing.fit_transform(mood_data["specific_disorder"])features=["main_disorder" , "specific_disorder"]
mood_data.drop(features, axis=1, inplace=True)mood_data.head()features=mood_data.to_numpy()
features# Target:
y = specific_disoders_encoding
#specify:
X = preprocessing.StandardScaler().fit_transform(features)delta_cols = [col for col in mood_data.columns if 'delta' in col]
beta_cols = [col for col in mood_data.columns if 'beta' in col]
theta_cols = [col for col in mood_data.columns if 'theta' in col]
alpha_cols = [col for col in mood_data.columns if 'alpha' in col]print(f"Number of Delta Columns : {len(delta_cols)}")
print(f"Number of Beta Columns : {len(beta_cols)}")
print(f"Number of Theta Columns : {len(theta_cols)}")
print(f"Number of Alpha Columns : {len(alpha_cols)}")

 

temp_features = delta_cols + beta_cols +theta_cols + alpha_cols
print(f"Number of items in temp_features : {len(temp_features)}")

req_features = mood_data[temp_features].to_numpy()
# the target
y = specific_disoders_encoding
#the features
X = preprocessing.StandardScaler().fit_transform(req_features)

 5 数据集分割

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.3)

6 使用KNN进行数据分类

from sklearn.neighbors import KNeighborsClassifier
knn_model = KNeighborsClassifier(n_neighbors = 5)
knn_model.fit(X_train,y_train)
y_pred = knn_model.predict(X_test)
y_pred

7 对训练模型进行评价

from sklearn import metrics
print("Accuracy is",metrics.accuracy_score(y_test,y_pred)," when k = 3")
print("Accuracy is",metrics.accuracy_score(y_test,y_pred)," when k = 5")
print("Accuracy is",metrics.accuracy_score(y_test,y_pred)," when k = 7")

 

from sklearn.metrics import classification_report
print(classification_report(y_test,y_pred))

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/55772.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

019基于脑电图信号和CNN的癫痫发作检测2018

根据世界卫生组织的数据,癫痫是一种神经系统疾病,影响着大约5000万人。虽然脑电图(EEG)在癫痫患者的大脑活动监测和癫痫诊断中发挥着重要作用,但需要专家对所有脑电图记录进行分析,以检测癫痫活动。这种方法显然是耗时和繁琐的&am…

脑电情绪识别资源整理

每篇文章都在主页可以看到 脑电方向的资源比较少,整理了自己用过的所有资源。都已经成功运行过了,保证可以成功运行。 都是基于DEAP和SEED数据集的脑电情绪识别源码 几乎每份代码都在csdn上简单介绍过。 目前一共52份(会一直更新) 尽可能的找到了一些论文的源码(一共…

007利用癫痫脑电图数据检测癫痫发作和特征频率的深度卷积神经网络方法-2021

A Deep Convolutional Neural Network Method to Detect Seizures and Characteristic Frequencies Using Epileptic Electroencephalogram (EEG) Data Abstract 背景:脑电(EEG)结合深度学习计算方法诊断癫痫发作近年来备受关注。然而,到目前为止&…

轩辕:首个千亿级中文金融对话模型

背景 目前开源的大语言模型或多或少存在以下痛点: 缺少专门针对中文进行优化过的的大语言模型。 支持中文的开源模型的参数规模偏小,没有超过千亿。比如清华和智谱AI的ChatGLM-6B目前只开源了6B参数模型,盘古alpha也只开源了13B的模型。 支…

量化择时——SVM机器学习量化择时(第1部分—因子测算)

文章目录 机器学习在量化模型上的应用机器学习量化应用场景量化模型有效性的思考 机器学习模型在量化择时中的应用训练与预测流程训练数据特征构造 SVM模型与测算SVM训练与预测效果测算效果分析 最近ChatGPT比较火,NLP的同学们感触肯定会更深。NLP的应用为人所知并积…

微信表情包下载保存到本地,(新版微信可用)简单教程

问题:微信新版无法保存表情包(微信表情包加密),且微信网页版不能登录 方法一: 1、登录你的企业微信、添加外部微信联系人(自己的微信号) 2、微信(自己的微信号)向企业…

小程序微信聊天功能中发送emoji表情

客服聊天要能发表情,(不用输入法自带的) 1、把emoji表情存入数组中再读取出来 2、微信开发工具上是这样的: 3、手机上是这样的: 4、第2步中改变了大小,到手机上发现没有用,间距还是有用的 5、…

动图太大无法添加到微信表情怎么办?

微信是我们平时经常使用的一种聊天工具,在平时使用微信聊天的时候经常会使用一些非常有趣的GIF表情,但是有时候在自己从其他地方保存的动图却无法添加到微信表情中,提示文件太大无法添加,这时候只能降低GIF动图的体积才能继续使用…

微信添加表情提示过大怎么解决?GIF太大怎么变小?

GIF这种图片格式并不是新出现的一种图片格式,其实很多年前就已经存在了,现在各种社交媒体越来越多,自媒体发展的越来越好,使用gif动图表情包的越来越多,虽然gif动态图非常有趣,但是不得不说gif动态图的优缺…

批量保存微信收藏的表情包

需求 因为最近总是在钉钉聊天,通常使用表情包来替代文字表达自己的意思,但是发现钉钉的表情包太过于官方,就想着如何把微信收藏的表情包偷过来,一键导入进去。 方法 首先需要登录微信如何获取自己收藏的表情包?如何…

微信.gif表情包保存到本地

发现微信动态表情包保存到本地非常的不友好,于是有了表情包保存 先找到微信要保存的表情包添加表情 然后微信搜索表情保存助手 发送表情包,点击表情包链接,下载表情 欢迎点赞感谢我

android高仿微信表情输入与键盘输入详解-解决跳闪与表情切换问题

最近公司在项目上要使用到表情与键盘的切换输入,自己实现了一个,还是存在些缺陷,比如说键盘与表情切换时出现跳闪问题,这个相当困扰我,不过所幸在Github(其中一个不错的开源项目是https://github.com/dss88…

微信emoji表情数据如何添加到json中

json是一种通用的快速传递数据的方式,但是在处理微信消息中,当使用JSON在存储emoji表情数据的时候,由于微信emoji表情的格式比较特殊,例如:[emoji\uD83D\uDC35],如果按照正常的JSON数据来存储,是…

我是如何获得微信内置表情的

View Post on Blog 授人以鱼,不如授人以渔。虽然百度出来有很多下载资源,但并没有讲怎么获得的(毕竟天朝特色) 在 GitHub 上直接搜微信表情,搜出来的多是 https://res.wx.qq.com/mpres/htmledition/images/icon/emotio…

超过1M的网络动图添加到微信表情包

准备工具: 微信电脑客户端、微信手机客户端 http://www.iloveimg.com/zh_cn图片在线处理网站 步骤: 1. 找到自己喜欢的网络动图,下载 2. 查看动图大小 3. 打开网站http://www.iloveimg.com/zh_cn处理动图 4. 使用…

仿微信在对话框文字中插入Emoji表情包

场景 类似于微信聊天的一个对话框,要求可以使用EMOJI表情,对话框是一个div,通过改变contentEditable属性使得内容可以编辑. 问题 Emoji表情在页面中其实是GIF格式的IMG标签.如果直接在innerHTML中改变,会导致表情包只出现在文本最后,所以这样是不符合用户体验的,需要跟踪光标…

微信小程序在聊天中如何插入表情?

一、使用QQ地带Emoji表情代码大全 参考链接:小程序中如何使用Emoji表情 - Jo太郎 - 博客园 如何使用: index.js // index.js // 获取应用实例 const app getApp()Page({data: {emoji: ☀-☔-👷-😜,emojiArr: [01, 02, 03, 04]…

分析Android 搜狗输入法在微信和QQ中发送图片和表情

好记性不如烂笔头。生活中多做笔记,不仅可以方便自己,还可以方便他人。 背景 有没有发现,有时候表情或图片的交流更能让气氛更愉悦。斗图,成了群里的日常小事,然而,当你没有图可斗的时候就尴尬了。最近&am…

微信小程序-如何实现input框输入emoji表情?【亲测有效】

👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金等 💌公众号:猿圈奇妙屋 🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。 🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。 先给大家先来看下成品: 一、…

导出微信添加的自定义表情(动图)

打开微信电脑版,在“设置”-“通用设置”,在这里你可以看到微信文件存储的位置,就是下面这个: 复制它!复制它!,在“我的电脑”的地址栏粘贴,就能找到这个存储文件夹,里边…