Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Дипломная работа на тему «Анализ реадмиссии пациентов на основе логистической регрессии»

В настоящее время, согласно данным Всемирной Организации Здравоохраненения, 422 миллиона человек в мире страдают от сахарного диабета. Также ежегодно от данного заболевания умирают 1,5 миллиона человек, более того, по оценкам ВОЗ, около 2,2 миллион смертей в мире напрямую связаны с повышенным содержанием сахара в крови.

Оглавление

Введение

Глава 1. Теоретические основы исследования

.1 Описание предметной области

.2 Анализ исследований в области лечения диабета.

.3. Постановка задачи

Глава 2. Использование классификаторов машинного обучения для анализа данных

.1 Методы анализа данных

.1.1 Деревья решений

.1.2 Метод k-ближайших соседей

.1.3 Наивный байесовский классификатор

.1.4 Логистическая регрессия.

.2 Методы проверки точности работы классификатора

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

.3 Инструментальные средства анализа данных

Глава 3. Описание практической реализации анализа данных и создания модели

.1 Описание переменных

.2 Предварительный анализ данных

.3 Применение классификаторов

.4 Оценка качества работы классификаторов

.5 Интерфейс пользователя

Заключение

Список литературы.

Приложение 1. Данные для теста программы, значение реадмиссии 2.

Приложение 2. Данные для теста программы, значение реадмиссии 0.

Приложение 3. Код программы на языке Python

Введение

Актуальность

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

В настоящее время, согласно данным Всемирной Организации Здравоохраненения, 422 миллиона человек в мире страдают от сахарного диабета. Также ежегодно от данного заболевания умирают 1,5 миллиона человек, более того, по оценкам ВОЗ, около 2,2 миллион смертей в мире напрямую связаны с повышенным содержанием сахара в крови. Данная статистика обусловлена недостаточным вниманием к сахарному диабету среди населения и врачей, и все это, несмотря на то, что сейчас существует множество способов профилактики диабета, а также методов облегчения последствий данного заболевания.

Современные методики лечения диабета подразумевают под собой тщательный мониторинг течения заболевания и уровня глюкозы в крови, а также, при необходимости, прием лекарственных средств, прописанных врачом. Например, на данный момент, одним из самых высокоточных тестов для отслеживания уровня глюкозы в крови является тест на гликированный гемоглобин (HbA1c), который на основе уровня гемоглобина в крови, непосредственно связанного с глюкозой, позволяет отражать среднее содержание сахара в крови в динамике до трех месяцев. Данный тест является более точным и высококачественным, чем обычный тест на глюкозу, отражающий уровень глюкозы в крови на текущий момент. Однако тест на гликированный гемоглобин до сих пор проводится только в исключительных случаях в связи с отсутствием дорогостоящего оборудования в больницах, а также недостаточного внимания к профилактике и мониторингу сахарного диабета.

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

Объект исследования

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

Предмет исследования

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

Цель исследования

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

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

Задачи исследования

Для достижения цели исследования необходимо выполнить следующие задачи:

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

Создать модели на основе имеющихся данных, используя оптимальные методы MachineLearning.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

Методы и технологии исследования

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

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

Краткое содержание глав

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

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

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

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

Глава 1. Теоретические основы исследования

1.1 Описание предметной области

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

Инсулинзависимый диабет чаще всего возникает у людей до 30 лет по причине наследственных факторов, попаданию в организм вирусных инфекций, таких как ветрянка, корь, оспа и прочее, а также по причине сильного стресса организма. Люди, больные диабетом первого типа часто испытывают жажду, слабость, потребность в частом мочеиспускании, а также имеют склонность к кетоацидозу — нарушению углеводного обмена в организме. Среди лечения инсулинзвисимого диабета выделяют диету, спорт и постоянный прием инсулина, осложнения при отсутствии надлежащего лечения — снижение плазменной концентрации глюкозы в организме без последующей комы (гипогликемия), поражения мелких сосудов вегето-сосудистой системы, сердца и отделов головного мозга. Инсулиннезвисимый диабет в свою очередь чаще всего возникает у людей старше 40 лет с повышенной массой тела по причине наследственных факторов, а также ожирения. Признаками диабета второго типа являются сильное постоянное чувство голода, а также слабовыраженные (в отличие от диабета первого типа) жажда и частое мочеиспускание. Различия в лечении состоит в том, что приинсулиннезависимого диабета нет необходимости в постоянном принятии таблеток или инсулина. Среди осложнений также выделяется повышение плазменной концентрации глюкозы с последующей комой (гипергликемия), поражение крупных сосудов вегето-сосудистой системы, почек и нервов.

Основным принципом в предотвращении осложнений любого типа диабета является своевременный и полный мониторинг уровня глюкозы в крови, чтобы не допускать критический уровень понижения или повышения ее концентрации. Наиболее распространёнными тестом для диагностики диабета является измерение глюкозы в крови. Для измерения этого показателя необходимо взять кровь натощак не менее чем через 8 часов после приема пищи, обычно забор крови происходит с утра. В лаборатории из взятой у пациента не позже чем через два часа после сдачи анализа отделяется плазма, в которой и измеряется содержание глюкозы с помощью реагентов типа «Глюкоза GOD-PAP». Уровень глюкозы считается нормальным при следующих значениях в зависимости от возраста:

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Таблица 1. Референсные значения уровня глюкозы в крови

 

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

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

В настоящее время, одним из самых полных тестов для контроля диабета является гликированный гемоглобин или HbA1c. Данный тест отражает среднее содержание глюкозы в крови на протяжении 3 месяцев, а именно процент гемоглобина, связанного с молекулами глюкозы в кровяных тельцах. HbA1cпозволяет проследить динамику именно по причине того, что в тесте анализируются красные кровяные клетки, которые имеют продолжительность «жизни» около 90 дней, а измерение глюкозы, связанной с ними, показывает именно среднее значение уровня глюкозы за жизненный цикл эритроцитов. Выделяются несколько методов проведения гликированного гемоглобина — лабораторный, экспресс-анализ и самостоятельное тестирование с помощью глюкометра.

Лаборатории применяют множество различных способов измерения гликированного гемоглобина, среди них высокоэффективная жидкостная хроматография (ВЭЖХ), ионообменная хроматография низкого давления, иммунотурбидиметрия и прочие. Референсным (эталонным) способом является ВЭЖХ, так как он отличается наиболее высокой точностью, калибровка осуществляется по нескольким стандартам гликогемоглобина, также исключена корреляция показателей с карбогемоглобинами. Экспресс-анализ производится с помощью прибора DCA 200, который позволяет провести анализ с помощью крови из пальца в сжатые сроки, обычно до 30 минут. Также, некоторые фирмы стали производить глюкометры, позволяющие проводить замеры не простой моментальной глюкозы в крови, а именно гликированного гемоглобина, таким образом, позволяя производить более качественный мониторинг течения болезни.Нормы гликированногогемобглобина определяются по следующей таблице:

Таблица 2. Нормы гликированного гемоглобина

 

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

1.2 Анализ исследований в области лечения диабета

