Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 25 декабря 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Пинин А.А., Билялутдинова К.И. МЕДИЦИНСКАЯ СТАТИСТИЧЕСКАЯ АНАЛИТИЧЕСКАЯ СИСТЕМА НА ОСНОВЕ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LX междунар. студ. науч.-практ. конф. № 12(59). URL: https://sibac.info/archive/technic/12(59).pdf (дата обращения: 28.03.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
Диплом Выбор редакционной коллегии

МЕДИЦИНСКАЯ СТАТИСТИЧЕСКАЯ АНАЛИТИЧЕСКАЯ СИСТЕМА НА ОСНОВЕ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ

Пинин Александр Александрович

магистрант, ИИТ ЧелГУ,

РФ, г. Челябинск

Билялутдинова Карина Игоревна

магистрант, ФГАОУ ВО «ЮУрГУ (НИУ),

РФ, г. Челябинск

Митянина Анастасия Владимировна

научный руководитель,

старший преподаватель, ИИТ ЧелГУ,

РФ, г. Челябинск

Введение

Аналитические системы на основе Data Mining и машинного обучения применяются в медицине более 10 лет [9]. Они позволяют извлекать из медицинских показателей скрытые закономерности на основе которых можно прогнозировать развитие болезней. Выполнение такой работы человеком трудоемко, требует привлечения специалистов высокой квалификации и не всегда возможно.

Следует обратить внимание что существующие системы, могут быть довольно универсальны [4; 5; 6], что может усложнять их использование для узких задач. Такие системы решают поставленные задачи, но требуют больше времени специалиста для настройки под конкретные нужды.

В контексте российской медицины, применение таких систем часто осложнено организационными и финансовыми проблемами. В свою очередь открытые для бесплатного использования библиотеки машинного обучения (например, Scickit Learn, TensorFlow, Pandas, и т. д.) для на сегодняшний день при грамотном использовании позволяют достичь высоких результатов [9] без глубоких научных изысканий и программирования сложных систем.

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

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

Описание системы

Для простоты реализации и расширения система реализуется на языке программирования Python 3, который является одним из самых популярных [7; 8] и имеет значительное количество доступных библиотек машинного обучения. Система разделена на 2 основные части: подсистема ввода, хранения и управления данными и подсистема анализа данных. Система анализа данных представляет собой web-сервис, который будет доступен по внутренней сети больницы и будет принимать и отдавать данные в заданном формате.

Подсистема ввода хранения и управления данными реализована на основе фреймворка Django работающего на основе Python 3. Подсистема анализа данных реализуется с нуля, с использованием различных библиотек для решения конкретных задач в контексте системы. Так, например, для машинного обучения используются библиотеки Scikit Learn, TensorFlow, Pandas, Numpy, для доступа к системе через сеть библиотека Flask, и т.д.

В качестве СУБД для хранения данных выбрана PostgreSQL, поскольку фреймворк Django на основе которого реализована подсистема ввода, хранения и управления данными имеет встроенную поддержку PostgreSQL, она бесплатна и в сети интернет доступно много информации об этой СУБД.

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

Цель эксперимента

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

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

Описание данных

Для эксперимента используется набор данных о несовершеннолетних пациентах состоящий из 72 признаков включающий в себя 1929 записей. Перед началом анализа выбираются все признаки кроме помеченных как не участвующих в анализе. В анализе не участвуют признаки, которые с точки зрения текущего эксперимента не будут полезны. В качестве целевой переменной выбирается факт смерти пациента. Однако такой переменной в данных нет, но есть признак Дата смерти. Это признак заполнен датой или оставлен пустым. Следует преобразовать этот признак чтобы получить бинарный признак со значением да (1) и нет (0). Если в исходном признаке Дата смерти указана дата, следовательно, в преобразованном признаке следует установить значение 1, иначе 0.

Для описания данных использованы сокращения, представленные в таблицах 1 и 2. Описания всех признаков представлены в таблице 3.

Таблица 1

Сокращения для обозначения типа данных признаков, представленных в наборе данных используемом при работе системы

Тип данных

Краткое обозначение

1

Целое число

ЦЧ

2

Чисто с плавающей точкой

