Приборная панель

В Signal Labeler можно контролировать прогресс маркировки и просматривать статистику о своих метках с помощью Dashboard. Можно отобразить различные графики, чтобы быстро определить, сколько представителей помечены, проанализировать распределения каждой метки и подтвердить, что данные помечены правильно.

В Selected Definition разделе панели инструментов выберите одно или несколько определений меток для отображения из Definition Selection раскрывающийся список. Появится отдельная вкладка для каждого определения метки, содержащая вкладки для каждого типа графика. Графики в Dashboard обеспечивают:

  • Процент маркированных представителей

  • Распределение значений меток

  • Распределение образцов областей или точек между представителями

  • Распределение значений длительности метки видимой области (ROI)

  • Распределение местоположений меток точек во времени

По умолчанию в Dashboard отображается процент представителей и распределение значений меток для выбранного определения метки. Можно выбрать дополнительные графики из коллекции Plots на основе типа выбранного определения метки (атрибут, информация только для чтения или метка точки).

Совет

  • Чтобы закрыть график, щелкните значок X на его вкладке.

  • Чтобы закрыть все графики для определения метки, щелкните правой кнопкой мыши имя определения метки на его вкладке и выберите Close.

  • Чтобы изменить положение графиков, показанных для определения метки, щелкните правой кнопкой мыши на любом графике или в области вкладки определения метки и выберите Sub-Tile для изменения размещения графиков на Single, Left/Right, или Top/Bottom.

Просмотр прогресса маркировки

Чтобы просмотреть прогресс маркировки, щелкните Dashboard на панели инструментов. По умолчанию приложение отображает процент представителей в наборе данных, которые имеют по крайней мере одну метку для выбранного определения метки.

Совет

Вы можете задать количество информация только для чтения или меток точек для подсчета для представителя на панели прогресса. Щелкните на графике и введите новое Threshold значение на панели инструментов.

Dashboard progress bar

Смотрите распределения меток

Чтобы оценить качество и точность меток в наборе данных, выберите график распределения из раскрывающегося меню в Plots разделе панели инструментов.

Распределение значений меток

Можно просматривать различные распределения значений меток для определений атрибутов, информация только для чтения или меток точек.

  • Категориальный, логический или строковый - каждый срез круговой диаграммы представляет количество образцов определенного значения метки для выбранного определения метки.

  • Число - Каждая строка на графике гистограммы представляет количество образцов определенного значения метки для выбранного определения метки.

Распределение времени

Можно просматривать различные распределения времени для определений информация только для чтения или меток точек.

  • Категориальный, логический или строка - каждый центральный знак в прямоугольном графике представляет медианную длительность информация только для чтения или местоположение точки определенного значения метки для выбранного определения метки. Нижний и верхние края коробки обозначают 25-й и 75-й процентили соответственно.

  • Числовое - каждая строка на графике гистограммы представляет количество образцов длительности информация только для чтения или местоположение точки определенного значения метки для выбранного определения метки.

Совет

Установите количество интервалов и пределов по осям X, чтобы лучше проверить распределения меток на выбранном графике гистограммы. Щелкните на графике и измените настройки в Label Distribution разделе панели инструментов.

Для получения дополнительной информации о связанных диаграммах распределения смотрите boxplot (Statistics and Machine Learning Toolbox), histogram, или pie.

Пример: Маркируйте сигналы ЭКГ и отслеживайте прогресс

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

Загрузка и подготовка данных

Используйте QTdownload функция для загрузки сигналов электрокардиограммы (ЭКГ) из общедоступной базы данных QT [1] [2] в новую временную директорию folder. Код для этой функции находится в конце примера.

folder = QTdownload;

Каждый файл содержит сигнал ЭКГ ecgSignal, таблица меток областей signalRegionLabels, и переменная частоты дискретизации Fs. Все сигналы имеют частоту дискретизации 250 Гц. Метки области соответствуют трем морфологиям пульса:

  • Р-волна

  • Комплекс QRS

  • Волна T

Создайте сигнальный datastore, который указывает на folder. Задайте имя переменной сигнала ecgSignal и переменную частоты дискретизации Fs.

sds = signalDatastore(folder,'SignalVariableNames','ecgSignal','SampleRateVariableName','Fs');

Создайте подмножество datastore, содержащего первые двадцать файлов. Используйте это подмножество в качестве источника для labeledSignalSet объект.

subsds = subset(sds,1:20);
lss = labeledSignalSet(subsds);

Маркируйте необходимые области

Откройте приложение Signal Labeler и импортируйте маркированный набор сигналов из Рабочей области. Постройте график первого сигнала в наборе данных. На вкладке Display выберите панораму и масштабирование до меньшей области сигнала для лучшей визуализации.

На вкладке Labeler задайте категориальную интересующую область (ROI) метку с категориями P, QRS и T. Назовите имя метки BeatMorphologies.

Создайте пользовательскую функцию маркировки labelECGregions чтобы найти и пометить трёх различных необходимых областей. Код для пользовательской функции появится позже в примере. Можно сохранить функцию в текущей папке, по пути MATLAB или добавить ее в приложение, выбрав Add Custom Function в галерее Automate Value. Для получения дополнительной информации см. раздел «Пользовательские функции маркировки».