Тест HbA1cв первый раз упоминается в ежегодном отчете ВОЗ в 1985 году, как новый способ мониторинга состояния людей больных диабетом. Американская Диабетическая ассоциация в 1989 году поддержала ВОЗ с идеей о применении данного теста для контроля состояния диабета и предложила проводить HbA1cдважды в год для каждого пациента с диабетом. После выхода этих двух отчетов в медицинской среде начались споры по поводу необходимости проведения теста на гликированный гемоглобин, его преимуществах и недостатках.

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

С другой стороны, более поздние упоминания и эксперименты сHbA1c были более успешными. В своей статье «StandardizationofHbA1candOptimalRangeofMonitoring»Мидема К. показал, что стандартизация HbA1cположительно повлияли на контроль состояния диабета, а также своевременное предупреждение осложнений, вызванных данным заболевнием. Он показал, что ежеквартальное проведение гликированного гемоглобина для каждого пациента больницы позволит не только назначать лечение диабета должным образом, но и обнаруживать диабет на ранних стадиях и даже предрасположенность к этому заболеванию. Более того, автор в своей статье предложил несколько путей улучшения анализа на гликировнный гемоглобин — изменение референсной системы теста, модернизация непосредственно лабораторного анализа и, наконец, стандартизация теста HbA1c во всем мире.

Тем не менее, несмотря на мощный теоретические доказательства значимости проведения анализагликированного гемоглобина, тест HbA1c до сих пор не проводится во всех медицинских учреждениях мира. Одной изпричин этого является отсутствие практических доказательств эффективности HbA1c. Большинство больниц и клиник не хотят полагаться только на теоретических доклады, им нужны реальные доказательства на практических примерах. В связи с этим, в 1990 году группа исследователей во главе с Могенсом провели эксперимент, в котором на выборке пациентов больных сахарным диабетом доказали, что проведение HbA1c, назначение корректных лекарств, внимание к лечению больного влечет за собой более редкую реадмиссию к прошлому состоянию. Выборка состояла из 240 пациентов — 107 из них сдавали обычные тесты на глюкозу, а 133 были в группе с контролем гликированного гемоглобина каждые четыре месяца в течение двух лет, также они проходили еженедельную консультацию у врача и, в случае необходимости, корректировку назначенных лекарств и оказываемого лечение. Это исследование показало, что вторая группа получали более эффективное лечение, и уровень гликированного гемоглобина среди этой группы снизился на 10%, что демонстрирует высокий уровень мониторинга состояния больного и более качественное назначение лечения.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Более того, еще одно практическое исследование было проведено в 2014 году Беатой Штрак — она изучила влияние HbA1c, а также ряда других факторов на реадмиссию пациента в больницах с тяжелыми осложнениями. За основу была взята база диабетиков с несколькими параметрами — возраст, пол, раса, сопутствующие заболевания, лабораторного анализы, которые были проведены для пациентов и, кроме того, результаты теста HbA1c. С помощью методов анализа данных были выявлены наиболее значимые параметры, которые влияют на реадмиссию пациентов, одним из самых важных параметров, влияющих на назначение лечения, оказалолсь измерение гликированого гемоглобина. Кроме того среди значимых параметров были отмечены пол и возраст пациента, имеющиеся у него заболевания и принимаемые лекарства. Созданная на основе этих данных модель стала использоваться в больницах и госпиталях США, как позволяющая предписывать надлежащее лечение и оценить значимость теста HbA1c.

Таким образом, можно увидеть, что все работы, направленные на популяризацию и стандартизацию теста на гликированный гемоглобин, получили свои плоды. В некоторых странах данный тест применяется повсеместно и, как следствие, количество больных с осложнениями от диабета, а также уровень смертности от этого заболевания значительно снижается. Однако в России данный тест все еще не получил надлежащего распространения в связи с тем, что выше перечисленные доклады и статьи не очень популярны в РФ, а российских исследований этой проблемы не проводилось. Более того, большинство исследований несли теоретический характер, не принимая во внимания практическую составляющую вопроса. Данная работа призвана изменить отношение к HbA1cв России и сделать первый шаг на пути к стандартизации теста на гликированный гемоглобин, а также выявить другие факторы, которые могут повлиять на развитие осложнений от диабета.

1.3 Постановка задачи

Таким образом, главной задачей данного исследования является необходимость построить модель с помощью методов анализа данных, используя имеющуюся базу данных посещений госпиталя. Модель должна учитывать все необходимые значимые переменные, которые влияют на показатель реадмиссии пациента и применять полученные зависимости для предсказания результата на новом объекте (пациенте). Для достижения цели исследования необходимо выполнить следующие задачи, используя выбранные инструментальные методы:

Провести предварительный анализ данных.

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

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

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

Оценка качества построенных моделей на основе кросс-валидации и ROC-кривых и выбор наиболее точной модели.

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

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

Интерфейс пользователя создается с использованием графических надстроек языка программирования Python, а также встроенных библиотек для анализа данных, таких как numpy, sklearn, pandas и др.

Глава 2. Использование классификаторов машинного обучения для анализа данных

2.1 Методы анализа данных

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Для решения задачи анализа данных существуют два метода — обучение с учителем и без учителя. Обучение без учителя подразумевает собой ситуацию, в которой на обучающей выборке заданы только описания объектов, и обучение происходит путем выделения корреляций, зависимостей и взаимосвязей между параметрами. Примерами обучения без учителя являются задачи кластеризации, задачи правил ассоциации, задачи сокращения размерности и задачи визуализации данных. Обучение с учителем в свою очередь представляет собой анализ данных на основе обучающей выборки, в которой известно влияние независимых переменных на целевую. На основе данной выборки алгоритм восстанавливает данные зависимости, выявляет степень влияния параметров и затем применяет их для задач классификации. Далее приведены распространенные методы обучения с учителем.

2.1.1 Деревья решений

Первый из них — дерево решений. Это метод классификации и принятия решений, который состоит в том, чтобы на основании значимых параметров определить значение зависимой переменной. Структура дерева решений представляет собой листья, в которых записаны значения атрибута, а также ветки, которые содержат непосредственно значимые атрибуты. На данный момент существует несколько способов построения деревьев — алгоритмы CART, C 4.5, CHAID и пр.

Метод C 4.5 представляет собой алгоритм, который для построения дерева разбивает выборку на nподмножеств, которые в свою очередь рекурсивно также разбиваются на kподмножеств, так продолжается до момента, пока каждое множество не будет содержать конечный единичный пример. C 4.5 содержит информацию о том, каким образом и в каком количестве примеры распределены между подмножествами, для определения принадлежность к классу используется следующий алгоритм:

Определяется вероятность того, что пример из множества S, принадлежит к одному и тому же классу  по формуле (1):

 (1)

где — количество примеров множества S, принадлежащих классу;  — количество элементов в подмножестве S.

Затем определяется энтропия изначального множества T, т.е оценка среднего количества информации содержащейся в множестве по следующей формуле(2):

(2)

Для определения энтропии подмножества используется формула для разбиения множества T по X (3):

(3)

Наконец, критерием определения принадлежности объекта к тому или иному классу выбирается как максимальное значение среди всех доступных классов через формулу (4):

(4)

