【2】基于深度神经网络的脑电睡眠分期方法研究(标签导入)
生活随笔
收集整理的這篇文章主要介紹了
【2】基于深度神经网络的脑电睡眠分期方法研究(标签导入)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Polyman和Python相結合的方法。
1、Polyman:先從pysiobank中下載到與原始數據相對應的標簽文件,用Pysiobank可以打開文件,然后導出csv文件(即excel表格),將里面的所有標簽改成0、1、2、3、4、5的分類名稱(為了好區分),將movement狀態改成一個接近的狀態,將最后一個標簽刪除。
2、在python中將csv文件轉換成txt文件(在txt文件中標簽以0、1、2、3、4、5的形式出現,一行一個數)
# coding: utf-8 r""" 生成標簽 """ import pandas as pddef main():save_path = '4041_label.txt'file_path = r"C:\Users\10133\Desktop\標簽集\SC4041_label.csv"df = pd.read_csv(file_path)values = df.valuesduration = values[:, 3]label = values[:, 4]result = []for i, d in enumerate(duration):num = d // 30current_label = label[i]item = [current_label] * numresult = result + itemresult = list(map(str, result))content = '\n'.join(result)open(save_path, 'w+').write(content)print()if __name__ == '__main__':main()3、將上個博客中導出的30s一段的信號根據標簽進行分類,首先第一步是建立訓練集和驗證集,利用代碼建成train和valid兩個文件夾,下面分設六個種類的文件夾(如果嫌麻煩,可以手動建文件夾)本文中使用的方法是將前七個人的數據分成訓練集和驗證集,將第八個人的數據直接用來測試分成六個種類。
# -*- coding:utf-8 -*- # In[1]: import os import shutil import numpy as np#先建立一個數據的文件夾 base_dir = r'C:\Users\10133\Desktop\bishe\matlab\traintest' if os.path.exists(base_dir):shutil.rmtree(base_dir) os.mkdir(base_dir) # 在該路徑下創建目錄#在總的文件夾下自動創建訓練集和驗證集兩個文件夾 train_dir = os.path.join(base_dir, 'train') # 訓練文件夾 os.mkdir(train_dir) test_dir = os.path.join(base_dir, 'valid') # 驗證文件夾 os.mkdir(test_dir)print('主目錄已經建立好了!')#在訓練集文件夾下自動建立六個類別文件夾 train_0_dir = os.path.join(train_dir, '0') os.mkdir(train_0_dir)train_1_dir = os.path.join(train_dir, '1') os.mkdir(train_1_dir)train_2_dir = os.path.join(train_dir, '2') os.mkdir(train_2_dir)train_3_dir = os.path.join(train_dir, '3') os.mkdir(train_3_dir)train_4_dir = os.path.join(train_dir, '4') os.mkdir(train_4_dir)train_5_dir = os.path.join(train_dir, '5') os.mkdir(train_f5_dir)print('類別目錄已經建立好了!')第二步就是根據標簽將圖片分類(只是分成了五類,但是還沒有分訓練集和驗證集)
# -*- coding:utf-8 -*- # In[1]: import os import shutil import numpy as nptrain_0_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\0' train_1_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\1' train_2_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\2' train_3_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\3' train_4_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\4' train_5_dir = r'C:\Users\10133\Desktop\bishe\matlab\classification\5'original_dataset_dir = r'D:\SC4032jpg'#這個例子用的是4032的例子labelpath = r'C:\Users\10133\PycharmProjects\practice\4032_label.txt'#導入4032的標簽y = np.loadtxt(fname=labelpath, delimiter='\n')print(y[0]) print(y.shape) print('finished!')for i in range(len(y)):if y[i] == 0:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_0_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)elif y[i] == 1:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_1_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)elif y[i] == 2:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_2_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)elif y[i] == 3:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_3_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)elif y[i] == 4:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_4_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)else:src = os.path.join(original_dataset_dir, f"{i + 1}.jpg")dst = os.path.join(train_5_dir, f"{i + 1}.jpg")shutil.copyfile(src, dst)總結
以上是生活随笔為你收集整理的【2】基于深度神经网络的脑电睡眠分期方法研究(标签导入)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下EEUPDATE工具的使用
- 下一篇: inc和dec指令