Выберите BeatMorphologies в браузере Определения и выберите labelECGregions функция из галереи Automate Value. Выберите Auto-Label а затем Auto-Label and Inspect Plotted. Нажмите Запуск. На вкладке Display увеличьте изображение области маркированного сигнала и используйте панораму для навигации по времени. Если маркировка удовлетворительна, щелкните Сохранить метки (Save Labels), чтобы принять метки и закрыть вкладку Автометка (Autolabel). Метки и их значения местоположения можно увидеть в браузере маркированного набора сигналов.

Визуализация прогресса и статистики маркировки

Выберите панель инструментов на панели инструментов вкладки Labeler. Индикатор прогресса показывает, что 5% представителей помечены по крайней мере одной меткой информация только для чтения. Это соответствует 1/20 представителям в наборе данных. Круговая диаграмма распределения меток показывает количество образцов каждой категории для выбранного определения метки.

Закройте инструментальную панель и продолжите маркировку. Выберите Auto-Label а затем Auto-Label All Signals чтобы пометить следующие четыре сигнала в списке. Установите флажок рядом с именами сигналов, которые вы хотите пометить, и нажмите кнопку ОК.

Еще раз выберите панель мониторинга. Индикатор прогресса теперь показывает, что 25% представителей помечены. Проверьте распределение каждой категории (P, QRS или T) как ожидалось. The Label Distribution круговая диаграмма показывает, что каждая категория составляет около трети всех образцов меток. Выберите Time Distribution гистограмма из галереи Графики, чтобы просмотреть среднюю длительность волн P и T и комплексов QRS. Волны T имеют большие длительности, чем P-волны и комплексы QRS.

Щелкните на столбиковую диаграмму прогресса и настройте Threshold на панели инструментов для подсчета только представителей с по крайней мере 5000 метки. Теперь в подсчет включены только три из пяти маркированных представителей. Измените порог подсчета, чтобы лучше различить маркированные и нелетящие представители на основе ваших требований к маркировке.

labelECGregions Функция:

The labelECGregions функция использует предварительно обученную нейронную сеть для глубокого обучения, чтобы идентифицировать морфологии P, QRS и T сердцебиения в сигналах ЭКГ.

function [labelVals,labelLocs] = labelECGregions(x,t,parentLabelVal,parentLabelLoc,varargin)

labelVals = cell(2,1);
labelLocs = cell(2,1);

if nargin<5
    Fs = 250;
else
    Fs = varargin{1};
end

% Download the pretrained networks
netURL = 'https://ssd.mathworks.com/supportfiles/SPT/data/QTDatabaseECGSegmentationNetworks.zip'; %#ok<*UNRCH>
modelsFolder = fullfile(tempdir,'QTDatabaseECGSegmentationNetworks');
modelsFile = fullfile(modelsFolder,'trainedNetworks.mat');
zipFile = fullfile(tempdir,'QTDatabaseECGSegmentationNetworks.zip');
    if ~exist(modelsFolder,'dir')
        websave(zipFile,netURL);
        unzip(zipFile,fullfile(tempdir,'QTDatabaseECGSegmentationNetworks'));
    end
load(modelsFile)
    
    for kj = 1:size(x,2)
    
        sig = x(:,kj)';
    
        predTest = classify(rawNet,sig,'MiniBatchSize',50);
        
        msk = signalMask(predTest);
        msk.SpecifySelectedCategories = true;
        msk.SelectedCategories = find(msk.Categories ~= "n/a");
        
        labels = roimask(msk);
        labelVals{kj} = labels.Value;
        labelLocs{kj} = labels.ROILimits/Fs;
    end

labelVals = vertcat(labelVals{:});
labelLocs = cell2mat(labelLocs);

end

QTdownload Функция:

Можно скачать файлы данных из https://www.mathworks.com/supportfiles/SPT/data/QTDatabaseECGData.zip или использовать unzip функция для создания QTDatabaseECGData папка во временной директории с 210 MAT-файлами в ней.

function folder = QTdownload

dataURL = 'https://www.mathworks.com/supportfiles/SPT/data/QTDatabaseECGData1.zip';
datasetFolder = fullfile(tempdir,'QTDataset');
zipFile = fullfile(tempdir,'QTDatabaseECGData.zip');
if ~exist(datasetFolder,'dir')
     websave(zipFile,dataURL);
     unzip(zipFile,tempdir);
end
folder = datasetFolder;

end

Ссылки

[1] Голдбергер, Ари Л., Луис А. Н. Амарал, Леон Гласс, Джеффри М. Хаусдорф, Пламен Ч. Иванов, Роджер Г. Марк, Джозеф Е. Миетус, Джордж Б. Муди, Чунг-Канг Пенг PhysioBank, PhysioToolkit и PhysioNet: компоненты нового исследовательского ресурса комплексных физиологических сигналов. Циркуляция. Том 101, № 23, 2000, стр. e215-e220. [Тиражные электронные страницы; http://circ.ahajournals.org/content/101/23/e215.full].

[2] Лагуна, Пабло, Роджер Г. Марк, Ари Л. Голдбергер и Джордж Б. Муди. «База данных для оценки алгоритмов измерения интервалов QT и других сигналов в ЭКГ». Компьютеры в кардиологии. Vol.24, 1997, стр 673–676.

См. также

Приложения

Объекты

Функции

Похожие темы