Инструментальная панель

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

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

  • Процент членов помечен

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

  • Распределение области или экземпляров точки через члены

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

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

  • Распределение области или экземпляров точки через члены и значения метки

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

Совет

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

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

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

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

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

Совет

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

Dashboard progress bar

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

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

Маркируйте Value Distribution

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

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

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

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

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

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

  • Числовой — Каждая панель в графике гистограммы представляет количество экземпляров длительности ROI или местоположения точки особого значения метки для выбранного определения метки.

Количество члена

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

  • Категориальный, логический, или строка — Каждый раздел в сетке представляет количество тех членов, которые имеют данное число регионов или точки. Чтобы настроить номер или область значений горизонтальных интервалов, установите X Bins, X Min или значения X Max в разделе Member and Region Count панели инструментов.

  • Числовой — Каждый раздел в сетке представляет количество тех членов, которые имеют данное число регионов или точки. Можно настроить номер и область значений и горизонтальных и вертикальных интервалов.

Совет

Выберите график просмотреть корректируемые настройки в панели инструментов.

  • Определите номер интервалов и пределов вдоль оси X, чтобы лучше смотреть распределения метки в выбранной гистограмме или графике количества члена. Можно также изменить количество интервалов и пределов вдоль оси Y в графике количества члена.

  • Постройте выбросы на диаграмме путем установки флажка Show Outliers в разделе Time Distribution.

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

Пример: маркируйте ECG Signals и Track Progress

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

Загрузите и подготовьте данные

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

folder = QTdownload;

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

  • P волна

  • Комплекс QRS

  • T волна

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

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

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

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

Маркируйте Regions of Interest

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

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

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

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

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

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

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

Выберите Dashboard снова. Индикатор выполнения теперь показывает, что 25% членов помечены. Проверьте, что распределение каждой категории (P, QRS или T) как ожидалось. Label Distribution круговая диаграмма показывает, что каждая категория составляет приблизительно одну треть всех экземпляров метки. Выберите Time Distribution график гистограммы из галереи Plots, чтобы просмотреть среднюю длительность P и волн T и комплексов QRS, включая выбросы. Заметьте, что волны T имеют более долгую длительность, чем волны P и комплексы QRS.

Отобразите Member Count стройте диаграмму, чтобы лучше визуализировать распределение меток через члены и количество экземпляров. Большинство членов в наборе данных имеет между 0–500 экземплярами P, QRS и областей T.

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

Функция labelECGregions:

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

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] Голдбергер, Ари Л., Луис А. Н. Амараль, Леон Гласс, Джеффри М. Гаусдорф, Plamen Ch. Иванов, Роджер Г. Марк, Джозеф Э. Митус, Джордж Б. Муди, Чанг-Канг Пенг и Х. Юджин Стэнли. "PhysioBank, PhysioToolkit и PhysioNet: Компоненты Нового Ресурса Исследования для Комплексных Физиологических Сигналов". Циркуляция. Издание 101, № 23, 2000, стр e215–e220. [Циркуляция Электронные Страницы; http://circ.ahajournals.org/content/101/23/e215.full].

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

Смотрите также

Приложения

Объекты

Функции

Похожие темы