ЦПТ

3

Строка

С

4

Дата

Д

 

Таблица 2

Сокращение для обозначения типовых причин отказа от использования признака в течении отладочного эксперимента

Описание

Краткое обозначение

1

Мало данных. Меньше порога в 1500 записей. Порог выбран эмпирически на основании просмотра исходных данных.

МД

2

Нет полезной информации для эксперимента.

НПИ

3

Персональные данные. Нет доступа для проведения анализа. Кроме того, не несут полезной аналитической информации.

ПД

 

Таблица 3

Описание признаков в исходном наборе данных

Кодовое имя

Описание

Тип дан-ных

Кол-во не пус-тых

Примечание

1

center

Номер мед. центра в котором проводилось обследование

ЦЧ

-

Не участвует

Одно значение во всех записях

2

ident

ID пациента *

ЦЧ

-

Не участвует. ПД

3

fname

Имя и отчество

С

-

Не участвует. ПД

4

lastname

Фамилия

С

-

Не участвует. ПД

5

index

Почт. индекс

С

-

Не участвует. ПД

6

address

Адрес

С

-

Не участвует. ПД

7

adr_telephon

Телефон

С

-

Не участвует. ПД

8

bdate

Дата рождения

Д

1917

Будет преобразовано в признак «Возраст на момент постановки диагноза»

9

sex

Пол

ЦЧ

1929

 

10

fddate

Дата обращения

Д

1657

Не участвует. НПИ

11

tsdate

Дата обследования

Д

1618

Не участвует. НПИ

12

tdate

Дата постановки диагноза

Д

1921

Будет преобразовано в признак «Возраст на момент постановки диагноза»

13

edate

Дата последнего события (опухоли и т.д.)

Д

219

Не участвует. НПИ, МД

14

otcode

Неизвестно

ЦЧ

929

Не участвует. МД

15

ddate

Дата смерти

Д

359

Будет преобразовано в целевой признак «Факт смерти»

16

death_icd

Код причины смерти по МКБ

С

12

Не участвует. МД

17

ecode

Описание последнего события (опухоли и т.д.)

ЦЧ

786

Не участвует. НПИ, МД

18

esource

Источник сведений о событии

ЦЧ

380

Не участвует. МД

19

dcause

Причина смерти

ЦЧ

984

Не участвует. НПИ

20

dsource

Источник сведений о смерти

ЦЧ

540

Не участвует. МД

21

numtumor

№ опухоли (1-я, 2-я и т.д.)

ЦЧ

439

Не участвует. МД

22

iccc

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

С

1912

 

23

icd_10

Классификация заболевания в соответствии с МКБ-10

С

1610

 

24

icd_o

Классификация заболевания в соответствии с МКБ-О

С

1603

 

25

fds

Диагноз

С

1906

Не участвует. Строка без определенного формата. Сложно извлечь информацию

26

circdetect

Как обнаружено заболевание (например, обратился сам, регулярный осмотр и т.д.)

ЦЧ

1628

Не участвует. НПИ

27

hyst

Гистология (факт)

ЦЧ

1899

 

28

cyto

Цитология (факт)

ЦЧ

1887

 

29

exp_oper

Операция (факт)

ЦЧ

1865

 

30

immun

Иммуногистохимия (факт)

ЦЧ

1865

 

31

cytogen

Цитогенетика (факт)

ЦЧ

1884

 

32

lab_instr

Лабораторно-инстр. данные (факт)

ЦЧ

1868

 

33

incentr

Пациент получал лечение в центре

ЦЧ

1028

Не участвует. НПИ

34

lasttest

Дата последнего обновления

Д

1822

Не участвует. НПИ

35

lastsource

Последний источник обновления

ЦЧ

769

Не участвует. НПИ, МД

36

lfudate

Дата потери из-под наблюдения

Д

123

Не участвует. МД

37

lfucode

Причина потери из-под наблюдения

ЦЧ

595

Не участвует. МД

38

otregion

Пациент из другого региона

ЦЧ

1878

 

39

date_actend

Неизвестно

Д

252

Не участвует. МД

40

concord

Получено согласие на лечение

ЦЧ

1862

 

41

protocol

