Добавил:
Преподаватель Колледжа информационных технологий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Построение и исследование моделей краткосрочного прогнозирования гликемии у больных сахарным диабетом

.pdf
Скачиваний:
5
Добавлен:
08.05.2022
Размер:
4.69 Mб
Скачать

Для приведения данных к единой шкале измерений (например, от нуля до единицы) можно воспользоваться процедурой нормировки по правилу:

 

 

=

 

 

(21)

 

 

 

 

 

 

 

 

где xi i-е значение признака ( i 1, n , где n – количество значений); xmin – минимальное значение признака;

xmax – максимальное значение признака;

– нормированное значение.

Недостаткам минимаксной нормализации является наличие аномальных значений данных, которые «растягивают» диапазон, что приводит к тому, что нормализованные значения опять же концентрируются в некотором узком диа-

пазоне вблизи нуля. Чтобы избежать этого, следует определять диапазон не с по-

мощью максимальных и минимальных значений, а с помощью «типичных» -

среднего ̅ и стандартного отклонения :

 

 

̅

 

 

 

=

 

 

(22)

 

 

 

 

 

 

 

 

 

 

Величины, полученные по данной формуле, в статистике называют Z-

оценками. Их абсолютное значение представляет собой оценку (в единицах стан-

дартного отклонения) расстояния между x и его средним значением ̅ в общей совокупности. Если z меньше нуля, то x ниже средней, а если z больше нуля, то x выше средней.

Необходимость нормализации выборок данных обусловлена природой ис-

пользуемых алгоритмов и моделей получения знаний. Исходные значения при-

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

ции действующего вещества, измеряемой вдесятых или сотых долях процентов,

и показатели давления в сотнях тысяч атмосфер. Или, например, в одном вход-

ном векторе присутствует информация о возрасте и доходе клиента.

51

Будучи разными по физическому смыслу, данные сильно различаются между собой по абсолютным величинам. Работа аналитических моделей машин-

ного обучения с такими показателями окажется некорректной: нарушение ба-

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

дели, ухудшить результаты обучения и замедлить процесс моделирования. В

частности, параметрические методы машинного обучения обычно требуют сим-

метричного и унимодального распределения данных.

После нормализации все числовые значения входных признаков будут приведены к одинаковой области их изменения – некоторому узкому диапазону.

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

График временного ряда после Z-нормализации представлен на рисунок

2.10.

Рисунок 2.10 – График временного ряда После осуществления нормализации выполняется трансформация данных.

52

Трансформация – это процесс оптимизации представления данных и орга-

низации с точки зрения определенного метода анализа [21]. Трансформация за-

висит от задач, алгоритмов и целей анализа. То есть для одной задачи могут по-

требоваться одни виды трансформации, а для другой – другие.

В качестве алгоритма трансформации был использован метод скользящего окна, позволяющий сформировать из членов временного ряда набор данных, ко-

торый может служить обучающим множеством для построения модели прогно-

зирования.

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

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

Полученные после этапа предобработки данные были трансформированы в краткосрочные временные ряды методом скользящего окна для учета прошлых значений гликемии. В качестве глубины прогноза было выбрано три временных шагов (9 минут), горизонт прогноза представляет собой один временный шаг, то есть прогнозирование производилось на 3 минут вперед. За счет сдвига времен-

ного ряда осуществлялась экстраполяция прогноза на произвольное количество шагов (минут прогноза).

Фрагмент трансформированных данных представлен на рисунке 2.11.

Рисунок 2.11 – Фрагмент трансформированных данных

2.5. Формирование обучающей выборки для построения моделей

Из исходных данных необходимо сформировать как минимум две выборки

– обучающую и проверочную. Обучающая выборка нужна для алгоритма

53

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

Используемое для анализа подмножество данных должно быть репрезен-

тативным, то есть в достаточной мере отражать свойства всего множества дан-

ных и, соответственно, связанного с ним процесса или объекта. При выборе под-

множества данных для анализа следует использовать следующий принцип: ана-

лизируемое подмножество должно быть выбрано таким образом, чтобы резуль-

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

В данной выпускной квалификационной работе будет использоваться ме-

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

буемый объем.

Рассмотрим процесс разделения исходной выборки в аналитической плат-

форме Deductor Studio. Настройки параметров сэмплинга данных представлена на рисунке 2.12.

Рисунок 2.12 – Настройка параметров сэмплинга данных

54

В окне указывается количество строк (в процентном соотношение), полу-

чаемое из исходной таблицы. Для обучающей выборки выбиралось 80 процентов элементов из начала всей совокупности данных.

На рисунке 2.13. представлен фрагмент данных с результатами последова-

тельного сэмплинга.

Рисунок 2.13 – Фрагмент данных после сэмплинга Рассмотрим процесс разделения исходной выборки в среде разработки

MATLAB. После запуска среды разработки MATLAB в панели инструментов выбираем кнопку Import Data и выгружаем файл, хранящий электронные таб-

