Библиотека работает с данными организованными в виде эксперимента содержащего отдельные испытания с данными тренировки и тестовыми наборами.
-
- Произвольное имя каталога с экспериментом
exp1
,эксперимент
- Имена каталогов с испытаниями маска:
ггггммдд_AAA_111
=>20161105_OLT_001
- Имена каталогов с тестами (вложены в каждое испытание)
ггггммдд_ччммсс
=>20161105_135703
- пример:
- exp1
- 20161105_OLT_001
- 20161105_135703
- states.pkl - метки активностей
- data.pkl - данные теста
- 20161105_140216
- 20161105_140715
- states_full.pkl - метки активностей
- data.pkl - данные тренировки
- exp_info.dat (генерируемый программой)
- 20161105_135703
- 20161129_DBS_001
- 20161129_173025
- 20161129_173919
- ...
- series_info.dat (генерируемый программой)
- 20161105_OLT_001
- exp1
- Произвольное имя каталога с экспериментом
На этом этапе происходит сканирование директории с экспериментом для верификции эксперимента для соответствия требованиям библиотеки а так же производится сбор статистики.
-
Испытание - Генерация или загрузка метаданных испытания первым шагом является создание метафалов по каждому испытанию в эксперименте, можно встроить скрипт в процесс обучения модели, можно сгенерировать уже на готовом наборе данных.
from EEG.info import info_exp root = "C:\\eeg\\01exp\\" name = "20161210_GSH_001" test = info_exp(root + name) test.resp_name = 'Иван Иванов' test.description = 'Эксперимент с обратной связью' test.labels_names = [u'шум', u'левое', u'правое', u'отдых'] test.getinfo() ============================================================== Experiment status: True ; Num tests: 13 Respondent name: Иван Иванов Description: Эксперимент с обратной связью Labels_names: [ шум, левое, правое, отдых ] Frequency: 1000 ------------------------------------------------------------------ Chanels_names: ------------------------------------------------------------------ FC5 FT7 FC3 FCz FC4 FT8 T3 C3 Cz T4 C4 TP7 CP3 CPz CP4 TP8 FC1 FC2 FC6 P4 C5 C1 C2 C6 P3 CP5 CP1 CP2 CP6 POz ------------------------------------------------------------------ List tests ------------------------------------------------------------------ 20161210_130306 20161210_130647 20161210_131416 20161210_131726 20161210_132104 20161210_132457 20161210_132836 20161210_133156 20161210_133555 20161210_133911 20161210_134231 20161210_134600 20161210_164142 ============================================================= test.save()
-
Эксперимент - Генерация метаданных эксперимента вместо того, чтобы генерировать метафайлы испытаний по отдельности, можно сгенерировать метафайл всего эсперимента, который на лету просканирует библиотеки и создаст метафайлы испытаний (пока не рализован функционал, заполнения уникальными данными для каждого эксперимента)
from EEG.info import info_exp, info_series path = "C:\\eeg\\01exp\\" test = info_series(path) test.exp_name = "Первая серия экспериментов" test.getinfo() ================================================================= Name series of experiments: Первая серия экспериментов Description: description Count experiments: 4 Successed: 3 Num test 37 Num tests among sucessed 37 Labels_names: [ шум, левое, правое, отдых ] Frequency: 1000 ----------------------------------------------------------------- Chanels_names: ------------------------------------------------------------------ FC5 FT7 FC3 FCz FC4 FT8 T3 C3 Cz T4 C4 TP7 CP3 CPz CP4 TP8 FC1 FC2 FC6 P4 C5 C1 C2 C6 P3 CP5 CP1 CP2 CP6 POz ------------------------------------------------------------------- Unique respondents ------------------------------------------------------------------- Иван Иванов ------------------------------------------------------------------ List experiments ------------------------------------------------------------------ 20161105_OLT_001 20161129_DBS_001 20161209_KPS_001 20161210_GSH_001 ==================================================================
на этом этапе производится первоначальная "механическая" предобработка данных, выравнивается продолжительность активностей, отсеиваются граничные данные сменяющие активности, генерируется standalone файл содержаший в себе все необходимые данные трейнов и тестов для использования в последующей обработке.
from EEG.info import info_exp
from EEG.preprocessing import aligner_exp
root = "C:\\eeg\\01exp\\"
name = "20161129_DBS_001"
test = aligner_exp(root + name)
test.align(250,250)
test.getinfo()
test.save(mode = 'data')
test.save()
=================================================================
Experiment status: True ; Num tests: 12
Respondent name: Иван Иванов
Description: Эксперимент с обратной связью
Labels_names: [ удалено, левое, правое, отдых ]
Frequency: 1000
Count train activities: 45
Count tests activities: [ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 ]
Time of activity: 4500
------------------------------------------------------------------
Chanels_names:
------------------------------------------------------------------
FC5 FT7 FC3 FCz FC4 FT8
T3 C3 Cz T4 C4
TP7 CP3 CPz CP4 TP8
FC1 FC2 FC6 P4 C5
C1 C2 C6 P3 CP5
CP1 CP2 CP6 POz
------------------------------------------------------------------
List tests
------------------------------------------------------------------
20161129_173025 20161129_173919 20161129_174505
20161129_175011 20161129_175517
20161129_180043 20161129_180632
20161129_181557 20161129_182114
20161129_182715 20161129_183224
20161129_183740
==================================================================
- частотная фильтрация, алгоритмический отсев артефактов