Протокол лечения

С

280

Не участвует. МД

42

autopsie

Проводилось ли вскрытие

С

1204

Не участвует. НПИ, МД

43

tabort

Терапия прервана

ЦЧ

703

Не участвует. МД

44

stage

Стадия заболевания

ЦЧ

1836

 

45

stage_sym

Доп. символ к стадии заболевания

ЦЧ

19

Не участвует. МД

46

chirurg

Хирургический этап лечения (факт)

ЦЧ

983

Отсутствующие строки перевести в значение «нет»

47

radiolog

Лучевая терапия (факт)

ЦЧ

980

Отсутствующие строки перевести в значение «нет»

48

chimio

Химиотерапия (факт)

ЦЧ

1000

Отсутствующие строки перевести в значение «нет»

49

rdate

Дата достижения ремиссии

Д

409

Не участвует. МД

50

rem

Примечание к ремиссии

С

130

Не участвует. МД

51

t_tnm

Классификация по TNM компонент T

ЦЧ

1856

 

52

n_tnm

Классификация по TNM компонент N

ЦЧ

1855

 

53

m_tnm

Классификация по TNM компонент M

ЦЧ

1856

 

54

g_tnm

Классификация по TNM гистологическая степень злокачественности

ЦЧ

1854

 

55

encr_bas

Неизвестно

ЦЧ

1694

 

56

ct_tnm

Клиническая стадия TNM компонент T (факт)

ЦЧ

1374

Не участвует. МД

57

cn_tnm

Клиническая стадия TNM компонент N (факт)

ЦЧ

1374

Не участвует. МД

58

cm_tnm

Клиническая стадия TNM компонент M (факт)

ЦЧ

1374

Не участвует. МД

59

land

Регион проживания

ЦЧ

1904

 

60

lum

Лимфоузлы (факт поражения)

ЦЧ

1869

 

61

oss

Кости (факт поражения)

ЦЧ

1868

 

62

hepar

Печень (факт поражения)

ЦЧ

1866

 

63

lung

Легкое (факт поражения)

ЦЧ

1867

 

64

brain

Головной мозг (факт поражения)

ЦЧ

1865

 

65

skin

Кожа (факт поражения)

ЦЧ

1866

 

66

nephro

Почка (факт поражения)

ЦЧ

1865

 

67

herm

Половые органы (факт поражения)

ЦЧ

1865

 

68

periton

Брюшина (факт поражения)

ЦЧ

1865

 

69

kmark

Костный мозг (факт поражения)  

ЦЧ

1865

 

70

unknown

Неизвестно

ЦЧ

1865

Не участвует. НПИ

71

other

Другое

ЦЧ

1866

Не участвует. НПИ

72

acc

Неизвестно

ЦЧ

1929

 

* - все признаки начиная с 2 относятся к пациенту.

 

Описание эксперимента

Начальный этап работы с данными предполагает их очистку и преобразование их в формат приемлемый для работы в системе. Эта часть работы с данными инкапсулирована в классе Preparer системы. Объект класса Preparer содержит метод prepare принимающий на вход набор данных в формате pandas.DataFrame [1] библиотеки Pandas, описание целевой переменной, существующих признаков и вычисляемых признаков. В контексте системы вычисляемый признак отличается от не вычисляемого тем что его нет в исходном наборе данных и его требуется создать пользователю явно указав описание такого признака в систему. Ниже, в описании алгоритма работы метода prepare приведен пример создания такого признака.

Формат передачи признаков описан в классе Feature (для признаков) и наследующем его классе CalculatedFeature (для вычисляемых признаков). При этом метод prepare возвращает преобразованные данные в формате pandas.DataFrame. На этом этапе уже нет разницы между вычисляемым признаком и не вычисляемым, поскольку все признаки являются одинаковыми по своим свойствам колонками объекта pandas.DataFrame.