лицы с базовыми данными. Содержимое загруженного файла в окне импорта представлено на рисунке 2.14.

55

Рисунок 2.14 – Фрагмент загруженных данных из мастера импорта в MATLAB

Открываем xls файл и выделяем обучающие выборки и импортируем их

(Import Selection) в виде числовой матрицы размерностью 10 × 7737 (количе-

ство строк – число входов/выходов, количество столбцов – размерность исход-

ной выборки). В качестве выводимого типа (Output Type) выбираем числовую матрицу (Numeric Matrix) для согласованности типов при построении нейросете-

вых моделей.

После загрузки матрицы выполняется ее транспонирование, используя ко-

манды языка программирования MATLAB. Для трансформирования матрицы

DATA и сохранения результата операции транспонирования в новую матрицу new_data, используемую для дальнейшего сэмплинга, необходимо выполнить следующую команду:

new_data = DATA.'

56

Транспонированная матрица разделяется на две части: на обучающую и тестовую выборку. Для обучающей выборки выбиралось 80 процентов элемен-

тов из начала всей совокупности данных. Остальные 20 процентов элементов по-

падается в тестовую выборку. Разделение выборки выполняется с помощью сле-

дующих команд:

for i = 1 : (0.8 * (numel(DATA) / 10)) DataTrain(:, i) = new_data(:, i)

end

for j = 1 : (numel(DATA) / 10) - int64 (0.8 * (numel(DATA) / 10)) DataTest(:, j) = new_data(:, j + int64(0.8 * (numel(DATA) / 10))) end

Здесь DataTrain – это матрица размерностью 10 × 6189, представляющая обучающую выборку, а DataTest – это матрица размерностью 10 × 1547, пред-

ставляющая тестовую выборку данных.

Матрицу DataTrain разделяется на две части: на входные и выходные дан-

ные. Входные данные будут использоваться как входы нейронной сети, а выход-

ные данные – как целевые значения. Разделение матрицы выполняется с помо-

щью следующих команд:

for k = 1 : 9 DataTrainInput(k, :) = DataTrain(k, :)

end DataTrainOutput(1, :) = DataTrain(k + 1, :)

Здесь DataTrainInput – это матрица входных данных, в которую включа-

ются первые девять строк матрицы DataTrain, а DataTrainOutput – это матрица-

строка выходных данных, в которую включается последняя десятая строка мат-

рицы DataTrain.

Созданные после ручного последовательного сэмплинга матрицы будут доступны в рабочем пространстве (Workspace) среды разработки MATLAB, как это представлено на рисунке 2.15.

57

Рисунок 2.15 – Данные для обучения модели

2.6. Формирование тестовой выборки данных

Тестирование моделей является неотъемлемой частью оценки адекватно-

стей моделей. Данный этап позволяет отобрать наиболее эффективные среди по-

строенных моделей. Процесс построения модели не ограничивается ее обуче-

нием. Прежде чем использовать модель на практике, необходимо оценить ее эф-

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

ных.

В данной работе будет использоваться метод последовательного сем-

плинга для формирования тестового набора данных. При его реализации вы-

борка производится последовательным образом из всей совокупности, пока не будет достигнут требуемый объем.

Для тестирования модели линейной регрессии используем инструмента-

рий, предоставляемый аналитической средой Deductor.

Настройка параметров сэмплинга данных представлена на рисунке 2.16. В

окне указывается количество строк (в процентном соотношение), получаемое из исходной таблицы. Для обучающей выборки выбиралось 20 процентов элемен-

тов из начала всей совокупности данных.

58

Рисунок 2.16 – Окно настройки параметров сэмплинга На рисунке 2.17 представлено распределение используемых строк исход-

ного набора данных в тестовой выборке по результатам сэмплинга.

Рисунок 2.17 – Разделение данных Рассмотрим процесс разделения исходной выборки в среде разработки

MATLAB. После запуска среды разработки MATLAB в панели инструментов

59

выбираем кнопку Import Data и выгружаем файл, хранящий электронные таб-

лицы с базовыми данными. Содержимое загруженного файла в окне импорта представлено на рисунке 2.18.

Рисунок 2.18 – Фрагмент загруженных данных из мастера импорта в MATLAB

Открываем xls файл и выделяем обучающие выборки и импортируем их

(Import Selection) в виде числовой матрицы размерностью 10 × 7737 (количе-

ство строк – число входов/выходов, количество столбцов – размерность исход-

ной выборки). В качестве выводимого типа (Output Type) выбираем числовую матрицу (Numeric Matrix) для согласованности типов при построении нейросете-

вых моделей.

После загрузки матрицы выполняется ее транспонирование, используя ко-

манды языка программирования MATLAB. Для трансформирования матрицы

DATA и сохранения результата операции транспонирования в новую матрицу new_data, используемую для дальнейшего сэмплинга, необходимо выполнить

следующую команду:

60