Алгоритм построения деревьев решений CHAIDдля определения класса объекта использует максимизацию критерия хи-квадрат — выбирается класс, для которого это значение максимально. Данный критерий используется для проверки нулевой гипотезы, где распределение критерия имеет распределение хи-квадрат — полученное фактическое значение сравнивается с табличным, в случае, если фактическое значение больше, чем табличное, то гипотеза отвергается, в противном случае — принимается.

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

Где s — идентификатор разбиения, t — идентификатор узла, tL и tR — левый и правый потомки узла t соответственно,  — отношение числа примеров в левом и правом потомках к их общему числу в обучающем множестве,  — отношение числа примеров класса j в левом и правом потомках к их общему числу в каждом из них.

После разбиения выборки алгоритм определяет класс каждого последующего элемента с помощью индекса Gini (6):

, (6)

где c — значение текущего узла,  — вероятность отнесения узла c к классу j.

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

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

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

Алгоритм случайного леса состоит в следующем: для каждого дерева необходимо определить количество повторений (бутстрэпов), достаточного для построения точной модели. Затем построить ансамбль деревьев решений с помощью алгоритма CART. Для принятия решений на тестовых выборках каждому дереву присваивается вес согласно точности дерева, принятие решения основывается на выборе большинства с учетом веса каждого дерева из ансамбля.

2.1.2.Метод k-ближайших соседей

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Следующий довольно распространенный метод для анализа данных — метод k-ближайших соседей, который основывается на оценке похожести объектов, располагающихся на отрезке kот изучаемого объекта. Алгоритм выбирает все объекты, которые находятся на расстоянии kот объекта, и среди них находит те, которые имеют самое большое значения для изучаемого объекта, и относит его к их классу.

Для работы алгоритма необходима обучающая выборка, на которой задано соответствие группа объектов-зависимая переменная (7):

}, (7)

На данном множестве объектов должна быть однозначно задана функция расстояния между объектами ρ. Для случайного объекта u алгоритм определяет расстояния до объектов определенного класса и располагает их в порядке возрастания (8)

, (8)

где  — i-ый сосед объекта u. i-ый сосед для зависимой переменной обозначается через. В общем виде функция классификации объекта выглядит следующим образом (9):

,(9)

где — функция «веса» (степени значимости) i-го соседа для объекта u.

В отличие от алгоритма деревьев решений, метод k-ближайших соседей неустойчив к шумам в выборке, однако также дает довольно хорошие и валидные результаты на больших выборках.

.1.3 Наивный байесовский классификатор

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

Данный классификатор также требует, чтобы была задана обучающая выборка по формуле (7), также необходимо, чтобы было известно значение плотностей класса. При соблюдении вышеперечисленных условий алгоритм определяет значение среднего риска (вероятность отнесения объекта к неправильному классу) (10):

, (10)

где  — «штраф» за отнесения объекта к неверному классу.

Для классификации объекта используется функция максимизации (11)

, (11)

где — аспостериорная вероятность (вероятность после проведения эксперимента) того, что объект принадлежит к определенному классу.

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

.1.4 Логистическая регрессия

Наконец, логистическая регрессия — это модель, применяющаяся для оценки принадлежности объекта к тому или иному классу. Простая логистическая регрессия подразумевает, что значения целевой переменной бинарны, в случае, если классов больше чем два, то говорят о мультиноминальной логистической регрессии. Логистическая регрессия для отнесения объекта к тому или иному классу использует следующую формулу (12):

,(12)

где j-го признака,  — порог для принятия решения,  — скалярное произведение признакового описания объектов на вектор весов.

Принцип работы логистической регресии основан на том, чтобы по элементам обучающей выборки вычислить вектор весов и с его помощью классифицировать последующие объекты (13)

(13)

2.2 Методы проверки точности работы классификатора

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Для проведения алгоритма кросс-валидации выборка разделяется на обучающую, к которой применяются методы анализа данных, и тестовую, на которой и проверяется качество работы классификаторов методом оценки средней ошибки классификации. Таким образом, алгоритм имеет две непересекающиеся между собой выборки —  — обучающая выборка и  — тестовая выборка, где mи k-размерность выборки. Для каждой выборки строится алгоритм соответствия между независимыми и зависимой переменной , а также определяется значение функционала качества, оценивающего качество алгоритма  (14):

, (14)

где m-размерность полной выборки (без разбиения),  — функция потерь, отображающая значение вероятности ошибки в работе классификатора.

Величина точности классификатора определяется по следующей формуле (15):

, (15)

где CVпринимает значения от 0 до 1.

Помимо метода кросс-валидации для проверки качества классификатора используются ROC-кривые — графики, показывающие соотношение неправильно определенных позитивных случаев к корректно определенным позитивным случаям (flasepositiverateиtruepositiverate). Алгоритм строит графическое представление доли ложных положительных классификаций (FRP) к доле верных положительных классификаций (TRP) (16), (17):

(16)

,(17)

где a — алгоритм соответствия независимой и зависимой переменной, x — независимая переменная, y — зависимая переменная.

Точность работы классификатора определяется, как размер площади под кривой на графике (см. рис. 1).

Рисунок 1. Точность по ROC-кривой

.3 Инструментальные средства анализа данных

В качестве метода анализа данных и построения модели был выбран язык программирования Pythonв связи с тем, что его библиотеки имеют множество встроенных функций, которые позволяют быстро и эффективно обрабатывать данные. Этот язык является высокоуровневым, поддерживающим различные парадигмы программирования, в том числе и объектно-ориентированное; имеет ряд преимуществ, позволяющих облегчить процесс создания кода, например, отсутствие необходимости задавать тип переменной, понятный и простой синтаксис, а также интеграция с языками программирования С. Среди библиотек Python, которые могут быть полезна для анализа данных и построения моделей, pandas, pylab, matplotlib,numpy и sklearn.

Библиотека pandas используется в основном для предварительной обработки и представления данных. Прежде всего, она содержит объект DataFrame, который позволяет представлять базу данных в виде двумерного массива, а также проводить с ней некоторые манипуляции и действия, такие как создание сводных таблиц, удаление строк и столбцов и наконец, группировка и объединение данных. Pylab и matplotlibв свою очередь используются для построения и визуализации графиков на основе обработанных данных. Данные библиотеки поддерживают большое количество различных графиков и диаграмм — от простых столбчатых диаграмм до сложных графиков с дополнительными осями. NumPy- математическая библиотека, поддерживающая множество математических операций, а также обработку многомерных массивов. И, наконец, Sklearnтакже реализует собой библиотеку с математическими алгоритмами, однако более сложными, чем в библиотеке NumPy, именно в sklearnреализованы функции обучения с учителем, которые позволяют создавать на основе обучающей выборки предсказательные модели.

Существует еще несколько способов анализа данных, например, написание макроса на VBAв Excel, использование SPSSStatistic, а также язык программирования R. Первый способ подразумевает под собой создание кода программы вручную, то есть программирование сложных методов анализа данных, таких как логистическая регрессия или метода опорных векторов, занимает большое количество времени. Более того, Excelпри обработке большого массива данных не хватает производительности, и программа работает довольно медленно, затормаживая процесс создания и редактирования кода. SPSSStatisticв свою очередь также имеет не самую высокую производительность, во встроенных пакетах реализованы не все необходимые для анализа функции и возможности, также данные требуют предварительной подготовки, чтобы программа воспринимала информацию корректно. Наконец, язык программирования Rподдерживает все необходимые функции обучения с учителем, отлично подходит дляанализ статистических данных, также как и Python имеет систему динамических типов, интеграцию с другими языками программирования и является мультипарадигмальным. Однако, создание GUI на языке Rзначительно сложнее и менее успешно реализовано, чем на Python. В связи с этим, так как одной из задач работы является создание интерфейса для пользователя, в качестве инструмента для анализа данных был выбран именно Python.

