Анализ реадмиссии пациентов на основе логистической регрессии

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.06.2017
Размер файла 625,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Оглавление

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

Введение

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

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

Современные методики лечения диабета подразумевают под собой тщательный мониторинг течения заболевания и уровня глюкозы в крови, а также, при необходимости, прием лекарственных средств, прописанных врачом. Например, на данный момент, одним из самых высокоточных тестов для отслеживания уровня глюкозы в крови является тест на гликированный гемоглобин (HbA1c), который на основе уровня гемоглобина в крови, непосредственно связанного с глюкозой, позволяет отражать среднее содержание сахара в крови в динамике до трех месяцев.URL: http://www.diabetes.co.uk/what-is-hba1c.html, дата обращения 16.04.2017 Данный тест является более точным и высококачественным, чем обычный тест на глюкозу, отражающий уровень глюкозы в крови на текущий момент. Однако тест на гликированный гемоглобин до сих пор проводится только в исключительных случаях в связи с отсутствием дорогостоящего оборудования в больницах, а также недостаточного внимания к профилактике и мониторингу сахарного диабета.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В ходе работы использовались следующие программные продукты:

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

PyCharmCommunityEdition -среда разработки на языке программирования Python. Использовалась для обработки данных, а также создания модели.

QtDesigner - приложение для создания GUIдля пользователя на основе программного языка Python.

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

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

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

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

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

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

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

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

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

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

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

 Возраст

Уровень глюкозы, ммоль/л

< 14 лет

3,33 - 5,55

14 - 60 лет

3,89 - 5,83

60 - 70 лет

4,44 - 6,38

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

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

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

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

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

Результат анализа, %

Уровень HbA1c

<6.5

Нормальные результаты

6.6 - 8.0

Слегка повышенный уровень

8.1 - 10.0

Повышенный уровень

>10.1

Значительно повышенный уровень

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

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

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

Анализ первых примеров применения HbA1c показал, что ранняя имплементация гликированного гемоглобина не была отмечена большим успехом. Во-первых, на этом сказалось отсутствие необходимого оборудования, которое являлось очень дорогостоящим и в связи с этим недоступным для каждой больницы. Кроме того, первые приборы для проведения теста не обладали высокой точностью, поэтому значение теста HbA1C в мониторинге диабета было недооценено. И, наконец, только 50% больниц и клиник, сообщали о своих результатах в мониторинге гликированного гемоглобина, что не позволило понять полную картину и оценить преимущества и результаты тест HbA1c.David B. Sacks. Measurement of hemoglobinA1c. A new twist on the path to harmony. Diebates Care 35(12): 2674-2680, 2012

С другой стороны, более поздние упоминания и эксперименты сHbA1c были более успешными. В своей статье «StandardizationofHbA1candOptimalRangeofMonitoring»Мидема К. показал, что стандартизация HbA1cположительно повлияли на контроль состояния диабета, а также своевременное предупреждение осложнений, вызванных данным заболевнием. Он показал, что ежеквартальное проведение гликированного гемоглобина для каждого пациента больницы позволит не только назначать лечение диабета должным образом, но и обнаруживать диабет на ранних стадиях и даже предрасположенность к этому заболеванию. Более того, автор в своей статье предложил несколько путей улучшения анализа на гликировнный гемоглобин - изменение референсной системы теста, модернизация непосредственно лабораторного анализа и, наконец, стандартизация теста HbA1c во всем мире.Miedema K. Standardization of HbA1c and optimal range of monitoring. Scand J Clin Lab Invest Suppl 240: 61-72, 2005