Обработка данных методом prepare выполняется в несколько этапов:

  1. Из набора данных удаляются строки содержащие пустые значения для признаков если признак не предполагает пустых значений. В следующей итерации системы планируется предоставлять пользователю возможность заменять пустые значения, например, средними значениями, по его усмотрению. Однако на сегодняшний день такая возможность не реализована. В текущей версии системы есть возможность используя простейшие выражения на языке программирования Python преобразовать текущие признаки, например, пустые значения в значения по умолчанию. При этом исходный признак следует удалить и создать новый вычисляемый признак. Таким образом, например, дополняются признаки chirurg, radiolog, chimio (поз. 46, 47, 48 таблицы 3).
  2. Сырые данные преобразуются в тип понятный системе, в соответствии с описаниями, переданными в параметрах метода. Это по большей части исключительно технический этап. Подавляющее большинство из передаваемых в метод prepare данных возможно уже находится в подходящем формате, однако явное приведение типа позволяет ожидать от системы большей стабильности и предсказуемости в процессе обработки данных.
  3. Добавляются вычисляемые признаки. Как указанно выше в контексте системы под вычисляемыми признаками понимаются признаки которых нет в поступающих в метод prepare наборе данных и которые формируются и добавляются в набор данных на основании информации переданной пользователем. Например, на основе признаков tdate и bdate (поз. 8 и 12 таблицы 3) будет сформирован новый признак age – возраст на момент постановки диагноза.
  4. Удаляются выбросы в соответствии с описаниями, переданными в параметрах метода. Система позволяет задать порог в соответствии с которыми будут отфильтрованы значения за пределами порога. Например, в исходных данных в вычисляемом поле age есть несколько значений больше 18 (лет), что в контексте данных явно является ошибкой, поскольку больница работает только с несовершеннолетними пациентами. Установив порог в 0.99 можно избавится от таких значений.
  5. Все категориальные признаки преобразуются в бинарные. Например, признак cytogen (поз. 34 таблицы 3) содержит значения 0, 1. Однако эти признаки не являются количественными поскольку означают лишь метку и не могут быть сравнены между собой. Такое сравнение может исказить результаты анализа. В подобных случаях следует удалить исходный признак и создать несколько новых бинарных признаков на основе исходного. Например, система удалит признак cytogen и создаст признаки cytogen_0, cytogen_1 каждый из которых будет содержать 0 или 1 в зависимости от того, какое значение исходного признака содержала строка (0 - не содержала, 1 - содержала). Такие признаки также будут вычисляемыми, поскольку они отсутствуют в поступающем наборе данных. Отличие в том, что они создаются автоматически без участи пользователя, лишь на основании типа признака (категориальные).
  6. Удаляются не нужные признаки. Например, как указанно выше на основании признаков tdate и bdate сформирован новый признак age. Таким признак age содержит в себе информацию которую содержали признаки tdate и bdate, соответственно необходимость в этих признаках в наборе данных отпадает, и они могут быть удалены. В рамках отладочного эксперимента признаки будут удалены, однако при проведении других экспериментов удаление какого-либо из признаков зависит от параметров, передаваемых пользователем.

Набор данных полученный после обработки методом классом Prepare представлен в таблице 5. При этом следует отметить что все признаки, обозначенные как бинарные представлены в таблице в виде одного поля. Это сделано для упрощения восприятия таблицы. На 5 этапе работы метода prepare они преобразованы в несколько признаков. Например, признак cytogen состоящий из значений 0 и 1 в возвращаемом наборе данных представлен в виде признаков cytogen_0 и cytogen_1. В нулевой позиции таблицы представлена целевая переменная dead для отладочного эксперимента, означающая факт смерти пациента.

Для описания типа преобразованных признаков использованы сокращения, представленные в таблице 4. Для описания типа данных использованы сокращения, представленные в таблице 1.

Таблица 4

Сокращения для обозначения типа данных признаков, представленных в наборе данных используемом при работе системы

Тип признака

Краткое обозначение

1

Бинарный

Б

2

Количественный

К

 

Таблица 5

Набор данных после обработки методом prepare

Кодовое имя

Описание

Тип данных

Тип признака

0

dead

Факт смерти пациента

ЦЧ

Б

1

age

Возраст на момент постановки диагноза

ЧПТ

К

2

sex

Пол

ЦЧ

Б

3

iccc

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

ЦЧ

Б

4

icd_10

Классификация заболевания в соответствии с МКБ-10

ЦЧ