Для программирования на языке Pythonсуществует несколько сред разработки, самые популярные из них Eric, Eclipse иPyCharm. Именно последняя программа была выбрана для разработки, так как имеет бесплатную версию, имеет высокую производительность и поддерживает реализацию всех необходимых библиотек, а также их удобную и легкую установку. Более того, в PyCharmреализованы возможности интеллектуального редактирования кода (выделение ошибок, автозаполнение по первым буквам команды и т.д.), оптимизации времени работы программного продукта и возможность интегрировать библиотеку визуализации данных.

Для создания интерфейса пользователя была выбрана программа QtDesigner, так как это наиболее удобная программа для создания GUIна языке Python.Содержит в себе встроенную библиотеку       QtFramework, набор виджетов, позволяющий быстро создавать графические представления, а также приложение QtDesignerпозволяет облегчить процесс кодирования с помощью методов оптимизации кода.

Глава 3. Описание практической реализации анализа данных и создания модели

3.1 Описание переменных

Данные используемые для анализа представляют собой базу данных посещений госпиталей Америки больными с диабетом, которые поступали в больницу с осложнениями заболевания, либо с ухудшенным состоянием здоровья. Источником данных является база, собранная за 10 лет (с 1998 по 2008) CernerCorporations, Каназас, Америка. База имеет следующую структуру:(номинальный)- уникальныйномер визита(номинальный) — уникальный номер пациента(номинальный) — раса. В изначальных данных представлен в текстовом формате, имеет значения Caucasian (европиоидная), AfricanAmerican (африканская), Asian (азиатская), Hispanic (латино-американская), Other (другое)(номинальный) — пол пациента(номинальный) — возраст пациента. Представлен в формате диапазонов возраста — от 0 до 100 лет, с промежутками в 10 лет (0-10; 11-20; 21-30 и т.д.)(номинальный) — вес пациента в фунтах. Также как и возраст представлен в формате диапазонов.(номинальный) — тип поступления в госпиталь. Имеет значения:- скорая помощь-срочный перевод из другого отделения- самостоятельное обращение- новорожденный- травматологический центр и еще три значения, отражающие отсутствие записи о типе поступления(номинальный) — заключение по визиту, имеет 29 закодированных значений.

Discharged to home — выписандомой/transferred to another short term hospital — переведенвдругойгоспиталь/transferred to SNF — переведен вотделение Skilled nursing facilities (отделениесуходоммедсестёр забольными)

Discharged/transferredtoICF — переведен в госпиталь ICF, специализирующийся на больных диабетом.

Discharged/transferred to another type of inpatient care institution — переведенвзаведениепоуходузабольнымидругого типа/transferred to home with home health service — выписандомойсобязательнымпосещениемврачанадому

LeftAMA — покинул госпиталь по собственному желанию с отказом в проведении лечения/осмотра

Admitted as an inpatient to this hospital — оставленвстационарегоспиталя

Expired — визит окончен- переведен в хоспис/transferred to a Critical Access Hospital (CAH) — переведенв Critical Access Hospital, занимающийсятяжелымислучаямитечениязаболеваний. А также еще 18 значений, представляющих собой комбинацию выше перечисленных заключений визита.(количественный) — количество дней, проведенных в госпитале(номинальный) — 23 уникальных значения страховой компании.(номинальный) — 84 уникальных значения отделений, в которое поступил больной. Например, кардиология, эндокринология, неврология и прочее.(количественный) — количество проведенных лабораторных тестов для пациента(количественный) — количество других процедур (не анализы), проведенных для пациента(количественный) — количество препаратов, принимаемых пациентом во время нахождения в госпитале(количественный) — количество амбулаторных визитов данного пациента в период времени год до визита.(количественный) — количество поступлений на скорой помощи в аналогичный период(количественный) — количество стационарных визитов в аналогичный период1 (номинальный) — первичный диагноз. Закодировано по ICD9 — интернациональный стандарт классификации заболеваний.

-139: инфекционные и паразитарные болезни

-239: новообразования

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

-279: болезни эндокринной системы, расстройства питания, нарушения обмена веществ и иммунитета

-289: болезни крови и кроветворных органов

-319: психические расстройства

-389: болезни нервной системы и органов чувств

-459: болезни системы кровообращения

-519: болезни органов дыхания

-579: болезни органов пищеварения

-629: болезни мочеполовой системы

-679: осложнения беременности, родов и послеродового периода

-709: болезни кожи и подкожной клетчатки

-739: болезни костно-мышечной системы и соединительной ткани

-759: врождённые аномалии (пороки развития)

-779: отдельные состояния, возникающие в перинатальном периоде

-799: симптомы, признаки и неточно обозначенные состояния

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

-999: травмы и отравления2 (номинальный) — вторичный диагноз. Закодировано по ICD93 (номинальный) — дополнительный вторичный диагноз. Закодировано по ICD9(количественный) — количество диагнозов(номинальный) — значения теста на уровень глюкозы в крови. Значения: “>200,” “>300,” “normal,” и “none” если не измерялосьc testresult (номинальный) — результаты теста на гликированный гемоглобин(номинальный) — изменения в принимаемых лекарствах (было ли изменение, или нет)(номинальный) — прописаны ли лекарства от диабета

featuresformedications (номинальный) — факт принятия пациентом лекарства (24 столбца с наиболее распространенными лекарствами, принимаемые диабетиками)(номинальный) — показатель реадмиссии пациента. Вернулся в госпиталь после выписки с ухудшенным состоянием меньше чем через 30 дней (2), больше чем через 30 дней (1), не вернулся (0)

3.2 Предварительный анализ данных

Прежде всего, имеющиеся данные в формате csv были загружены в среду разработки с помощью модуля библиотеки pandas, функции pandas.read_csv. Первым шагом в подготовке данных для анализа было изучение переменных на количество недостающих данных. В изначальных данных все ситуации отсутствия информации по записи обозначались через «?», таким образом, чтобы выявить все пропуски был произведен подсчет значений, равных «?» по каждому из параметров. Ниже приведены параметры, с полученными значениями процента недостающих данных: раса — 2%; вес — 97%; страховая компания — 40%; отделение, в которое поступил пациент — 49%; дополнительный вторичный диагноз — 1%. В связи с большим количеством пропусков, переменные вес, страховая компания и отделение были исключены из анализа, так как не предоставляется возможным с помощью методов исключения шумов из выборки заполнить значениями недостающие данные. Недостающая информация для расы и дополнительного вторичного диагноза была заполнена искусственно, используя подстановку значения медианы по данным параметрам из всей имеющейся выборки.