Тем не менее, несмотря на мощный теоретические доказательства значимости проведения анализагликированного гемоглобина, тест HbA1c до сих пор не проводится во всех медицинских учреждениях мира. Одной изпричин этого является отсутствие практических доказательств эффективности HbA1c. Большинство больниц и клиник не хотят полагаться только на теоретических доклады, им нужны реальные доказательства на практических примерах. В связи с этим, в 1990 году группа исследователей во главе с Могенсом провели эксперимент, в котором на выборке пациентов больных сахарным диабетом доказали, что проведение HbA1c, назначение корректных лекарств, внимание к лечению больного влечет за собой более редкую реадмиссию к прошлому состоянию. Выборка состояла из 240 пациентов - 107 из них сдавали обычные тесты на глюкозу, а 133 были в группе с контролем гликированного гемоглобина каждые четыре месяца в течение двух лет, также они проходили еженедельную консультацию у врача и, в случае необходимости, корректировку назначенных лекарств и оказываемого лечение. Это исследование показало, что вторая группа получали более эффективное лечение, и уровень гликированного гемоглобина среди этой группы снизился на 10%, что демонстрирует высокий уровень мониторинга состояния больного и более качественное назначение лечения.MogensLytken Larsen, MogensHш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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Метод C 4.5 представляет собой алгоритм, который для построения дерева разбивает выборку на nподмножеств, которые в свою очередь рекурсивно также разбиваются на kподмножеств, так продолжается до момента, пока каждое множество не будет содержать конечный единичный пример. C 4.5 содержит информацию о том, каким образом и в каком количестве примеры распределены между подмножествами, для определения принадлежность к классу используется следующий алгоритм J. Ross Quinlan. C4.5: Programs for Machine learning. MorganKaufmannPublishers 1993:

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

(1)

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

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

(2)

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

(3)

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

(4)

Алгоритм построения деревьев решений CHAIDдля определения класса объекта использует максимизацию критерия хи-квадрат - выбирается класс, для которого это значение максимально. Данный критерий используется для проверки нулевой гипотезы, где распределение критерия имеет распределение хи-квадрат - полученное фактическое значение сравнивается с табличным, в случае, если фактическое значение больше, чем табличное, то гипотеза отвергается, в противном случае - принимается Лагутин М. Б. Наглядная математическая статистика. (Том 2, стр. 174) -- М.: П-центр, 2003..

В ходе данной работы дерево строится по алгоритму CART, который позволяет строить бинарные деревья решения (каждый узел дерева разбивается только на два дочерних узла). Данный алгоритм разбивает обучающую выборку на подмножества по значению зависимой переменной, в процессе создания дерева CARTподбирает параметры, по которым будет разбиваться выборка, по принципу максимизации значения следующего показателяS.Murthy. Automatic construction of decision trees from data - A Multi-disciplinary survey, 1997 (5):

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

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

, (6)

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

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

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

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

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

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

Следующий довольно распространенный метод для анализа данных - метод k-ближайших соседей, который основывается на оценке похожести объектов, располагающихся на отрезке kот изучаемого объекта. Алгоритм выбирает все объекты, которые находятся на расстоянии kот объекта, и среди них находит те, которые имеют самое большое значения для изучаемого объекта, и относит его к их классуЗагоруйко Н.Г. Прикладные методы анализа данных и значний. Новосибирск: ИМ СО РАН, 1999.

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

}, (7)

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

, (8)

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

,(9)

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

В отличие от алгоритма деревьев решений, метод k-ближайших соседей неустойчив к шумам в выборке, однако также дает довольно хорошие и валидные результаты на больших выборках Журавлев Ю.И. и пр. Математические методы. Программная система. Практические применения. - М.: Фазис, 2006.

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

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

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

, (10)

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

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

, (11)

где - аспостериорная вероятность (вероятность после проведения эксперимента) того, что объект принадлежит к определенному классу Валик В.Н., Червоненкис А.Я. Теория распознования образов - М.: Наука, 1974..

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

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

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

,(12)

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

Принцип работы логистической регресии основан на том, чтобы по элементам обучающей выборки вычислить вектор весов и с его помощью классифицировать последующие объекты (13) Trevor Hastie, Robert Tibshirani and Jerome H. Friedman. The elements of statistical learning - Stanford: Springer, 2009

(13)

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

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

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

, (14)

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

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

, (15)

где CVпринимает значения от 0 до 1.Воронцов К. В. Комбинаторный подход к оценке качества обучаемых алгоритмов. -- Математические вопросы кибернетики / Под ред. О. Б. Лупанов. -- М.: Физматлит, 2004. -- T. 13. -- С. 5-36.

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

(16)

,(17)

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

Точность работы классификатора определяется, как размер площади под кривой на графике (см. рис. 1). Hand, David J. Measuring classifier performance: A coherent alternative to the area under the ROC curve, Machine Learning, 77: 103--123, 2009

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

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

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