Б

5

icd_o

Классификация заболевания в соответствии с МКБ-О

ЦЧ

Б

6

hyst

Гистология (факт)

ЦЧ

Б

7

cyto

Цитология (факт)

ЦЧ

Б

8

exp_oper

Операция (факт)

ЦЧ

Б

9

immun

Иммуногистохимия (факт)

ЦЧ

Б

10

cytogen

Цитогенетика (факт)

ЦЧ

Б

11

lab_instr

Лабораторно-инстр. данные (факт)

ЦЧ

Б

12

otregion

Пациент из другого региона  

ЦЧ

Б

13

concord

Согласие на лечение (факт)

ЦЧ

Б

14

stage

Стадия заболевания

ЦЧ

Б

15

chirurg

Хирургический этап лечения (факт)

ЦЧ

Б

16

radiolog

Лучевая терапия (факт)

ЦЧ

Б

17

chimio

Химиотерапия (факт)

ЦЧ

Б

18

t_tnm

Классификация по TNM компонент T

ЦЧ

Б

19

n_tnm

Классификация по TNM компонент N

ЦЧ

Б

20

m_tnm

Классификация по TNM компонент M

ЦЧ

Б

21

g_tnm

Классификация по TNM гистологическая степень злокачественности

ЦЧ

Б

22

encr_bas

Неизвестно

ЦЧ

Б

23

land

Регион проживания

ЦЧ

Б

24

lum

Лимфоузлы (факт поражения)

ЦЧ

Б

25

oss

Кости (факт поражения)

ЦЧ

Б

26

hepar

Печень (факт поражения)

ЦЧ

Б

27

lung

Легкое (факт поражения)

ЦЧ

Б

28

brain

Головной мозг (факт поражения)

ЦЧ

Б

29

skin

Кожа (факт поражения)

ЦЧ

Б

30

nephro

Почка (факт поражения)

ЦЧ

Б

31

herm

Половые органы (факт поражения)

ЦЧ

Б

32

periton

Брюшина (факт поражения)

ЦЧ

Б

33

kmark

Костный мозг (факт поражения)

ЦЧ

Б

34

acc

Неизвестно

ЦЧ

Б

 

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

Для реализации этого этапа в системе предусмотрено использование метода главных компонент на основании решения sklearn.decomposition.PCA [2] библиотеки Scikit Learn. Получаем оценку влияния признаков на факт смерти пациента, приведенную в таблице 6. Указаны только признаки, оказывающие хотя бы минимальный видимый эффект. При этом, для упрощения анализа полученных результатов, бинарные признаки вроде sex_0 и sex_1 сведены в единую переменную sex содержащей в себе сумму влияния признаков.

Таблица 6

 Признаки, оказывающие минимальное видимое влияние на целевую переменную dead (Смерть пациента)

Кодовое имя

Влияние на целевую переменную

1

age

0.69328

2

iccc

0.16486

3

sex

0.10447

4

icd_10

0.03225

5

icd_o

0.00440

6

stage

0.00026

7

concord

0.00009

8

cyto

0.00008

9

t_tnm

0.00005

10

hyst

0.00004

11

exp_oper

0.00004

12

immun

0.00004

13

lab_instr

0.00004

14

otregion

0.00004

15

n_tnm

0.00003

16

m_tnm

0.00001

17

g_tnm

0.00001

 

Видно, что переменная age (возраст) оказывает максимальное значение на факт смерти пациента, что не удивительно, поскольку речь идет о пациентах детского возраста и чем пациент старше, тем сильнее и имеет выше шанс справится с болезнью. Для исключения очевидной составляющей исключаем переменную age. Кроме того, переменные iccc, icd_10 и icd_o означают классификацию болезни по различным системам. Эти системы классификации не идентичны, но, если рассматривать их очень обобщенно, являются схожими. Таким образом использование всех 3-х переменных вероятно станет причиной мультиколлинеарности. Если, учесть, что наибольшее влияние оказывает переменная iccc то так же представляется разумным удалить переменные icd_10 и icd_o. Кроме того, удаляем все переменные, не попавшие в приведенный список и не оказывающие сколько-нибудь заметного влияния на целевую переменную. После этого снова оцениваем влияние переменных с помощью метода главных компонент.

