基于DEAP和MABHOB的二分類腦電情緒識(shí)別(深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò))代碼解析
?論文解析見個(gè)人主頁:
論文和源碼見個(gè)人主頁:
整體結(jié)構(gòu):
1. dataset文件夾,數(shù)據(jù)集處理部分:執(zhí)行論文講述第3節(jié)中詳細(xì)說明的所有預(yù)處理步驟的腳本
? ? ? ?1.1 prepare_deap.py:準(zhǔn)備deap數(shù)據(jù)集
? ? ? ?1.2 prepare_mahnob.py:準(zhǔn)備mahnob數(shù)據(jù)集
? ? ? ? 1.3 reduce-dim.py:對(duì)輸入EEG數(shù)據(jù)進(jìn)行降維的實(shí)用函數(shù)。用于prepare deap.py和prepare mahnob.py
2. nn文件夾,數(shù)據(jù)集、模型、訓(xùn)練程序的腳本和配置
????????datasets.py:讀取數(shù)據(jù)集,PyTorch的類,用于讀取DEAP和MAHNOB中的示例。
????????models.py:構(gòu)建模型,PyTorch的DNN和CNN架構(gòu)模型,詳見論文講述第4節(jié)
????????train-utils.py:包含train程序的代碼
????????train.py:啟動(dòng)train程序
????????utils.py:函數(shù)調(diào)用,包含在其他腳本中使用的實(shí)用程序函數(shù)。
????????configs:修改參數(shù),包含模型、超參數(shù)、訓(xùn)練程序的YAML配置文件
3. statistical analysis文件夾:進(jìn)行模型測試和結(jié)果分析,執(zhí)行論文中使用的統(tǒng)計(jì)測試的腳本
????????5x2cv test.py:執(zhí)行5x2交叉驗(yàn)證配對(duì)t檢驗(yàn)(見論文第5.2.2節(jié))。
????????confidence intervals.py:計(jì)算第5節(jié)結(jié)果的置信區(qū)間。
???????kfold cross validation.py:執(zhí)行kfold的交叉驗(yàn)證。用于進(jìn)行5x2cv測試,但也可以單獨(dú)使用? mcnemar測試.py:對(duì)預(yù)訓(xùn)練的DNN和CNN模型進(jìn)行
????????mcnemar test.py:對(duì)預(yù)訓(xùn)練的DNN和CNN模型進(jìn)行McNemars測試(見論文第5.2.1節(jié))
4. pretrained models文件夾,保存好的預(yù)訓(xùn)練模型:
包含4個(gè)預(yù)訓(xùn)練模型(DEAP上的DNN、DEAP上CNN、MAHNOB上DNN、MAHNOB上CNN),其結(jié)果在第5節(jié)的第一部分。
部分代碼截圖:
1. dataset文件夾,數(shù)據(jù)集處理部分:執(zhí)行論文講述第3節(jié)中詳細(xì)說明的所有預(yù)處理步驟的腳本
? ? ? ?1.1 prepare_deap.py:準(zhǔn)備deap數(shù)據(jù)集

? ? ? ? 1.2 prepare_mahnob.py:準(zhǔn)備mahnob數(shù)據(jù)集

? ? ? ? 1.3 reduce-dim.py:對(duì)輸入EEG數(shù)據(jù)進(jìn)行降維的實(shí)用函數(shù)。用于prepare deap.py和prepare mahnob.py

2. nn文件夾,數(shù)據(jù)集、模型、訓(xùn)練程序的腳本和配置
????????datasets.py:讀取數(shù)據(jù)集,PyTorch的類,用于讀取DEAP和MAHNOB中的示例。

????????models.py:構(gòu)建模型,PyTorch的DNN和CNN架構(gòu)模型,詳見論文講述第4節(jié)

?

????????train-utils.py:包含train程序的代碼
????????train.py:啟動(dòng)train程序
????????utils.py:函數(shù)調(diào)用,包含在其他腳本中使用的實(shí)用程序函數(shù)。
????????configs:修改參數(shù),包含模型、超參數(shù)、訓(xùn)練程序的YAML配置文件
3. statistical analysis文件夾:進(jìn)行模型測試和結(jié)果分析,執(zhí)行論文中使用的統(tǒng)計(jì)測試的腳本
????????5x2cv test.py:執(zhí)行5x2交叉驗(yàn)證配對(duì)t檢驗(yàn)(見論文第5.2.2節(jié))。
????????confidence intervals.py:計(jì)算第5節(jié)結(jié)果的置信區(qū)間。
???????kfold cross validation.py:執(zhí)行kfold的交叉驗(yàn)證。用于進(jìn)行5x2cv測試,但也可以單獨(dú)使用? mcnemar測試.py:對(duì)預(yù)訓(xùn)練的DNN和CNN模型進(jìn)行
????????mcnemar test.py:對(duì)預(yù)訓(xùn)練的DNN和CNN模型進(jìn)行McNemars測試(見論文第5.2.1節(jié))
4. pretrained models文件夾,保存好的預(yù)訓(xùn)練模型:
包含4個(gè)預(yù)訓(xùn)練模型(DEAP上的DNN、DEAP上CNN、MAHNOB上DNN、MAHNOB上CNN),其結(jié)果在第5節(jié)的第一部分。