Построение и исследование моделей краткосрочного прогнозирования гликемии у больных сахарным диабетом
.pdfДля приведения данных к единой шкале измерений (например, от нуля до единицы) можно воспользоваться процедурой нормировки по правилу:
|
− |
|
|
′ = |
|
|
(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