Таблица 7

Признаки, оказывающие минимальное видимое влияние на целевую переменную dead (Смерть пациента) (Повторная оценка)

Кодовое имя

Влияние на целевую переменную

1

iccc

0.58944

2

sex

0.34824

3

stage

0.01674

4

concord

0.00629

5

land

0.00491

6

t_tnm

0.00453

7

hyst

0.00350

8

g_tnm

0.00339

9

cyto

0.00334

10

n_tnm

0.00330

11

exp_oper

0.00321

12

immun

0.00300

13

encr_bas

0.00285

14

lab_instr

0.00284

15

otregion

0.00271

16

m_tnm

0.00171

 

Как видно из таблицы 7 вес оставшихся признаков во влиянии на целевую переменную значительно вырос. Хотя для большинства остается незначительным. На следующем этапе эксперимента будут использованы признаки из таблицы 7, и отдельно признаки iccc и sex имеющие наибольший вес, представленный в таблице 8.

Таблица 8

Признаки, оказывающие максимальное влияние на целевую переменную dead (Смерть пациента) (Повторная оценка)

Кодовое имя

Влияние на целевую переменную

1

iccc

0.54201

2

sex

0.45799

 

К данным описанными признаками, представленными в таблицах 7 и 8 последовательно были применены несколько алгоритмов машинного обучения: K-ближайших соседей, Логистическая регрессия, Решающее дерево, Random Forest, Gradient Tree, Наивный Байес для нормального распределения, Наивный Байес для распределения Бернулли. Все алгоритмы используются внутри классов-оберток, которые разделяют общий интерфейс, реализованный в виде соглашения с оговоренным набором методов с обозначенной сигнатурой.

С каждым набором проведено 2 эксперимента. Один с параметрами по умолчанию, второй набор параметров подобран при помощи системы основанной на sklearn.model_selection.GridSearchCV [4]. Для алгоритмов Наивного Байеса использованы только параметры по умолчанию.

В течении эксперимента мониторинг выполнялся по следующим параметрам: правильность (accuracy), точность (precision), полнота (recall), ф-мера (f-score), время. Ф-мера является основным параметром для сравнения. Остальные величины взяты для построения полной картины. Время оценивается только для получения общего представления о сравнении времени работы алгоритмов. Для оценки указанных параметров набор данных делится на обучающий и тестовый в сочетании 0,75 на 0,25. Результаты приведены в таблице 9.

Таблица 9

Результаты отладочного эксперимента

Алгоритм

Правиль-ность (accuracy)

Точность (precision)

Полнота (recall)

Ф-мера (f-score)

Время

 

1

K-ближайших соседей (Таблица 7 – 1552 записи)

1.1

Параметры по умолчанию

0.802

0.734

0.802

0.752

0.125

1.2

metric: chebyshev, n_neighbors: 12, weights: uniform

0.817

0.671

0.817

0.737

0.125

2

K-ближайших соседей (Таблица 8 – 1911 записей)

2.1

Параметры по умолчанию

0.789

0.729

0.789

0.748

0.125

2.2

metric: chebyshev, n_neighbors: 11, weights: uniform

0.812

0.743

0.812

0.745

0.125

3

Логистическая регрессия (Таблица 7 – 1552 записи)

3.1

Параметры по умолчанию

0.814

0.772

0.814

0.778

0.031

3.2

solver: saga

0.809

0.765

0.809

0.774

0.031

4

Логистическая регрессия (Таблица 8 – 1911 записей)

4.1

Параметры по умолчанию

0.81

0.665

0.81

0.73

0.016

4.2

solver: liblinear

0.81

0.665

0.81

0.73

0.016

5

Решающее дерево (Таблица 7 – 1552 записи)

5.1

Параметры по умолчанию

0.765

0.745

0.765

0.754

0.016

5.2

criterion: entropy,

splitter: random

0.778

0.74

0.778

0.755

0.016

6

Решающее дерево (Таблица 8 – 1911 записей)

6.1

Параметры по умолчанию

0.81

0.745

0.81

0.75

~ 0.0

6.2

