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

Этот пример показывает, как использовать функции 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.