Библиотека 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реализованы возможности интеллектуального редактирования кода (выделение ошибок, автозаполнение по первым буквам команды и т.д.), оптимизации времени работы программного продукта и возможность интегрировать библиотеку визуализации данных.URL: https://www.jetbrains.com/pycharm/, дата обращения 08.05.2017

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

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

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

Данные используемые для анализа представляют собой базу данных посещений госпиталей Америки больными с диабетом, которые поступали в больницу с осложнениями заболевания, либо с ухудшенным состоянием здоровья. Источником данных является база, собранная за 10 лет (с 1998 по 2008) CernerCorporations, Каназас, Америка. База имеет следующую структуру:

EncounterID(номинальный)- уникальныйномер визита

Patientnumber(номинальный) - уникальный номер пациента

Race(номинальный) - раса. В изначальных данных представлен в текстовом формате, имеет значения Caucasian (европиоидная), AfricanAmerican (африканская), Asian (азиатская), Hispanic (латино-американская), Other (другое)

Gender (номинальный) - пол пациента

Age (номинальный) - возраст пациента. Представлен в формате диапазонов возраста - от 0 до 100 лет, с промежутками в 10 лет (0-10; 11-20; 21-30 и т.д.)

Weight (номинальный) - вес пациента в фунтах. Также как и возраст представлен в формате диапазонов.

Admissiontype (номинальный) - тип поступления в госпиталь. Имеет значения:

Emergency - скорая помощь

Urgent -срочный перевод из другого отделения

Elective - самостоятельное обращение

Newborn - новорожденный

TraumaCenter - травматологический центр и еще три значения, отражающие отсутствие записи о типе поступления

Dischargedisposition (номинальный) - заключение по визиту, имеет 29 закодированных значений.

Discharged to home - выписандомой

Discharged/transferred to another short term hospital - переведенвдругойгоспиталь

Discharged/transferred to SNF - переведен вотделение Skilled nursing facilities (отделениесуходоммедсестёр забольными)

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

Discharged/transferred to another type of inpatient care institution - переведенвзаведениепоуходузабольнымидругого типа

Discharged/transferred to home with home health service - выписандомойсобязательнымпосещениемврачанадому

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

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

Expired - визит окончен

Hospice - переведен в хоспис

Discharged/transferred to a Critical Access Hospital (CAH) - переведенв Critical Access Hospital, занимающийсятяжелымислучаямитечениязаболеваний. А также еще 18 значений, представляющих собой комбинацию выше перечисленных заключений визита.

Timeinhospital (количественный) - количество дней, проведенных в госпитале

Payercode (номинальный) - 23 уникальных значения страховой компании.

Medicalspecialty (номинальный) - 84 уникальных значения отделений, в которое поступил больной. Например, кардиология, эндокринология, неврология и прочее.

Numberoflabprocedures (количественный) - количество проведенных лабораторных тестов для пациента

Numberofprocedures (количественный) - количество других процедур (не анализы), проведенных для пациента

Numberofmedications (количественный) - количество препаратов, принимаемых пациентом во время нахождения в госпитале

Numberofoutpatientvisits (количественный) - количество амбулаторных визитов данного пациента в период времени год до визита.

Numberofemergencyvisits (количественный) - количество поступлений на скорой помощи в аналогичный период

Numberofinpatientvisits (количественный) - количество стационарных визитов в аналогичный период

Diagnosis 1 (номинальный) - первичный диагноз. Закодировано по ICD9 - интернациональный стандарт классификации заболеваний.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

800--999: травмы и отравленияURL: http://icd9.chrisendres.com/, датаобращения 16.04.2017

Diagnosis 2 (номинальный) - вторичный диагноз. Закодировано по ICD9

Diagnosis 3 (номинальный) - дополнительный вторичный диагноз. Закодировано по ICD9

Numberofdiagnoses (количественный) - количество диагнозов

Glucoseserumtestresult (номинальный) - значения теста на уровень глюкозы в крови. Значения: “>200,” “>300,” “normal,” и “none” если не измерялось

A1c testresult (номинальный) - результаты теста на гликированный гемоглобин

Changeofmedications (номинальный) - изменения в принимаемых лекарствах (было ли изменение, или нет)

Diabetesmedications (номинальный) - прописаны ли лекарства от диабета

24 featuresformedications (номинальный) - факт принятия пациентом лекарства (24 столбца с наиболее распространенными лекарствами, принимаемые диабетиками)