criterion: gini, splitter: best

0.81

0.745

0.81

0.75

~ 0.0

7

Random Forest (Таблица 7 – 1552 записи)

7.1

Параметры по умолчанию

0.822

0.782

0.822

0.781

0.234

7.2

bootstrap: True, criterion: gini, max_features: auto, n_estimators: 30

0.82

0.778

0.82

0.779

 

8

Random Forest (Таблица 8 – 1911 записей)

8.1

Параметры по умолчанию

0.81

0.745

0.81

0.75

0.234

8.2

bootstrap: False, criterion: gini, max_features: auto, n_estimators: 10

0.81

0.745

0.81

0.75

0.234

9

Gradient Tree (Таблица 7 – 1552 записи)

9.1

Параметры по умолчанию

0.82

0.778

0.82

0.779

0.281

9.2

criterion: mae,

loss: exponential, max_features: sqrt

0.827

0.801

0.827

0.768

 

10

Gradient Tree (Таблица 8 – 1911 записей)

10.1

Параметры по умолчанию

0.814

0.752

0.814

0.747

0.141

10.2

criterion: friedman_mse,

loss: exponential, max_features: None

0.814

0.752

0.814

0.747

0.141

11

Наивный Байес для нормального распределения (Таблица 7 – 1552 записи)

11.1

Параметры по умолчанию

0.353

0.786

0.353

0.364

~ 0.0

12

Наивный Байес для нормального распределения (Таблица 8 – 1911 записей)

12.1

Параметры по умолчанию

0.236

0.734

0.236

0.173

0.016

13

Наивный Байес для распределения Бернулли (Таблица 7 – 1552 записи)

13.1

Параметры по умолчанию

0.804

0.762

0.804

0.773

0.016

14

Наивный Байес для распределения Бернулли (Таблица 8 – 1911 записей)

14.1

Параметры по умолчанию

0.812

0.751

0.812

0.752

~ 0.0

 

Как видно из результатов эксперимента:

  1. Часто параметры по умолчанию оказываются для алгоритмов, реализованных в современных мощных библиотеках машинного обучения достаточными для достижения качественного результата, что подтверждает тезис о возможности их использования различными специалистами, не имеющими глубоких знаний в алгоритмах машинного обучения. Но таким специалистам требуется предоставить доступ к инструментам, на что и нацелена описываемая система.
  2. Алгоритмы выдают довольно высокие результаты, на текущем этапе, а значит их использование целесообразно.

 

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

  1. Документация библиотеки Pandas, раздел DataFrame сайт [электронный ресурс] – Режим доступа. – URL: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html (дата обращения 09.12.2017);
  2. Документация библиотеки Scikit Learn, раздел sklearn.decomposition.PCA, сайт [электронный ресурс] – Режим доступа. – URL: http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html (дата обращения 09.12.2017);
  3. Документация библиотеки Scikit Learn, раздел sklearn.model_selection.GridSearchCV, сайт [электронный ресурс] – Режим доступа. – URL: http://scikit-learn.org/stable/modules/generated/sklearn.model_selection. GridSearchCV.html (дата обращения 10.12.2017);
  4. IBM SPSS Modeler сайт [электронный ресурс] – Режим доступа. – URL: https://www.ibm.com/bs-en/marketplace/spss-modeler (дата обращения 02.07.2017);
  5. Neural Designer сайт [электронный ресурс] – Режим доступа. – URL: https://www.neuraldesigner.com (дата обращения 02.07.2017);
  6. RapidMiner сайт [электронный ресурс] – Режим доступа. – URL: https://rapidminer.com (дата обращения 02.07.2017);
  7. RedMonk сайт [электронный ресурс] – Режим доступа. – URL: http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/ (дата обращения 17.12.2017);
  8. TIOBE сайт [электронный ресурс] – Режим доступа. – URL: https://www.tiobe.com/tiobe-index/ (дата обращения 17.12.2017);
  9. Tomar D., Agarwal S. A survey on Data Mining approaches for Healthcare // International Journal of Bio-Science and Bio-Technology. – 2013. – Vol. 5 № 5. – P. 241-266.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
Диплом Выбор редакционной коллегии

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.