Далее, был проведен анализ выбросов по оставшимся параметрам с помощью boxplot, который показывает медиану выборки, максимальное и минимальное значение, верхний и нижний квартили, а также выбросы. Например, переменная возраста имеет один выброс, который, учитывая размер выборки не влияет на качество предсказаний с использованием данного параметра, а, значит, возраст можно учитывать при анализе (см. рис. 2, 3, 4):

Рисунок 2. BoxPlot для переменной «Возраст»

В ходе данного анализа были выявлены две переменные с большим количеством выбросов, которые влияют на качество работы модели — дополнительный вторичный диагноз и прием росиглитазона:

Рисунок 3. BoxPlot для переменной «Прием росиглитазона»

Рисунок 4. BoxPlot для переменной «Дополнительный вторичный диагноз»

Большое количество выбросов для дополнительного вторичного диагноза может быть объяснено тем, что данная графа в карте пациента является обязательной для заполнения, но считается многими врачами второстепенной, в связи с чем заполняется не всегда корректно. Прием росиглитазона в свою очередь может объясняться некорректным сбором данных из анкет пациентов, так как по умолчанию данная переменная должна принимать только два значения — 0 (в случае, если лекарство не принимается) и 1 (в случае, если больной принимает данный медикаментозный препарат). Как можно увидеть на графике, значение этой переменной колеблется от 0 до 30, что говорит о некорректности данных. Дополнительный вторичный диагноз и прием росиглитазона были исключены из дальнейшего анализа и построения модели на основании проведенного анализа.

По результатам обнаружения выбросов, а именно результатов, связанных с переменной «прием росиглитазона» было принято решение проверить валидность данных. Для этого из каждого параметра были выбраны уникальные значения (удалены дубликаты), которые были сопоставлены с областью значений для данных переменных. В результате данного анализа не было выявлено ни одного параметра с невалидными значениями.

Далее, был проведен анализ влияния поставленных диагнозов на результат реадмиссии, было выявлено, что заболевания, относящиеся к одной группе в классификации ICD9 имеют примерно одинаковую степень влияния на зависимую переменную. Поэтому, было принято решение, искуственно заменить коды заболеваний на коды групп, соответственно 1 для заболеваний группы инфекционных и паразитарных заболеваний, 2 — новообразования и так далее.

Следующим шагом был проведен анализ one-wayANOVA, позволяющий определить корреляцию переменных между собой. В Pythonданный метод реализуется с помощью библиотеки scipy, модуля stats, функции f_oneway. Данный метод на входе запрашивает наименования параметров, между которыми необходимо определить статистическую значимость, а на выходе возвращает значения f-value(F-критерий Фишера) и p-value(вероятность ошибки первого рода). Полученное f-valueсравнивается с табличным значением F, в случае, если фактическое Fменьше, чем F табличное, то это показывает ненадежность выбранной модели регрессии и низкое качество предсказаний. Табличное значение Fравно 0.98 (k1 — количество факторов = 47, k2 — количество наблюдений-количество факторов 101720, уровень значимости — 0,05), полученное с помощью ANOVAзначение равно 17.55, соответственно модель можно признать статистически значимой. Для окончательного подтверждения возможности использовать оставшиеся параметры для построения модели, необходимо сравнить полученное p-value с уровнем значимости, выбранным для модели. P-value = 0.15, уровень значимости равен 0,01, так как p-value больше уровня значимости, модель можно принять и использовать все, неисключенные до этого из анализа переменные.

После проделанных выше шагов данные готовы к использованию в построении модели. Как уже было сказано выше, для обучения модели будут использоваться следующий методы — рандомный лес, метод k-блиажйших соседей, логистическая регрессия и наивный баесовский классификатор. Данные методы будут применены к обучающей выборке, составляющей 80% от имеющихся данных, результат их работы проверен на тестовой выборке, составляющей оставшиеся 20%. Прежде, чем применять методы к данным, необходимо выбросить из выборки параметры, которые на предыдущих шагах были исключены из анализа, а также целевую переменную (readmitted) и параметры, представляющие собой id пациента и визита.= diabetic_data.drop([‘weight’,’payer_code’,’patient_nbr’,’encounter_id’,’diag_3′,’rosiglitazon’,’readmitted’],axis=1)

3.3 Применение классификаторов

После финальной подготовки данных, необходимо подобрать оптимальные параметры к каждому методу. Для этого применяем кросс-валидацию к каждому из методов с различными параметрами, которая позволяет проверить каждый метод на вероятность ошибки и показывает точность его результатов. Ниже приведены результаты работы классификаторов с вариацией параметров:. Представляет собой «коммитет» из деревьев решений, которые принимают решение методом голосования большинства деревьев. Само по себе дерево решений представляет собой граф, представленный ветками (репрезентуют значимые атрибуты, влияющие на значение целевой переменной) и листьями (показывают непосредственно само значение атрибута). При каждом новом случае, алгоритм прогоняет его по каждому из деревьев решений, получает значение от каждого дерева и возвращает финальный результат — значение, выбранное большинством деревьев. В Pythonклассификатор sklearn.ensemble.RandomForestClassifierпринимает на вход значение параметра n_estimator, отвечающего за количество деревьев (см. рис. 5):

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

n_estimator = 10_estimator = 30_estimator = 2

n_estimator = 50_estimator = 80 — с данным количеством деревьев метод дает наилучший результат. Точность 0,83. Данное количество параметров было выбрано, так как и при уменьшении, и при увеличении количества деревьев, классификатор показывает более плохой результат точности, чем при n=80._estimator = 150

Рисунок 5. Кросс-валидация для метода рандомных деревьев

Метод k-ближайших соседей.Данный классификатор предлагает для каждого нового кейса результат, который выдают большинство из его ближайших соседей. Соответственно, изменяемый параметр данного метода — n_neighbours (количество ближайших соседей) (см.рис.6)_neighbours = 20 — при данном количестве соседей классификатор показывает наилучший результат. Точность 0,79. Аналогично случаю с рандомным лесом, как уменьшение, так и увеличение числа соседей приводят к ухудшению работы классификатора.

n_neighbours = 50_neighbours = 100_neighbours = 5

Рисунок 6. Кросс-валидация для метода ближайших соседей

Логистическая регрессия. Модель классификации, определяющая параметры уравнения регрессии путем подгонки данных из выборки под логистическую кривую. Для каждого нового случая, модель применяет параметры, полученные на тестовой выборке к новому примеру.В рамках решаемой задачи будет использоваться мультиноминальная регрессия, так как целевая переменная принимает больше двух значений, соответственно параметр мультиноминальности будет принимать значение multi_class=’ovr’ Изменяемые параметры в Python — penalty определяет метод для учета ошибки первого рода в регрессии, tol- уровень значимости (см.рис. 7).

Penalty = l2, tol = 0.0001= l1, tol = 0.0001

Penalty = l1, tol = 0.001= l2, tol = 0.01 — cтаким набором параметров модель дает наилучший результат. Точность 0,85. = l2, tol = 0.001

Рисунок 7. Кросс-валидация для логистической регрессии

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

3.4 Оценка качества работы классификаторов

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

На графике слева направо представлен результат работы всех классификаторов (см.рис.8):

Наинвыйбаесовский классификатор — точность 0,28

Метод ближайших соседей — точность 0,79

Метод случайного леса — точность 0,83.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Логистическая регрессия — точность 0,85