Readmitted (номинальный) - показатель реадмиссии пациента. Вернулся в госпиталь после выписки с ухудшенным состоянием меньше чем через 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 пациента и визита.

train = diabetic_data.drop(['weight','payer_code','patient_nbr','encounter_id','diag_3','rosiglitazon','readmitted'],axis=1)

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

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

RandomForest. Представляет собой «коммитет» из деревьев решений, которые принимают решение методом голосования большинства деревьев. Само по себе дерево решений представляет собой граф, представленный ветками (репрезентуют значимые атрибуты, влияющие на значение целевой переменной) и листьями (показывают непосредственно само значение атрибута). При каждом новом случае, алгоритм прогоняет его по каждому из деревьев решений, получает значение от каждого дерева и возвращает финальный результат - значение, выбранное большинством деревьев.Breiman, Leo (2001). Random forests. Machine Learning 45 (1): 5-32 В Pythonклассификатор sklearn.ensemble.RandomForestClassifierпринимает на вход значение параметра n_estimator, отвечающего за количество деревьев (см. рис. 5):

n_estimator = 10

n_estimator = 30

n_estimator = 2

n_estimator = 50

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

n_estimator = 150

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

Метод k-ближайших соседей.Данный классификатор предлагает для каждого нового кейса результат, который выдают большинство из его ближайших соседей. Altman, N. S. (1992). An introduction to kernel and nearest-neighbor nonparametric regression. The American Statistician. 46 (3): 175-185. Соответственно, изменяемый параметр данного метода - n_neighbours (количество ближайших соседей) (см.рис.6)

n_neighbours = 20 - при данном количестве соседей классификатор показывает наилучший результат. Точность 0,79. Аналогично случаю с рандомным лесом, как уменьшение, так и увеличение числа соседей приводят к ухудшению работы классификатора.

n_neighbours = 50

n_neighbours = 100

n_neighbours = 5

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

Логистическая регрессия. Модель классификации, определяющая параметры уравнения регрессии путем подгонки данных из выборки под логистическую кривую. Для каждого нового случая, модель применяет параметры, полученные на тестовой выборке к новому примеру. Greene, William H. (2012). Econometric analysis (Seventh ed.). Boston: PearsonEducation. pp. 803-807.В рамках решаемой задачи будет использоваться мультиноминальная регрессия, так как целевая переменная принимает больше двух значений, соответственно параметр мультиноминальности будет принимать значение multi_class='ovr' Изменяемые параметры в Python - penalty определяет метод для учета ошибки первого рода в регрессии, tol- уровень значимости (см.рис. 7).


Подобные документы

  • Создание логической модели данных. Назначение кнопок Erwin Toolbox. Создание БД в СУБД InterBase. Использование утилиты WISQL. Создание Script-файла. Перенос структуры данных с одного сервера на другой. Синхронизация каталога БД и текущей модели.

    курсовая работа [4,6 M], добавлен 26.11.2011

  • ERwin как средство разработки структуры базы данных. Внешний вид диалогового окна Entity Edition. Общий вид модели после создания сущностей. Вид логической модели после создания связей. Диалоговое окно New Key Group, окончательный вид логической модели.

    лабораторная работа [559,0 K], добавлен 16.07.2013

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Анализ матрицы коэффициентов парной корреляции. Выбор факторных признаков для построения двухфакторной регрессионной модели. Оценка параметров регрессии по методу наименьших квадратов. Нахождение определителей матриц. Применение инструмента Регрессия.

    контрольная работа [1,0 M], добавлен 13.01.2013

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

    курсовая работа [3,3 M], добавлен 28.04.2014

  • Использование систем моделирования. Повышение технического уровня и качества выпускаемой продукции. Классификация видов контроля. Активный и пассивный контроль. Создание модели, которая бы демонстрировала работу токаря в течение одной рабочей смены.

    курсовая работа [341,6 K], добавлен 08.06.2015

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

    курсовая работа [1,3 M], добавлен 06.12.2011

  • Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Создание структуры интеллектуального анализа данных. Дерево решений. Характеристики кластера, определение групп объектов или событий. Линейная и логистическая регрессии. Правила ассоциативных решений. Алгоритм Байеса. Анализ с помощью нейронной сети.

    контрольная работа [2,0 M], добавлен 13.06.2014

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

    курсовая работа [4,8 M], добавлен 20.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.