Извлечение функций классификации от физиологических сигналов

В этом примере показано, как использовать функции midcross и dtw извлекать функции из данных сигнала походки. Сигналы походки используются, чтобы изучить шаблоны обхода пациентов с нейродегенеративным заболеванием. Время между шагами, как сообщали, отличалось между здоровыми и больными индивидуумами. midcross предлагает удобный способ вычислить эти времена. Люди также изменяют свою скорость обхода в зависимости от времени. dtw обеспечивает удобный способ количественно сравнить форму сигналов походки путем деформирования, чтобы выровнять их вовремя. Этот пример использует midcross определять местоположение каждого шага в сигнале походки и dtw чтобы вычислить расстояния между походкой сигнализируют о сегментах. Эти результаты исследованы, когда потенциал показывает для классификации сигнала. В то время как этот пример характерен для сигналов походки, других физиологических сигналов, таков как электрокардиограмма (ECG) или фотоплетизмограмма (PPG), может также анализироваться с помощью этих функций.

Измерьте временные интервалы межшага

Анализируемый набор данных содержит данные о силе, собранные во время обхода для пациентов с Амиотрофическим боковым склерозом (ALS) и контрольной группой. ALS является болезнью, сделанной известной Лу Геригом, Стивеном Хокингом и 2 014 'Ice Bucket Challenge'.

Загрузите и постройте первые 30 секунд данных сигнала походки для одного пациента.

helperGaitPlot('als1m');
xlim([0 30])

Этот набор данных представляет силу, порожденную ногой на силу чувствительный резистор. Сила измеряется в милливольтах. Каждая запись является одной минутой в длине и содержит отдельные каналы для левой и правой ноги предмета. Каждый шаг в наборе данных характеризуется резким изменением в силе, когда нога влияет и отрывается от земли. Используйте midcross найти эти резкие изменения для пациента ALS.

Используйте midcross найти и построить местоположение каждого пересечения для левой ноги пациента ALS. Выбрал допуск 25%, чтобы гарантировать, что каждое пересечение обнаруживается.

Fs = 300;
gaitSignal = helperGaitImport('als1m');
midcross(gaitSignal(1,:),Fs,'tolerance',25);
xlim([0 30])
xlabel('Sample Number')
ylabel('mV')

midcross правильно идентифицирует пересечения. Теперь используйте его, чтобы вычислить времена межшага для группы из десяти пациентов. Пять пациентов являются контрольными объектами, и у пяти пациентов есть ALS. Используйте запись левой ноги в каждом пациенте и исключите первые восемь пересечений, чтобы удалить переходные процессы.

pnames = helperGaitImport();
for i = 1:10
  gaitSignal = helperGaitImport(pnames{i});
  IND2 = midcross(gaitSignal(1,:),Fs,'Tolerance',25);
  IST{i} = diff(IND2(9:2:end));   
  varIST(i) = var(IST{i});
end

Постройте времена межшага.

figure
hold on
for i = 1:5
  plot(1:length(IST{i}),IST{i},'.-r')
  plot(1:length(IST{i+5}),IST{i+5},'.-b')
end
xlabel('Stride Number')
ylabel('Time Between Strides (sec)')
legend('ALS','Control')

Отклонение времен межшага выше в целом для пациентов ALS.

Измерьте подобие обхода шаблонов

Определив количество расстояния между шагами, продолжите анализировать форму данных сигнала походки, независимых от этих изменений межшага. Сравните два сегмента сигнала с помощью dtw. Идеально, можно было бы выдержать сравнение, форма походки сигнализируют в зависимости от времени как прогрессирование болезни или обработка. Здесь, мы сравниваем два сегмента той же записи, один сегмент, взятый рано в записи (sigsInitialLeft), и второе к концу (sigsFinalLeft). Каждый сегмент содержит шесть шагов.

Загрузите сегменты данных сигнала походки.

load PNGaitSegments.mat

Пациент не идет на том же уровне в записи. dtw обеспечивает меру расстояния между сегментами путем деформирования их, чтобы выровнять их вовремя. Сравните эти два сегмента с помощью dtw.

figure
dtw(sigsInitialLeft{1},sigsFinalLeft{1});
legend('Early segment','Later segment','location','southeast')

Эти два сегмента выравниваются вовремя. Несмотря на то, что уровень шага пациента, кажется, изменяется в зависимости от времени, как видно в смещении исходных сигналов, dtw совпадает с этими двумя сегментами, позволяя выборки любого сегмента повториться. Расстояние через dtw, наряду с отклонением времен межшага, будет исследоваться как функции классификатора сигнала походки.

Создайте характеристический вектор, чтобы классифицировать сигналы

Предположим, что вы создаете классификатор, чтобы решить, здоров ли пациент на основе сигналов походки. Исследуйте отклонение времен межшага, feature1, и расстояние через dtw между начальной буквой и финалом сигнализируют о сегментах, feature2, как функции классификации.

Покажите 1, был ранее вычислен с помощью midcross.

feature1 = varIST;

Извлеките Функцию 2 для пациентов ALS и контрольной группы.

feature2 = zeros(10,1);
for i = 1:length(sigsInitialLeft)
  feature2(i) = dtw(sigsInitialLeft{i},sigsFinalLeft{i});
end

Постройте функции предметов ALS и контрольных объектов.

figure
plot(feature1(1:5),feature2(1:5),'r*',...
    feature1(6:10),feature2(6:10),'b+',...
    'MarkerSize',10,'LineWidth',1)
xlabel('Variance of Inter-Stride Times')
ylabel('Distance Between Segments')
legend('ALS','Control')

У пациентов ALS, кажется, есть большее отклонение в их времена межшага, но меньшее расстояние через dtw между сегментами. Эти функции комплимент друг друга и могут быть исследованы для использования в классификаторе, таком как Нейронная сеть или Машина опорных векторов.

Заключения

midcross и dtw обеспечьте удобный способ сравнить сигналы походки и другие физиологические данные, которые повторяются нерегулярно в зависимости от времени из-за различных уровней движения или действия. В этом примере времена шага были расположены с помощью midcross и расстояния сегмента были вычислены с помощью dtw. Они были дополнительными мерами как dtw удаленный любое изменение времени, что midcross расстояния измерились бы. Как функции, эти две метрики показали разделение между управлением и пациентами ALS для этого набора данных. midcross и dtw мог аналогично использоваться, чтобы исследовать другие физиологические сигналы, форма которых варьируется как функция действия.

Ссылки

[1] Голдбергер, A. L. Л. А. Н. Амарал, L. Стекло, Дж. М. Гаусдорф, P. Ch. Иванов, Р. Г. Марк, Р. Г. Митус, Г. Б. Муди, C.-K. Пенг и Х. Э. Стэнли. "PhysioBank, PhysioToolkit и PhysioNet: Компоненты Нового Ресурса Исследования для Комплексных Физиологических Сигналов". Циркуляция. Издание 101, Номер 23, 2000, стр e215-e200.