Рисунок 8. Кросс-валидация для всех классификаторов

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

Помимо метода кросс-валидации для проверки качества классификатора используются ROC-кривые — графики, показывающие соотношение неправильно определенных позитивных случаев к корректно определенным позитивным случаям (flasepositiverateи truepositiverate). В связи с тем, что в данной выборке целевая переменная принимает больше, чем два значения, то необходимо строить ROC-кривую для каждого из значений целевой переменной, а потом представлять на графике среднее для всех значений зависимого параметра. Данный алгоритм реализуется следующим образом:= diabetic_data.readmitted — определяем целевую переменную

# Binarizetheoutput — представляем значения целевой переменной в бинарном виде

target = label_binarize(target, classes=[0, 1, 2])_classes = target.shape[1]in range (n_classes): -запускаемциклдлякаждогозначенияцелевойпеременной[i], tpr[i], _= roc_curve([Применениеклассификатора][:,i], y_score[:, i])_auc[i] = auc(fpr[i], tpr[i])

Результат работы данного алгоритма представлен ниже (см. рис.9):

Рисунок 9. ROC-кривые для классификаторов

Таким образом, и в анализе через ROC-кривые наилучшим образом себя показала именно логистическая регрессия. В связи с этим именно данный классификатор будет использоваться для предсказания целевой переменной.

Прежде, чем начать реализацию интерфейса для конечного пользователя, необходимо проверить и интерпретировать результат работы выбранного классификатора. Первым шагом, получаем коэффициенты линейной регрессии, далее необходимо провести интерпретацию полученных результатов, а также проверить значимость полученных коэффициентов с помощью t-статистики.В случае, если полученное значение статистики больше, чем табличное значение, то коэффициенты признаются значимыми. В данном случае все коэффициенты признаны статистически значимыми, так как значение t-статистики больше, чем (уровень значимости 0,01, степени свободы = 101470 (n-k-1)). Данные представлены в таблице 3 (синим выделены положительные коэффициенты, красным — отрицательные)

Таблица 3. Коэффициенты логистической регрессии

 

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

Таким образом, наиболее весомыми факторами, влияющими на возможную реадмиссию являются пол, возраст, тип поступления в госпиталь, количество проведенных лабораторных тестов и процедур, первичный диагноз, а также результаты теста HbA1C. Последние три показателя прямо говорят о том, что тщательный подход к лечению больного может благоприятно сказаться на его состоянии после завершения лечения. Однако, несмотря на то, что остальные показатели оказывают не такое сильное влияние на целевую переменную, в интерфейсе пользователю необходимо вести все эти значения, для более точной работы модели. Более того, все полученные коэффициенты регрессии являются статистически значимыми, что доказывают показатели t-статистики каждого параметра.

3.5 Интерфейс пользователя

Интерфейс пользователя выглядит следующим образом (см. рис.10):

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Рисунок 10. Интерфейс пользователя

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

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

Раса — выпадающий список, недоступно ввести собственное значение

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

Возраст — числовое поле, не более 100 лет

Тип поступления — выпадающий список, недоступно ввести собственное значение

Заключение — выпадающий список, недоступно ввести собственное значение

Дней в госпитале — числовое поле

Отделение — выпадающий список, недоступно ввести собственное значение

Кол-во тестов — числовое значение

Кол-во процедур — числовое значение

Кол-во препаратов — числовое значение

Кол-во посещений до — числовое значение

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Первичный диагноз — выпадающий список, недоступно ввести собственное значение

Вторичный диагноз — выпадающий список, недоступно ввести собственное значение

Тест на глюкозу — числовое значение

Тест HbA1c — числовое значение

Обязательные отметки на препараты

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

После того, как пользователь ввел все данные и нажал кнопку «ОК», программа записывает все полученные значения в массив и выдает результат с помощью функции test.return= model_lr_5.fit([Массив_Данных]). Было проведено несколько тестов программы, во всех случаях выдавался логичный результат по реадмисии.

Например, для следующих значений (см. Таблицу 4) результат реадмиссии =2, то есть ожидается возвращение больного в период меньше 30 дней.

Таблица 4. Данные для теста программы

 

Полученный результат совпадает с ожидаемым, так как вторичным диагнозом больного является заболевание системы кровообращения, для него не проводился тест HbA1c, он принимает большое количество лекарств, среди которых есть глипизид и пиоглитазон, что говорит о высокой вероятности реадмиссии.Также были рассмотрены еще два примера классификации на основе разработанной модели. Во втором случае (см. Приложение 1) программа предсказывает результат реадмиссии 2, что также является наиболее плохим случаем (возвращение менее чем через 30 дней). Данный результат является валидным, так как наиболее значимые показатели указывают на то, что пациент действительно находится в группе риска -возрастная группа пациента (50-60 лет), мужской пол, болезни системы кровообращения, относительно небольшое количество проведенных процедур, наличие множества заболеваний и диагнозов, отсутствие проведения теста HbA1c, прием лекарств с побочными эффектами. В последнем же случае (см. Приложение 2), пациент находится вне зоны риска, что и предсказывается моделью в качестве значения реадмиссии 0 — молодой возраст пациента, сопутствующие заболевания, не оказывающие влияние на течение диабета, раса, менее всего предрасположенная к осложнениям, большое количество проведенных процедур, корректное назначение лекарств, а также проведение теста HbA1C. При дальнейшем тестировании и валидации результатов работы программы некорректности в предсказывании показателя реадмиссии также обнаружено не было.

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

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

Заключение

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

В ходе данной работы была выполнено построение моделей с помощью нескольких алгоритмов классификации методов машинного обучения. В качестве инструментальных методов реализации поставленной задачи был выбран программный продукт PyCharm, представляющий собой среду разработки на языке программирования Python. В данной программе был проведен первоначальный анализ данных с помощью методов boxplot, позволяющий выявить выбросы выборки, а также такие показатели, как минимальное и максимальное значение, медиана; и анализа ANOVA, позволяющего вычислить зависимости и корреляции между переменными начального dataset. Для создания модели использовались наиболее подходящие классификаторы с оптимальными для данной выборки параметрами — метод рандомного леса, k-ближайщих соседей, наивный Баесовский классификатор и логистическая регрессия. Далее была проведена оценка точности работы классификаторов с помощью методов скользящего контроля (кросс-валидация) и ROC-кривых, наилучшим образом себя показала логистическая регрессия, поэтому именно она была выбрана для дальнейшего построения модели. После разработки модели были выявлены значимые показатели, влияющие на целевую переменную — реадмиссия зависит отпервичного диагноза пациента, его пола, возраста, количества проведенных лабараторных испытаний, а также от назначенных лекарств, а именно глипизида и пиоглитазона. Для удобства конечных пользователей программы в среде разработкиQtDesigner был разработан интерфейс пользователя, позволяющий предсказать реадмиссию для каждого нового пациента.В качестве дальнейших перспектив развития данной работы может быть рассмотрена рекомендательная модель для медицинских учреждений, позволяющая подобрать оптимальное лечение для каждого конкретного пациента.Рекомендательная модель включает в себя потенциал учета большого количества внешних факторов, влияющих на возможность применения рекомендуемых методов лечения (бюджетные средства, особенности географической области применения, доступность необходимых лекарственных средств и др.), а также непосредственно возможность подбирать для каждого пациента индивидуальную программу лечения.

