Разработка программы обработки данных в хирургии
Использование компьютерных технологий для разработки средств сбора медицинской информации. Введение в узорные структуры. Выявление признаков, характеризующих отсутствие осложнений после проведения операции дренирования. Описание интерфейса программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.11.2017 |
Размер файла | 1022,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Оглавление
Введение
Глава 1. Применение функций к медицинским данным
1.1 Статистические функции
1.2 Анализ формальных понятий
1.3 Узорные структуры
1.3.1 Введение в узорные структуры
1.3.2 Интервалы в качестве узоров
1.3.3 Интервальные векторы в качестве узоров
1.4 Методы классификации в анализе формальных понятий
1.4.1 Постановка задачи классификации
1.4.2 Алгоритмы классификации
Выводы по 1 главе
Глава 2. Построение классификатора
2.1 Постановка задачи
2.2 Модель данных
2.3 Предобработка данных
2.4 Получение положительных гипотез
Выводы по 2 главе
Глава 3. Исследовательская часть
3.1 Построение полной решетки
3.2 Построение неполной решетки
Выводы по 3 главе
Глава 4. Разработка программы
4.1 Инструменты, используемые при разработке
4.2 Серверная часть
4.3 База данных
4.4 Интерфейс программы
Выводы по 4 главе
Заключение
Список литературы
Введение
Исторически деятельность врачей порождала большой объем данных, увеличивающийся из года в год. На сегодняшний день медицина остается одной из быстро развивающейся областей науки, в которой уже сейчас объем данных настолько велик, что анализ этих данных вручную перестает быть возможным. Каждое медицинское учреждение ежедневно обслуживает большое количество пациентов, поддерживая данные об их состоянии здоровья. При повышении качества медицинских услуг, объем данных становится все больше, что обусловлено растущим количеством анализов и обследований пациентов.
Как и в любой другой области, возросший объем данных порождает проблему его анализа. Если раньше было возможно работать с этими данными без использования информационных технологий, так как сами исследования были менее сконцентрированы на деталях и ставили цель выявить наиболее общие тенденции, то на сегодняшний день ситуация в значительной степени изменилась - все больше исследователей работают с проблемами, для разрешения которых необходим как массивный объем данных, так и их детальное изучение.
Для того чтобы найти решение для этих задач, необходимо несколько ключевых инструментов. Во-первых, это хранилища данных, которые позволяют быстрым и удобным для медицинского персонала способом собирать данные пациентов для их дальнейшей обработки. Во-вторых, это инструменты, необходимые научным сотрудникам для анализа собранных данных. В-третьих, возможно использование компьютерных программ для прогнозирования различных ситуаций в процессе лечения больных пациентов. Все эти инструменты могут в значительной степени улучшить качество предоставляемых медицинскими учреждениями услуг.
На сегодняшний день в повседневную деятельность многих медицинских учреждениях в развитых странах интегрированы различные медицинские системы. Примером таких программ могут послужить eClinicalWorks и McKesson, разработанные с целью сбора медицинской информации и ее анализа. Такое взаимодействие оказывает крайне положительных эффект на работу медицинских центров, использующих данные системы.
Такой ситуации не наблюдается в России, где большинство медицинских учреждений не оснащены подобным типом программ. Это имеет ряд негативных последствий, включающих в себя медленный темп развития медицины в России и относительно низкое качество обслуживание пациентов.
В рамках данной работы была поставлена цель - разработка программы для сбора, анализа и обработки медицинских данных и оповещения хирургов в случае возможных осложнений после дренирования в области печеночной хирургии. Для достижения поставленной цели, были выдвинуты следующие задачи:
- Собрать данные, на основе которых должен быть построен классификатор для выявления возможного возникновения послеоперационных осложнений;
- Изучить различные методы классификации, основанные на машинном обучении;
- Выбрать наиболее подходящий метод классификации на основе собранных данных;
- Разработать классификатор, основанный на решетках замкнутых описаний, и сравнить его с другими подходами.
- Выявить основные статистические функции, используемые врачами для анализа медицинских данных;
- Реализовать статистический модуль, реализующий выявленные функции;
- Разработать программу для сбора, анализа и обработки медицинских данных;
- Разработать техническую документацию.
Как описано выше, в данной программе реализуется классификатор, позволяющий определить возникновение осложнения после дренирования. Данный классификатор является результатом исследования зависимости возникновения осложнений от конкретного набора параметров пациента.
Структура данной работы следующая: в первой главе описана основная теория анализа формальных понятий, приведены различные методы классификации данной области, а также основные статистические функции, используемые в данной работе; вторая глава состоит из описания модели данных, на которой обучается классификатор, методов обработки данных, а также описания самого классификатора. Третья глава содержит описание исследовательской части, ход выполнения экспериментов, а также основные результаты. Четвертая глава посвящена описанию деталей реализации работы, основным компонентам системы, а также перечню технологий, используемых при разработке.
медицинский компьютерный узорный интерфейс программа
Глава 1. Применение функций к медицинским данным
В данной главе будет рассмотрены различные статистические функции, применяемые врачами при анализе медицинских данных. Также, приводится описание существующих методов классификации данных анализа формальных понятий. Конец главы посвящен основным определениям в области анализа формальных понятий.
1.1 Статистические функции
Для качественного анализа врачам необходим достаточно большой набор статистических функций. В основном, в ходе анализа используются следующие функции:
- Описательная статистика;
- Непараметрическая статистика;
- Анализ выживаемости;
- Дисперсионный анализ.
Описательная статистика используется для получения общей картины определенной выборки. При описании признаков, врач может найти такие значения, как общее количество, среднее значение, стандартную ошибку, стандартное отклонение, математическое ожидание, минимум, максимум, медиану и моду[7]. Часто для анализа медицинской информации используются непараметрические методы статистики, так как анализируемая выборка может быть небольшой, или же нельзя сказать с уверенностью, что распределение будет нормальным.
Одним из часто используемых непараметрических критериев, применимый при выявлении корреляции между двумя выборками, является коэффициент корреляции Спирмена:
где R1 - ранг наблюдения xi в ряду x,
R2- ранг наблюдения yi в ряду y, а x и y - выборки,
При значении p < 0.3 связь между выборками мала; при попадании значения p в интервал [0.3, 0.7] - связь между выборками средняя. Показатель p выше 0.7 говорит о высокой корреляции между выборками.
Для оценки различий между двумя выборками по признаку, измеряемому в количественной или порядковой шкале, врачи часто используют такой непараметрический тест, как U-критерий Манна-Уитни. Для корректной работы данного теста выборка может быть, как маленького размера (n1, n2 ? 3), так и достаточно большого (n1, n2 ? 60).
Для получения U-критерия Манна -- Уитни, необходимо выполнить следующие шаги:
1. Составить ранжированный ряд объединенной выборки, расставив их элементы по возрастанию. Ранжировать данный ряд. При этом количество рангов получится равным:
где -- количество элементов в первой выборке, а -- количество элементов во второй выборке.
2. Разбить ранжированный ряд на две выборки. Рассчитать суммы рангов для первой и второй выборок и определить большую из двух ранговых сумм (), соответствующую выборке с элементами.
3. Значение U-критерия Манна -- Уитни необходимо определить по формуле:
4. Если полученный U-критерий меньше или равен критическому значению, взятому из таблицы для уровня значимости 95%, то принимается наличие различия между выборками - уровень признака во второй выборке ниже уровня признака в первой выборке. В противном случае, принимается гипотеза об отсутствии различия между выборками.
Помимо двух вышесказанных непараметрических тестов, врачи, при анализе двух выборок, состоящих из бинарных признаков, используют таблицу частот 2х2. Таблица позволяет получить ч-квадрат Пирсона, скорректированный ч-квадрат, ц-квадрат и ч-квадрат Макнемера.
Одним из важных анализов, применяемых врачами для обработки данных является анализ выживаемости. Часто для расчетов используется оценка Каплана-Мейера, имеющая важное преимущество над другими методами анализа выживаемости - она учитывает, что больные могут выбывать в ходе проведения эксперимента. Основная идея расчета оценки представлена ниже:
Пусть выбраны моменты времени . Для каждого необходимо рассчитать вероятность пережить этот момент. Оценка функции выживания имеет вид:
,
где - объекты, дожившие до момента времени , исключая выбывших,
- объекты, для которых произошёл исход в момент времени .
Для проведения дисперсионного анализа для нескольких выборок, часто используется критерий Краскела-Уоллиса.
В основе этого метода статистики лежит сравнение медиан выборок, подаваемых в тест для определения различий. Алгоритм Краскела-Уоллиса описан ниже:
Заданы выборок:
.
Объединённая выборка будет иметь вид:
Нулевая гипотеза
,
Альтернативная гипотеза:
.
Упорядочим все элементов выборок по возрастанию и обозначим ранг -го элемента -й выборки в полученном вариационном ряду.
Статистика критерия Краскела -- Уоллиса для проверки гипотезы о наличии сдвига в параметрах имеет вид:
Где: ;
Гипотеза сдвига не принимается на уровне значимости , если , где -- критическое значение, при и вычисляемое по таблицам.
При больших значениях применимы различные аппроксимации.
1.2 Анализ формальных понятий
Определения анализа формальных понятий, описанные в этой главе, взяты из источника [1].
Пусть - множество объектов, - множество признаков, - бинарное отношение между и , такое что (подмножество их декартового произведения). Тогда тройка называется формальным контекстом. Элементы множества называются объектами, а элементы множества - признаками формального контекста Пара (или ) может быть описана, как пара объектов и , находящихся в бинарном отношении . Это можно интерпретировать как “объект имеет признак ”. Оператор , определяемые ниже, задают соответствие Галуа между и :
(1.1) |
||
(1.2) |
Оператор (1.1) для множества объектов возвращает максимальное подмножество признаков, которые присущи каждому объекту из множества . Оператор (1.2) аналогичным образом возвращает для множества признаков максимальное подмножество объектов, которые обладают всеми признаками из .
Определим термин формального понятия. Пара , где и , называется формальным понятием, если она удовлетворяет условиям: и . В таком случае множество объектов - объем формального понятия , а множество признаков - содержанием формального понятия .
Формальные понятия обычно частично упорядочены:
.
Для данного частичного порядка, множество всех частично упорядоченных формальных понятий обозначается как ? и называется решеткой понятий формального контекста .
1.3 Узорные структуры
Все термины, описанные в этой главе, взяты из источника [2].
1.3.1 Введение в узорные структуры
Пусть - некоторое множество объектов, - множество всех узоров (patterns).
Пусть - операция сходства (similarity operator). Данная операция позволяет работать с объектами, признаки которых имеют не бинарные, как в классическом анализе формальных понятий, а сложные описания, такие как, например, интервал или граф.
Тогда полурешетка пересечений описаний объектов. Отображение сопоставляет объекту описание .
Тройка называется узорной структурой. Два оператора , определяемые в пунктах 1.3 и 1.4 задают соответствие Галуа между и :
(1.3) |
||
(1.4) |
Оператор (1.3) называется первым оператором Галуа (derivation operator). Он определяет для множества объектов общее максимальное описание (узор) всех объектов из . Оператор (1.4) в свою очередь называется вторым оператором Галуа. Данный оператор возвращает множество всех объектов для описания , которые разделяют это описание .
Пара , где и , называется узорным понятием узорной структуры , если она удовлетворяет двум условиям: и . В этом случае множество объектов - объем узорного понятия (A, d), а описание - содержание узорного понятия .
Узорные понятия также могут быть частично упорядочены . Множество всех частично упорядоченных узорных понятий образует решетку узорных понятий узорной структуры .
1.3.2 Интервалы в качестве узоров
Реализация операции сходства между двумя интервалами удовлетворяет условию, что заданные два интервала лежат в некотором новом интервале, который содержит исходные. Если даны два интервала и такие, что , и , тогда мы определим операцию сходства двух интервалов как:
(1.5) |
Из чего следует, что:
(1.6) |
Также отметим, что действительное число может быть представлено в виде интервала
1.3.3 Интервальные векторы в качестве узоров
Пусть p-размерные векторы интервалов являются интервальными векторами.
Определим операцию сходства для интервальных векторов одинаковой размерности и, как пересечение соответствующих координат интервальных векторов, то есть:
(1.7) |
Помимо этого, интервальные вектора также можно частично упорядочить:
(1.8) |
1.4 Методы классификации в анализе формальных понятий
1.4.1 Постановка задачи классификации
Задача классификации будет рассмотрена в следующей постановке: пусть задано некоторое непустое множество Х, разделенное на попарно непересекающиеся подмножества . Назовем эти множества классами. Только для подмножества объектов известна принадлежность к классам; данное подмножество является обучающей выборкой.
Каждый элемент может быть описан с помощью определенного набора признаков . Исходное признаковое пространство F - объединение всех признаков всех объектов.
Задача заключается в построении алгоритма классификации , основываясь на имеющейся информации о разделении множества объектов на классы. В итоге классификатор должен для каждого нового объекта определить метку класса, к которому данный объект принадлежит, либо указать некоторое значение, определенное для случая, когда классификатор не может определить метку класса.
1.4.2 Алгоритмы классификации
Многочисленные методы классификации могут быть найдены в анализе формальных понятий. Алгоритмы могут работать с данными, имеющими небинарные признаки, одним из двух перечисленных ниже способов:
· Проведение шкалирования данных для перехода к бинарным данным;
· Использование модификаций алгоритмов для работы с небинарными признаками.
Для того, чтобы работать напрямую с небинарными признаками, необходимо использовать узорные структуры, описанные в главе 1.3.
Ниже описаны основные типы алгоритмов классификации.
1. Алгоритмы, использующие всю решётку понятий.
Классификатор, построенный на входных данных, использует всю решетку понятий. Главный недостаток семейства данных алгоритмов - большая сложность построения всей решётки.
2. Алгоритмы, основанные на использовании гипотез.
Из обучающей выборки формируется три контекста - положительный, отрицательный, недоопределенный. Классификация основывается на некоторых формальных содержаниях понятий из положительного и отрицательного контекстов, называемые гипотезами.
3. Алгоритмы, основанные на использовании подмножеств решётки понятий.
Алгоритмы данного семейства используют только некоторое подмножество решетки понятий. Это способствует снижению сложности данных алгоритмов.
4. Алгоритмы, основанные на использовании покрытия контекста.
Покрытие контекста -- это покрытие решётки понятий, в которой понятия локально минимизируют некоторый функционал (стабильность, информационную энтропию). На основе покрытий выводятся логические правила. В основе алгоритмов покрытия контекста лежат эвристические методы, позволяющие снижать сложность обучения.
Опишем алгоритм классификации, основанный на построении гипотез.
Данные алгоритм также часто называют ДСМ-метод [10].
Пусть определены множества положительных и отрицательных примеров относительно некоторого целевого свойства z. Помимо этого, пусть задано множество недоопределённых примеров -- объектов, не имеющих значение свойства z.
Такие данные задаются с помощью трёх контекстов:
- положительный контекст,
- отрицательный контекст,
- недоопределенный контекст.
Формальное понятие положительного контекста является положительным понятием, при этом принято называть положительным формальным объемом, - положительным формальным содержанием. Положительное формальное содержание называется:
· положительной предгипотезой в случае, если оно также не является формальным содержанием ни одного отрицательного понятия;
· положительной гипотезой в случае, если оно также не является подмножеством формального содержания какого-либо понятия вида ;
· фальсифицированной положительной гипотезой в случае, если оно является также подмножеством формального содержания понятия некоторого отрицательного примера.
Аналогичные определения можно дать отрицательным предгипотезам, гипотезам и фальсифицированных гипотезам. Если в формальное содержание недоопределенного примера входит положительная (отрицательная) гипотеза, то эта гипотеза является гипотезой в пользу положительной (отрицательной) классификации g. Классификация недоопределенного объекта происходит следующим образом:
· строятся множества положительных и отрицательных гипотез;
· если содержит ни одну отрицательную гипотезу и хотя бы одну положительную, то относят к положительному классу;
· если содержит и одну положительную гипотезу и хотя бы одну отрицательную, то относят к отрицательному классу;
· если в не входит ни одна гипотеза из положительных и отрицательных множеств гипотез, или содержит гипотезы как из одного множества, так и из другого, то происходит отказ от классификации.
Обобщение ДСМ-метода на узорные структуры используется для классификации объектов, содержащих небинарные признаки. Пусть и - множества положительных и отрицательных примеров по отношению к целевому атрибуту w.
Узор называется положительной гипотезой, если
.
Для недоопределенного примера положительная гипотеза h определяется как гипотеза в пользу положительной классификации объекта g, если . Отрицательные гипотезы определяются аналогично. Классификация проводится тем же способом, что и в случае бинарных контекстов.
Выводы по 1 главе
В данной главе были рассмотрены статистические функции, которые были реализованы в данной работе. Помимо этого, были приведены основные определения из анализа формальных понятий, необходимые для понимания исследовательской части работы.
Глава 2. Построение классификатора
В данной главе рассматривается алгоритм построения классификатора, используемый в программе. Также в этой главе описывается модель данных, описывающая набор объектов и признаков, на основе которой строится классификатор. Помимо этого, приведены алгоритмы, используемые для обработки модели данных.
2.1 Постановка задачи
В данной работе была поставлена задача построить классификатор на основе данных о пациентах, определяющий признаки, влияющие на отсутствие осложнений после операции дренирования печени. В качестве целевого признака берется параметр «Осложнение». Входные данные представляют собой множество прооперированных пациентов, каждому из которых был установлен дренаж. Каждый пациент описывается значениями его физиологических характеристик, деталями операции и результатом операции в виде типа осложнения (или отсутствия осложнения).
2.2 Модель данных
Перед тем, как строить классификатор, необходимо организовать исходные данные. Данные для работы были предоставлены Московским клиническим научным центром. Для анализа были предоставлены истории болезней пациентов отделения гепатопанкреатобилиарной хирургии, которым была проведена операция дренирования печени. Все данные были взяты за период с 09.09.2012 по 01.02.2016.
Данные состоят из 86 записей, из которых 56 записей описывают пациентов, не имеющих осложнения после дренирования печени, все остальные записи - информация о пациентах с осложнениями после дренирования.
Каждый пациент описывается набором следующих характеристик:
· Пол: мужской или женский
· Возраст в годах
· Показатель общий белок в г/л
· Показатель билирубин в ммоль/л
· Количество внешних дренажей
· Количество наружно-внешних дренажей
· Уровень блока
· Показатель мно в сек
· Продолжительность желтухи в днях
· Первый/Рецидивный холангит
· Абсцедирующий холангит: да или нет
· Тип опухоли Клацкина по шкале Бисмута
· Дренированная доля: левая, правая или обе
· Сворачивание конца дренажа в кольцо: да или нет
· Дренирование 6-7 сегмента: да или нет
· Дренирование 5-8 сегмента: да или нет
· Установка супрапапиллярного дренажа
· Инфицированность посева желчи
· Наличие в посеве желчи синегнойной палочки
· Наличие в посеве желчи клебсиеллы пневмонии
· Инфицированность посева крови
· Осложнение
Все записи содержат описания всех характеристик.
Параметр осложнение может иметь один из следующих значений: «Миграция дренажа», «Билома», «Холангит», «Кровотечение», «Сохранившаяся желтуха», «Панкреотит», «Гемобилия» или «Отсутствие осложнения».
В итоге, каждый пациент описан 11 бинарными признаками, 3 категориальными признаками и 7 количественными признаками.
2.3 Предобработка данных
Перед передачей данных в алгоритм классификации, необходима их обработка.
В первую очередь, это поможет улучшить понимание модели, и избежать переобучение.
Во-вторых, это позволит значительно снизить время обучения классификатора, так как алгоритмы классификации анализа формальных понятий очень чувствительны к количеству объектов, признаков и возможных значений признаков.
Для уменьшения числа возможных значений количественных признаков в данной работе используется кластеризация. Для каждого количественного признака применяется алгоритм кластеризации k-means.
Основная идея данного алгоритма - перевычисление на каждой итерации центра масс для каждого кластера, полученного на предыдущем шаге, после чего происходит разбиение векторов на кластеры в зависимости от того, какой из новых центров, полученных в первом этапе данной итерации, находится ближе (рис. 1).
Завершение алгоритма происходит в том случае, если на какой-то итерации центры масс кластеров не изменяются. Так как множество различных вариантов разбиения конечно, то алгоритм прекращает свою работу за конечное время.
В первой итерации центр масс выбирается случайным образом.
Рисунок 1. Пример работы алгоритма k-means.
Для удаления признаков, не влияющих на целевой параметр, используется набор техник Feature Selection. Результатом применения данных техник является набор информативных признаков.
Существует три категории техник Feature Selection: Filter methods, Wrapper methods и Embedded methods. Первую категорию будем называть «Методы фильтрации», вторую категорию - «Методы обертки», последнюю -- «Встроенные методы».
Методы фильтрации. Методы фильтрации основаны на показателях, не зависящих от метода классификации. Например, корреляция признаков с целевым признаком, критерии информативности. Данные методы используются до классификации. Данные методы обладают следующими преимуществами: могут быть использованы в качестве предобработки для уменьшения размерности признакового пространства и преодоления переобучения. Методы данного семейства быстро работают.
Встроенные алгоритмы. Встроенные алгоритмы отбирают признаки одновременно с обучением классификатора. Именно данные методы явно оптимизируют набор используемых признаков для получения лучшей точности. Данные методы, как правило, находят решения быстрее, избегая предобработки признакового пространства с нуля, при этом разделение данных на обучающую и тестовую выборки не нужно.
Методы обертки. Методы обертки основываются на информации об информативности признаков, полученной от некоторых методов классификации или регрессии, следовательно, могут находить более глубокие закономерности в данных, чем фильтры. Обертки должны использовать классификатор, определяющий важности признаков.
В данной работе будет использоваться метод обертки Boruta [5] для отбора значимых признаков. В основе данного метода лежит алгоритм классификации Random Forest.
Основная идея алгоритма заключается в том, что значимость признака определяется относительно других признаков, значения которых были случайным образом перемешаны.
1. На вход алгоритма подаются все признаки объектов, после чего создается копия каждого из признаков, при этом значения внутри каждой копии случайном образом перемешиваются.
2. После этого на основе всех признаков строится случайный лес.
3. Для каждого дерева из случайного леса, на объектах, не используемых при построении этого дерева, считается out-of-bag ошибка, вычисляемая по формуле:
Проще говоря, данная ошибка - это функция потерь для каждого объекта тренировочной выборки, где функция потерь - это процент неверно классифицирующий данный объект деревьев, для которых данный объект не был использован в их обучающей подвыборке.
4. После этого, высчитывается средняя для всех объектов out-of-bag ошибка.
5. Для каждого признака выполняется следующее: перемешиваются случайным образом его значения, после чего повторяются шаги 2-4, и высчитывается out-of-bag ошибка для этого признака.
6. Для каждого признака высчитывается разность изначальной средней out-of-bag ошибки и полученной для этого признака в шаге 5 ошибки.
7. Выбирается максимальная разность среди высчитанных в шаге 6 разностей
8. Используя изначальный набор объектов с неперемешанными признаки повторяются шаги 2-6.
9. Все разности, значения которых меньше максимальной разности, полученной в процессе выполнения шагов 2-6 для перемешанных случайным образом признаков, трактуются как незначимые; в дальнейшем не принимают участие в алгоритме.
10. Шаги 1-9 выполняются до тех пор, пока количество разностей, меньших максимальной разности, не будет равно 0.
2.4 Получение положительных гипотез
Для получения положительных гипотез выполняются следующие шаги:
1. Производится обработка данных с помощью алгоритмов, описанных выше;
2. Строится неполная решетка понятий на положительных примерах с помощью модифицированного алгоритма AddIntent;
3. Во время построения решетки вычисляются минимальные положительные гипотезы;
4. При большом количестве минимальных положительных гипотез, производится отбор устойчивых положительных гипотез.
Псевдокод алгоритма AddIntent[3] представлен ниже:
Параметрами, подаваемые в функцию AddIntent, являются объем нового понятия, который будет помещен в решетку понятий, и уже вычисленный генератор понятия, такой что объем понятия является подмножеством объема генератора понятия.
AddIntent возвращает понятие, объем которого соответствует объему, подаваемому в функцию - новое понятие будет создано, если такого понятия не было, или уже существующий будет возвращен.
В первую очередь алгоритм находит наиболее общее понятие, объем которого является супермножеством объема, который подается в функцию и назначает его генератором понятия. Если объем этого понятия равен объему, который подается в функцию, то искомое понятие уже находится в решетке, и алгоритм завершается.
В ином случае, генератор понятия является каноническим генератором нового понятия, который должен быть создан и привязан к другим понятиям в графе.
Чтобы найти родителей нового понятия в графе, происходит поиск всех родителей генератора понятия. Если объем такого родителя, называемый кандидатом, является подмножеством объема, который был подан в функцию, то кандидат изменяется.
В ином случае, рекурсивный вызов AddIntent гарантирует, что решетка содержит понятие, объем которого равен пересечению объема, поданного в функцию, и объема кандидата. Это понятие будет присвоено кандидату. После этого кандидат будет добавлен в изначально пустой список новых родителей, если он является минимальным среди его текущих элементов, т.е. имеет максимальный объем.
В тоже время, если существует понятие в новых родителях, являющееся более общим, чем кандидат, то это понятие будет удалено из списка. Таким образом, список новых родителей всегда содержит несравнимые понятия. По завершению работы алгоритма список содержит родителей нового понятия, который будет вставлен в решетку.
Модификация алгоритма AddIntent для поиска минимальных положительных гипотез заключается в следующем:
1. На вход алгоритма подается также отрицательный контекст ;
2. Перед тем, как добавить новое понятие в решетку, идет проверка, не входит ли это понятие в один из элементов отрицательного контекста;
3. В случае вхождения понятия в отрицательный пример, понятие не добавляется в решетку, а все его родители принимаются за минимальные положительные гипотезы.
Модификация алгоритма AddIntent позволяет не строить всю решетку понятий, сократив время вычисления и объем решетки. Помимо этого, количество гипотез также уменьшается. Минимальные гипотезы - наиболее интересные гипотезы при решении задачи классификации.
Выводы по 2 главе
В данной главе была рассмотрена модель данных, на основе которой производилась исследовательская часть. Также здесь были приведены основные алгоритмы обработки данных и описаны алгоритмы, используемые для построения классификатора. В конце главы также описана модификация алгоритма AddIntent, разработанная для выявления наиболее интересующих гипотез в данной работе.
Глава 3. Исследовательская часть
В данной главе проводится описание хода исследования по выявлению признаков, характеризующих отсутствие осложнений после проведения операции дренирования.
3.1 Построение полной решетки
Первый этап испытания состоял в построении полной решетки при помощи алгоритма AddIntent на всех признаках. Выбор алгоритма AddIntent основан на его высоком быстродействии и возможностью его легкой адаптации к построению ДСМ-гипотез и применению ДСМ-метода [10].
В результате, решетка содержала более 2,000,000 понятий, время построения решетки составляло приблизительно 48 часов. Такой размер решетки является очень большим для набора из 56 объектов, содержащих 21 признак. Поэтому было принято решение отобрать информативные признаки для уменьшения размера решетки при помощи алгоритма отбора информативных признаков Boruta, описанного в п.2.3. Данный алгоритм был выбран, так как в его основе находится случайный лес, обладающий рядом преимуществ, таких как:
1. Работает с признаками разной природы;
2. Устойчив к изменениям признаков;
3. Обладает малым количеством настраиваемых параметров перед запуском алгоритма, что облегчает работу пользователя.
В результате работы алгоритма Boruta было отобрано 12 признаков:
· Возраст в годах
· Показатель билирубин в ммоль/л
· Количество внешних дренажей
· Количество наружно-внешних дренажей
· Уровень блока
· Показатель мно в сек
· Продолжительность желтухи в днях
· Тип опухоли Клацкина по шкале Бисмута
· Дренированная доля: левая, правая или обе
· Сворачивание конца дренажа в кольцо: да или нет
· Дренирование 6-7 сегмента: да или нет
· Инфицированность посева желчи
Данные признаки являлись информативными при минимальной точности деревьев решений, равной 65%. Такой порог был выбран эмпирическим методом. При меньшем пороге алгоритм оставлял практически все признаки, в то время как при его увеличении количество признаков сокращалось до двух.
В итоге, размер итоговой решетки, построенной на отобранных 12 признаках, уменьшился не существенно (приблизительно 1,900 000 понятий), что все еще не позволяло далее обрабатывать полученные понятия. Результат исследования довольно легко объясним, так как алгоритм Boruta убрал только 1 количественный признак, все остальные признаки, расцененные как неинформативные - бинарные, так как бинарные признаки порождают значительно меньше понятий, нежели чем количественные.
На основе результатов предыдущих исследований было решено кластеризовать количественные признаки. В качестве алгоритма кластеризации был использован алгоритм k-means, так как не было необходимости использовать более сложный алгоритм, потому что выборка состояла всего лишь из 56 объектов, и алгоритм применялся для каждого количественного признака из списка признаков.
Размер построенной решетки существенно изменился - приблизительно 1, 400 000 понятий. Проблема заключалась в следующем: число полученных положительных гипотез из построенной решетки было велико. Помимо этого, большое количество положительных гипотез не являлись репрезентативными. Для решения этой проблемы было принято решение построить неполную решетку понятий.
3.2 Построение неполной решетки
Вторая часть исследования заключалась в модификации алгоритма AddIntent для получения неполной решетки понятий, состоящей только из положительных гипотез и определяющей минимальные положительные гипотезы.
Результат работы алгоритма на исследуемых данных следующий:
· Размер решетки: 700 000 понятий
· Количество минимальных положительных гипотез: 32 000
Данный результат уже является применимым для решения поставленной задачи классификации. Однако, было принято решение сократить число минимальных положительных гипотез для демонстрации данного результата врачам-специалистам. Для этого было решено использовать задачу о покрытии множества. Для оценки качества полученных гипотез использовалась процедура скользящего контроля (10-fold cross validation). Десять раз случайным образом выбиралось 10% объектов из набора положительных объектов, которые в дальнейшем использовались, как тестовая выборка. После расчета ошибок 1-го и 2-го рода для каждого классификатора была взята средняя по каждой ошибке.
В результате, качество классификатора описано в приведенной ниже таблице:
Гипотеза H0 верна |
Гипотеза H1 верна |
||
Гипотеза H0 принята |
91% |
Ошибка 2го рода: 20% |
|
Гипотеза H1 принята |
Ошибка 1го рода: 9% |
80% |
Оценка precision: 82%
Оценка recall: 91%.
Данный результат можно сравнить с классификатором, основанном на деревьях решений [11,12]. Нами использовалась реализация деревьев решений из [13]. На вход данному классификатору был подан весь набор объектов (86 положительных и отрицательных объектов). Для проверки надежности классификатора использовалась та же процедура скользящего контроля.
Результаты классификатора, основанного на деревьях решений приведены в таблице ниже:
Гипотеза H0 верна |
Гипотеза H1 верна |
||
Гипотеза H0 принята |
88,2% |
Ошибка 2го рода: 27% |
|
Гипотеза H1 принята |
Ошибка 1го рода: 11,8% |
73% |
Классификатор, полученный на основе модифицированного алгоритма AddIntent работает эффективнее, чем классификатор, построенный на решающих деревьях.
Выводы по 3 главе
В данной главе были описаны основные шаги исследовательской части, проведенной в данной работе. Помимо этого, были приведены итоговые результаты исследования. В конце главы было проведено сравнение результатов полученного во время исследования классификатора с классификатором, основанном на деревьях решений.
Глава 4. Разработка программы
В данной главе описаны инструменты и методы, используемые при разработке данной программы.
4.1 Инструменты, используемые при разработке
Разрабатываемая программа представляет собой клиент-серверное приложение. Язык, использованный при разработке серверной части - Java. Клиентская часть написана с использованием языков HTML, CSS, JavaScript. Язык Java был выбран по следующим причинам:
· является одним из наиболее часто используемых языков для написания серверной части;
· является объектно-ориентированным, что подходит под предметную область проекта;
· большая поддержка различных фреймворков, что существенно упрощает разработку приложения.
Языки для клиентской части были выбраны по причине того, что клиент взаимодействует с серверной частью через браузер. Такой тип клиентской части был выбран благодаря следующим преимуществам:
· отсутствие необходимости устанавливать приложение на каждом компьютере в отделении больницы;
· возможность работы с приложением через любые устройства.
При разработке приложения использовались такие фреймворки, как Spring и Angular JS.
4.2 Серверная часть
В данной работе было принято решение использовать Apache Tomcat версии 8.0.21, так как данный контейнер сервлетов является одним из самых популярных средств для разработки сервера, но для данного проекта он был выбран, в первую очередь, из-за того, что, в отличие от других, он не содержит реализацию всей спецификации Java EE, что и не требовалось в этом проекте.
Основным фреймворком, использующемся в данном проекте, является Spring. В частности, для того, чтобы реализовать паттерн MVC в данной работе был использован Spring MVC.
В приложение есть контроллеры, которые организуют взаимодействие между моделью и формами. Для взаимодействия с базой данных использовалась библиотека Spring JDBC, что позволило абстрагироваться от конкретных запросов и уменьшить объем кода, связанного с логикой работы с базой данных.
Для реализации паттерна «Репозиторий» также был использован фреймворк Spring.
Для автоматического заполнения форм и получения данных из формы была использована библиотека Spring Bean. Наконец, чтобы обеспечить надежность системы, определить роли в системе, а также работать с хешированными паролями использовалась библиотека Spring Security. Пароли хешируются при помощи алгоритма BCrypt.
Надежность защиты данных гарантируется использованием CSRF, который не позволяет изменять данные вне сессии.
4.3 База данных
Схема базы данных, используемая в проекте, отображена на рис.2.
Основные сущности в базе данных: пользователь, пациент, диагноз, операция.
Рисунок 2. Схема базы данных
Для корректной работы библиотеки Spring Security, в базе данных также присутствует таблица Userrole, которая хранит в себе роли пользователей. В зависимости от роли, пользователь может получить доступ к странице администрирования и/или к основным станицам приложения.
Во время проектирование базы данных необходимо было избежать создания таблиц для каждого диагноза и для каждой операции.
Было принято решение создать единую таблицу для диагнозов и единую таблицу для операций, в которые вводятся id пациента, id свойства, значение которого добавляется в таблицу (к примеру, вводится 50, если в данной строке будет храниться значение свойства «Тип гепатита»), само значение свойства, а также id болезни (id болезни необходимо указывать, так как свойства в разных болезнях пересекаются). Id свойства можно получить из таблиц surgeryparametersname (различные свойства операций) и parametersname (различные свойства диагнозов).
Такой вариант таблиц позволяет переиспользовать уже введенную в базу данных информацию, а также легко расширять базу данных, вводя новые диагнозы и операции. Для этого необходимо только добавить новые свойства в таблицу parametersname/ surgeryparametersname.
Все данные, касающиеся значений свойств и не являющиеся количественными, хранятся в виде цифр, что обеспечивает дополнительную безопасность в случае взлома базы данных (к примеру, свойство ICG может принимать три значения: 0 - «Данные не введены», 1 - «Меньше 15%», 2 - «15-25%», 3 - «Больше 25%»).
4.4 Интерфейс программы
Для создания единого дизайна интерфейса был использован набор инструментов Bootstrap.
Чтобы обеспечить обработку небольшой по объему информации без обращения к серверу, был использован язык JavaScript. Это позволяет уменьшить количество запросов на сервер, а также избежать перезагрузки страницы при выполнении небольших функций. В данной работе JavaScript применялся в таких случаях, как вычисление возраста пациента в зависимости от его даты рождения, расчет количества дней между двумя датами, получение информации из таблиц.
Для задач, которые невозможно решить на клиентской части, и необходимо обращение к серверу, используется фреймворк Angular.js. В данной работе Angular.js использовался для расчета статистических функций, чтобы покрыть требование, касающееся отсутствия перезагрузки странице при добавлении результата расчета статистики.
Для построения графиков была использована графическая библиотека HighCharts.
Выводы по 4 главе
В данной главе были описаны детали реализации приложения, основные инструменты, примененные во время разработки проекта. Также были описаны причины использования определенных инструментов в ходе реализации.
Помимо этого, в данной главе приведено подробное описание структуры базы данных с пояснениями причин такого проектирования.
Заключение
На сегодняшний день разработка систем обработки информации для медицинских учреждений является крайне актуальной. Данная область является особенно перспективной в России, где только в незначительном количестве медицинских центров установлено программное обеспечение данного типа.
В рамках выполнения данной квалификационной работы была разработана система, позволяющая агрегировать и обрабатывать медицинскую информацию, вычислять статистические значения для собранной информацией, сохранять полученную статистику в файл для дальнейшего ее использования в отчетах и научных исследованиях, а также прогнозировать отсутствие или возникновения осложнений после операции дренирования.
В ходе работы над данным проектом, помимо разработки самого приложения, было также проведено исследование, в рамках которого были выполнены следующие задачи:
· Собраны данные, на основе которых был построен классификатор;
· Изучены различные методы классификации, основанные на машинном обучении;
· Был выбран алгоритм AddIntent, он был адаптирован для реализации ДСМ-метода;
· Разработан классификатор.
При разработке приложения были выполнены следующие задачи:
· Выявлены основные статистические функции, используемые врачами для анализа медицинских данных;
· Реализован статистический модуль;
· Разработана клиент-серверная программа для сбора, анализа и обработки медицинских данных;
· Разработана техническая документация.
В дальнейшем предполагается расширять функционал данной программы. В первую очередь, будет увеличено количество возможных для создания диагнозов и операций, добавлена информация по анализам пациента. Также планируется добавить третью роль в системе для пользователей, не имеющих доступ к просмотру данных и статистическому блоку, но способных добавлять информацию о пациентах. Данное усовершенствование программы позволит докторам других больниц вводить информацию, полученную при лечении больных в их медицинских учреждениях, тем самым увеличивая количество данных для анализа.
Список литературы
1. Bernhard Ganter and S.O. Kuznetsov, Hypotheses and Version Spaces. In: A. de Moor, W. Lex, and B.Ganter, Eds., Proc. 10th International Conference on Conceptual Structures (ICCS 2003), Lecture Notes in Artificial Intelligence (Springer), Vol. 2746, pp. 83-95, 2003.
2. Buzmakov A. V., Kuznetsov S. O., Napoli A. Scalable Estimates of Concept Stability, in: Formal Concept Analysis. 12th International Conference, ICFCA 2014, Cluj-Napoca, Romania, June 10-13, 2014. Proceedings Vol. 8478. Springer International Publishing, 2014. P. 157-172.
3. Dean van der Merwe, Sergei A. Obiedkov, and Derrick G. Kourie. Addintent: A new incremental algorithm for constructing concept lattices. In Peter W. Eklund, editor, ICFCA, Lecture Notes in Computer Science, pages 372{385. Springer, 2004.
4. Decision Tree classifier [Электронный ресурс]. Режим доступа:http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html, свободный. (дата обращения: 15.05.16)
5. J.R.Quinlan Induction of decision trees, Volume 1, Issue 1 , pp 81-106, March 1986, Machine Learning
6. L. Breiman, J. Friedman, R. Olshen, and C. Stone, “Classification and Regression Trees”, Wadsworth, Belmont, CA, 1984.
7. M. Kaytoue, S.O. Kuznetsov, A. Napoli, S. Duplessis, Mining gene expression data with pattern structures in formal concept analysis. Information Sciences, Volume 181, Issue 10, 15 May 2011, pp. 1989-2001, Information Science, Special Issue on Information Engineering Applications Based on Lattices, Elsevier, New York, 2011.
8. Miron B.Kursa, Witold R. Rudnicki, Feature Selection with the Boruta Package, Volume 36, Issue 11, September 2010, Journal of Statistical Software, the Americal Statistical Assosiation, 2010.
9. P. Armitage, G. Berry, J.N.S. Matthews. Statistical Methods in Medical Research, Fourth Edition, 2008.
10. Stanton A. Glantz, McGraw Hill.Primer of Biostatistics. Fourth Edition, 1997 - p.455
11. Е.С.Панкратова, В.К.Финн, Автоматическое порождение гипотез в интеллектуальных системах, Москва: изд. «Либроком», 2009 - 528с.
12. Новиков Д.А., Новочадов В.В. Статистические методы в медико-биологическом эксперименте (типовые случаи). Волгоград: Издательство ВолГМУ, 2005. -84 с.
13. Финн В.К., Аншаков О.М. ДСМ-метод автоматического порождения гипотез: Логические и эпистемологические основания. Москва: Издательство Либроком, 2009. -432 с.
Размещено на Allbest.ru
...Подобные документы
Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.
дипломная работа [2,5 M], добавлен 25.01.2015Выбор программных и аппаратных средств для создания базы данных. Описание структуры программы. Описание разработки приложения. Подключение к базе данных, выполняемое с помощью компонента ADOConnectio. Создание средств защиты информации в программе.
курсовая работа [2,1 M], добавлен 16.02.2015Определение необходимых модулей программы, структуры файла базы данных. Описание разработки программы, отладка и тестирование. Разработка приложения Organizer.exe, меню и руководство пользователя. Алгоритм обработки событий главного меню (расписания).
курсовая работа [901,8 K], добавлен 11.02.2014Разработка программы-модели в среде "Adamview" для имитации стратегии и наглядной иллюстрации работы программы. Настройка сети; описание эмулятора стратегии и экранных форм интерфейса оператора. Структурная схема распределённой системы управления.
курсовая работа [2,6 M], добавлен 21.01.2013Использование массива данных о сотрудниках небольшой фирмы для создания программы. Введение информации, ее хранение в файле workers.dat. Процедуры и функции программы, дополнительные файлы, описание предметной области и алгоритма задачи, листинг.
курсовая работа [22,0 K], добавлен 29.11.2009Описание логической структуры таблиц базы данных для разработки web-приложения с помощью технологий ado.net и asp.net. Система меню, программы и модули, используемые в работе сайта. Класс, выполняющий операции и связующий информацию сайта с базой данной.
курсовая работа [104,5 K], добавлен 26.09.2012Носители данных. Операции с данными. Основные структуры данных. Требования к криптосистемам. Законодательная поддержка вопросов защиты информации. Средства архивации информации. Антивирусные программы. Классификация компьютерных вирусов. Сканеры.
курсовая работа [563,1 K], добавлен 16.12.2004Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.
курсовая работа [391,1 K], добавлен 30.09.2013Технология сбора информации традиционными методами. Правила сбора оффлайновой информации. Технические средства сбора информации. Операции для быстрого восстановления данных в системах хранения. Технологический процесс и процедуры обработки информации.
курсовая работа [304,5 K], добавлен 02.04.2013Разработка полноценной правильно функционирующей игровой программы "Парные картинки", изучение процедур и функций. Использование масштабируемых средств для построения баз данных. Компоненты Delphi в программе. Описание пользовательского интерфейса.
курсовая работа [1,3 M], добавлен 13.07.2012Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013Разработка технологии обработки информации, а также структуры и формы представления данных. Подбор алгоритма и программы решения задачи. Определение конфигурации технических средств. Специфика процесса тестирования и оценки надежности программы.
курсовая работа [959,1 K], добавлен 12.12.2011Разработка сайта для хранения и обработки информации об абитуриентах в среде программирования Delphi 7. Архитектура базы данных. Функциональная схема программы. Даталогическая модель данных. Сущности БД и архива. Элементы пользовательского интерфейса.
дипломная работа [4,2 M], добавлен 30.03.2015Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.
курсовая работа [1021,5 K], добавлен 22.01.2015Создание программы, работающей с набором данных на внешнем устройстве. Описание программного комплекса. Обзор структуры главной программы. Процедура добавления новых элементов, поиска и создания на экране вертикального меню. Проверка работы программы.
курсовая работа [265,6 K], добавлен 28.08.2017Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.
курсовая работа [2,9 M], добавлен 24.03.2023Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.
дипломная работа [225,0 K], добавлен 18.05.2013Программа в среде Genie. Сбор данных о технологическом процессе. Функциональные возможности и технические характеристики аппаратных средств. Экранные формы интерфейса оператора рабочей программы. Функциональные блоки стратегии, отображения и управления.
курсовая работа [3,2 M], добавлен 13.03.2012Методика и основные этапы создания программы, взаимодействующей с пользователем посредствам графического интерфейса и выполняющей помехоустойчивое кодирование информации, ее цели. Алгоритм работы программы, отладка и проверка ее работоспособности.
курсовая работа [43,1 K], добавлен 12.05.2013Графическая схема алгоритма выполнения программы определения запасов сырья. Решение задачи с помощью программы MS Excel. Разработка макроса для построения диаграммы. Использование интерфейса программы для работы с таблицей. Разработка базы данных.
курсовая работа [1,2 M], добавлен 24.04.2014