Список литературы.

Российская организация борьбы с диабетом.URL: http://www.dialand.ru/, дата обращения 23.02.2017

Материал для журнала «Клинико-лабораторный консилиум» № 3-2009, URL: http://www.analytica.ru/news.php?id=103 , дата обращения 24.02.2017

Всемирная организация здравоохранения. URL: http://www.who.int/diabetes/ru/, дата обращения 18.02.2017

Глобальное комьюнити по диабету. URL: http://www.diabetes.co.uk/what-is-hba1c.html, дата обращения 16.04.2017

И. И. Никберг, И. А. Чайковский, М. С. Ахманов. Лечение диабета в XXI веке. Реальность, мифы, перспективы. — СПб.: Вектор, 2011

Тюкавкина Н.А., Бауков Ю.И. Биоорганическая химия.- М.: Медицина, 1985.- 480 с.

Различия сахарного диабета, I и II типа (по Этцвиллеру, 1987)

David B. Sacks. Measurement of hemoglobinA1c. A new twist on the path to harmony. Diebates Care 35(12): 2674-2680, 2012K. Standardization of HbA1c and optimal range of monitoring. Scand J Clin Lab Invest Suppl 240: 61-72, 2005ens Lytken Larsen, Mogens Hørder and Erik F. Mogensen. Effect of long-term monitoring of glycosylated hemoglobin levels in insulin-dependent diabetes mellitus. NEnglJMed 323(15):1021-1025, 1990

J. Ross Quinlan. C4.5: Programs for Machine learning. MorganKaufmannPublishers 1993

Лагутин М. Б. Наглядная математическая статистика. (Том 2, стр. 174) — М.: П-центр, 2003.

S.Murthy. Automatic construction of decision trees from data — A Multi-disciplinary survey, 1997

Загоруйко Н.Г. Прикладные методы анализа данных и значний. Новосибирск: ИМ СО РАН, 1999

Журавлев Ю.И. и пр. Математические методы. Программная система. Практические применения. — М.: Фазис, 2006

Валик В.Н., Червоненкис А.Я. Теория распознования образов — М.: Наука, 1974.

Trevor Hastie, Robert Tibshirani and Jerome H. Friedman. The elements of statistical learning — Stanford: Springer, 2009

Воронцов К. В. Комбинаторный подход к оценке качества обучаемых алгоритмов. — Математические вопросы кибернетики / Под ред. О. Б. Лупанов. — М.: Физматлит, 2004. — T. 13. — С. 5-36., David J. Measuring classifier performance: A coherent alternative to the area under the ROC curve, Machine Learning, 77: 103-123, 2009

Сайт языка программирования python. URL: https://www.python.org/ , дата обращения 08.05.2017

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Сайт программного продукта PyCharm. URL: https://www.jetbrains.com/pycharm/ , дата обращения 08.05.2017

Сайт программного продукта QtDesigner. URL: https://www.qt.io/ide/ , дата обращения 08.05.2017

Кодировка ICD9. URL: http://icd9.chrisendres.com/, дата обращения 16.04.2017

Breiman, Leo (2001). Random forests. Machine Learning 45 (1): 5-32, N. S. (1992). An introduction to kernel and nearest-neighbor nonparametric regression. The American Statistician. 46 (3): 175-185., William H. (2012). Econometric analysis (Seventh ed.). Boston: PearsonEducation. pp. 803-807.

Приложение 1

Данные для теста программы, значение реадмиссии 2

Приложение 2

Данные для теста программы, значение реадмиссии 0.

Приложение 3

Код программы на языке Python

import csvpandaspylabas plmatplotlib.pyplotas mtbpandas import DataFrame, Seriessklearnitertoolsimport izipsklearn.preprocessingimport LabelEncodernumpyas npresklearnimport cross_validation, svmsklearn.neighborsimport KNeighborsClassifiersklearn.ensembleimport RandomForestClassifiersklearn.linear_modelimport LogisticRegressionsklearnimport metricssklearn.naive_bayesimport GaussianNBsklearn.metricsimport roc_curve, aucpylabas pl

#BoxPlotpandasmatplotlib.pyplot as plt_data = pandas.read_csv(‘C:/nominal_diabetic.csv’,’,’)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#ANOVApandasscipy.statsas st_data = pandas.read_csv(‘C:/data.csv’,’,’)= diabetic_data.readmitted= diabetic_data.drop([‘weight’,’payer_code’,’patient_nbr’,’encounter_id’,’diag_3′,’rosiglitazon’,’readmitted’],axis=1)= 5_val ={}_knc_1 = KNeighborsClassifier(n_neighbors= 19)= cross_validation.cross_val_score(model_knc_1, train, target, cv = kfold)_val[‘KNeighborsClassifier1′] = scores.mean().from_dict(data = itog_val, orient=’index’).plot(kind=’bar’, legend=False)

#.show()

#.clf().figure(figsize=(8,6))

#print diabetic_data.head()

#diabetic_data_1=pandas.get_dummies(diabetic_data, columns=[])= 5_val ={}

# model_rfc = RandomForestClassifier(n_estimators = 50)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

# model_rfc_1 = RandomForestClassifier(n_estimators = 10)

# model_rfc_2 = RandomForestClassifier(n_estimators = 2)

# model_rfc_3 = RandomForestClassifier(n_estimators = 30)_rfc_4 = RandomForestClassifier(n_estimators= 80)

# model_rfc_5 = RandomForestClassifier(n_estimators = 150)_knc_1 = KNeighborsClassifier(n_neighbors= 19)_lr = LogisticRegression(penalty=’l2′, tol=0.0001,multi_class=’ovr’)_lr_1 = LogisticRegression(penalty=’l1′, tol=0.0001)_lr_2 = LogisticRegression(penalty=’l1′, tol=0.001)_lr_3 = LogisticRegression(penalty=’l2′, tol=0.001,multi_class=’ovr’)_lr_4 = LogisticRegression(penalty=’l2′, tol=0.1,multi_class=’ovr’)_lr_5 = LogisticRegression(penalty=’l2′, tol=0.01,multi_class=’ovr’)

#model_svc = svm.SVC()_naiv = GaussianNB()

# Binarize the output= label_binarize(target, classes=[0, 1, 2])_classes = target.shape[1]

#

# print target, ROCtestTRN, ROCtrainTRG, ROCtestTRG = cross_validation.train_test_split(train, target, test_size=0.25, random_state=0)

#model =model_lr_5.fit(ROCtrainTRN, ROCtrainTRG).coef_

#print model

#= OneVsRestClassifier(RandomForestClassifier(n_estimators=80))_score = classifier.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# plt.figure()

»’print y_score»’=2

# Random Forest= dict()= dict()_auc = dict()i in range (n_classes):[i], tpr[i], _= roc_curve(ROCtestTRG[:,i], y_score[:, i])_auc[i] = auc(fpr[i], tpr[i]).plot(fpr[2], tpr[2], lw=lw, label=’Random Forest (area = %0.2f)’ % roc_auc[2])

#KNeighborsClassifier= OneVsRestClassifier(KNeighborsClassifier(n_neighbors= 19))_score = classifier.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)= dict()= dict()_auc = dict()i in range (n_classes):[i], tpr[i], _= roc_curve(ROCtestTRG[:,i], y_score[:, i])_auc[i] = auc(fpr[i], tpr[i]).plot(fpr[2], tpr[2], lw=lw, label=’K-neighbors (area = %0.2f)’ % roc_auc[2])

#LogisticRegression= OneVsRestClassifier(LogisticRegression(penalty=’l2′, tol=0.01,multi_class=’ovr’))_score = classifier.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)= dict()= dict()_auc = dict()i in range (n_classes):[i], tpr[i], _= roc_curve(ROCtestTRG[:,i], y_score[:, i])_auc[i] = auc(fpr[i], tpr[i]).plot(fpr[2], tpr[2], lw=lw, label=’Logistic Regression (area = %0.2f)’ % roc_auc[2])

#naivBaes= OneVsRestClassifier(GaussianNB())_score = classifier.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)= dict()= dict()_auc = dict()i in range (n_classes):[i], tpr[i], _= roc_curve(ROCtestTRG[:,i], y_score[:, i])_auc[i] = auc(fpr[i], tpr[i]).plot(fpr[2], tpr[2], lw=lw, label=’NaivBaes (area = %0.2f)’ % roc_auc[2])

#SVC

# classifier = OneVsRestClassifier(svm.SVC())

# y_score = classifier.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# fpr = dict()

# tpr = dict()

# roc_auc = dict()

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

# for i in range (n_classes):

# fpr[i], tpr[i], _= roc_curve(ROCtestTRG[:,i], y_score[:, i])

# roc_auc[i] = auc(fpr[i], tpr[i])

# plt.plot(fpr[2], tpr[2], lw=lw, label=’SVC (area = %0.2f)’ % roc_auc[2])

# Compute micro-average ROC curve and ROC area

»’fpr[«micro»], tpr[«micro»], _ = roc_curve(ROCtestTRG.ravel(), y_score.ravel())_auc[«micro»] = auc(fpr[«micro»], tpr[«micro»])»’

#plot a ROC curve= 2

»’plt.plot(fpr[2], tpr[2], color=’darkorange’,=lw, label=’ROC curve (area = %0.2f)’ % roc_auc[2])»’.plot([0, 1], [0, 1], color=’navy’, lw=lw, linestyle=’—‘).xlim([0.0, 1.0]).ylim([0.0, 1.05]).xlabel(‘False Positive Rate’).ylabel(‘True Positive Rate’).title(‘Receiver operating characteristic example’).legend(loc=»lower right»).show()

# First aggregate all false positive rates

#

# scores = cross_validation.cross_val_score(model_rfc, train, target, cv = kfold)

# itog_val[‘0RandomForestClassifier’] = scores.mean()

#

# scores = cross_validation.cross_val_score(model_knc_1, train, target, cv = kfold)

# itog_val[‘KNeighborsClassifier1’] = scores.mean()

#PARAMETERS FOR RANDOM FOREST

# scores = cross_validation.cross_val_score(model_rfc, train, target, cv = kfold)

# itog_val[‘model_rfc’] = scores.mean()

# scores = cross_validation.cross_val_score(model_rfc_1, train, target, cv = kfold)

# itog_val[‘model_rfc_1’] = scores.mean()

# scores = cross_validation.cross_val_score(model_rfc_2, train, target, cv = kfold)

# itog_val[‘model_rfc_2’] = scores.mean()

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

# scores = cross_validation.cross_val_score(model_rfc_3, train, target, cv = kfold)

# itog_val[‘model_rfc_3’] = scores.mean()= cross_validation.cross_val_score(model_rfc_4, train, target, cv = kfold)_val[‘model_rfc_4’] = scores.mean()

# scores = cross_validation.cross_val_score(model_rfc_5, train, target, cv = kfold)

# itog_val[‘model_rfc_5’] = scores.mean()

#PARAMETERS FOR LOGISTIC REGRESSION

# scores = cross_validation.cross_val_score(model_lr, train, target, cv = kfold)

# itog_val[‘model_lr’] = scores.mean()

# scores = cross_validation.cross_val_score(model_lr_1, train, target, cv = kfold)

# itog_val[‘model_lr_1’] = scores.mean()

# scores = cross_validation.cross_val_score(model_lr_2, train, target, cv = kfold)

# itog_val[‘model_lr_2’] = scores.mean()

# scores = cross_validation.cross_val_score(model_lr_3, train, target, cv = kfold)

# itog_val[‘model_lr_3’] = scores.mean()

# scores = cross_validation.cross_val_score(model_lr_4, train, target, cv = kfold)

# itog_val[‘model_lr_4’] = scores.mean()

# scores = cross_validation.cross_val_score(model_lr_5, train, target, cv = kfold)

# itog_val[‘model_lr_5’] = scores.mean()

# scores = cross_validation.cross_val_score(model_svc, train, target, cv = kfold)

# itog_val[‘SVC’] = scores.mean()

# scores = cross_validation.cross_val_score(model_naiv, train, target, cv = kfold)

# itog_val[‘naiv’] = scores.mean()

# #

# DataFrame.from_dict(data = itog_val, orient=’index’).plot(kind=’bar’, legend=False)

# #

# pl.show()

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

# #

# pl.clf()

# pl.figure(figsize=(8,6))

»’#SVC_svc.probability = True= model_svc.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN), tpr, thresholds = roc_curve(ROCtestTRG, probas[:, 1])_auc = auc(fpr, tpr).plot(fpr, tpr, label=’%s ROC (area = %0.2f)’ % (‘SVC’, roc_auc))»’

#RandomForestClassifier

# probas = model_rfc.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# fpr, tpr, thresholds = roc_curve(ROCtestTRG, probas[:, 1])

# roc_auc = auc(fpr, tpr)

# pl.plot(fpr, tpr, label=’%s ROC (area = %0.2f)’ % (‘RandonForest’,roc_auc))

# #KNeighborsClassifier

# probas = model_knc_1.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# roc_auc = auc(fpr, tpr)

# pl.plot(fpr, tpr, label=’%s ROC (area = %0.2f)’ % (‘KNeighborsClassifier’,roc_auc))

# #LogisticRegression

# probas = model_lr.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# fpr, tpr, thresholds = roc_curve(ROCtestTRG, probas[:, 1])

# roc_auc = auc(fpr, tpr)

# pl.plot(fpr, tpr, label=’%s ROC (area = %0.2f)’ % (‘LogisticRegression’,roc_auc))

# #naivBaes

# probas = model_naiv.fit(ROCtrainTRN, ROCtrainTRG).predict_proba(ROCtestTRN)

# fpr, tpr, thresholds = roc_curve(ROCtestTRG, probas[:, 1])

# roc_auc = auc(fpr, tpr)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

# pl.plot(fpr, tpr, label=’%s ROC (area = %0.2f)’ % (‘NaivBaes’,roc_auc)).plot([0, 2], [0, 2], ‘k—‘).xlim([0.0, 2.0]).ylim([0.0, 2.0]).xlabel(‘False Positive Rate’).ylabel(‘True Positive Rate’).legend(loc=0, fontsize=’small’)

pl.show()

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

398

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке