Translate

среда, 19 ноября 2014 г.

Пример применения машинного обучения в медицинской диагностике

Чтобы продемонстрировать возможности высоких технологий в области робастого искусственного интеллекта, попробуем решить с помощью LibVMR задачу из репозитория uci.edu под названием Acute Inflammations. См. http://archive.ics.uci.edu/ml/datasets/Acute+Inflammations


Авторы работы J.Czerniak, H.Zarzycki[1] , которая в переводе на русский язык именуется как: “Использование сырых информационных данных для потенциальной диагностики мочевыделительных путей”, выложили в репозиторий файлы, в которых собрана информация по медицинской диагностике, пригодная для решения с помощью бинарных классификаторов. Задача, которую поставили перед собой авторы заключалась в том, чтобы создать из сырых информационных данных экспертную систему для диагностики двух урологических заболеваний: воспаление мочевого пузыря и пиелонефрита (воспалений почечной лоханки). В качестве объясняющих переменных в файле приведены симптомы заболеваний:

x0 - Температура пациента {35C-42C}
x1 - Тошнота {да, нет}
x2 - Боли в пояснице {да, нет}
x3 - Чрезмерно частое мочеиспускание {да, нет}
x4 - Боли при мочеиспускании {да, нет}
x5 - Жжение мочеиспускательного канала, зуд, отек выходе уретры {да, нет}

В качестве зависимых переменных указано два диагноза:

d1 - Воспаление мочевого пузыря {да, нет}
d2 - Пиелонефрит {да, нет}

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

Основная цель:

  1. Обучить искусственный нейрон на обучающей выборке с последующим тестированием его на контрольной выборке. Обе части генеральной выборки разделяются случайным образом 50% на 50%.
  2. Выявить незначимые симптомы заболеваний — редукция синапсов искусственного нейрона.
  3. Выявить зависимости в виде многочленов.

Результаты обучения искусственного нейрона:

Во всех случаях, т. е. для обоих диагнозов чувствительность (SE) и специфичность (SP), как на обучающих выборках, так и на контрольных достигала значения AUC = 100% (безошибочно).

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

Приведём оставшиеся после редукции симптомы к диапазону от -1 до 1 включительно:

x1 - Тошнота {1 - да, -1 - нет}
x2 - Боли в пояснице {1 - да, -1 - нет}
x3 - Чрезмерно частое мочеиспускание {1 - да, -1 - нет}
x5 - Жжение мочеиспускательного канала, зуд, отек выходе уретры {1 - да, -1 - нет}

В этом случае весовые коэффициенты нейрона для диагностики воспаления мочевого пузыря сходятся к неравенству:

d1 = 0.9999994285717551 * x3 - x5 * x3 + 0.9999988571435102 * x2 * x1 + 0.9999994285717551 * x3 * x2 * x1 > 0

где: d1 > 0 – свидетельствует о диагнозе воспаления мочевого пузыря, а d1 < 0 об отсутствии воспаления.

Упростим неравенство, округлив весовые коэффициенты:

d1 = x3 * (1 - x5 + x2 * x1) + x2 * x1 > 0


Неравенство для пиелонефрита:

d2 = x2 + 0.9999994285720817 * x3 * x2 + 0.9999971428604082 * x1 - 0.9999988571441633 * x5 * x1 > 0

где: d2 > 0 – свидетельствует о диагнозе пиелонефрита, а d2 < 0 об отсутствии.


Упростим его, округлив весовые коэффициенты:

d2 = x2 * (1 + x3) + x1 * (1 - x5) > 0

Задача решена. Желающие могут проверить правильность неравенств, загрузив выборку из репозитория, сконвертировав её в электронные таблицы с последующим вводом формул неравенств и сравнений результатов. См. http://archive.ics.uci.edu/ml/machine-learning-databases/acute/

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

Однако, я решил проверить ещё одну гипотезу, на предмет наличия зависимостей и симптомов и диагнозов. Если мы хотим поставить диагноз для пиелонефрита, в случае когда нам известен диагноз для воспаления мочевого пузыря d1 (1 – воспаление имеет место, -1 — воспаление не обнаружено), то получаем такое неравенство:

d2 = x1 * x3 * d1 > 0

где: d2 > 0 – свидетельствует о диагнозе пиелонефрита, а d2 < 0 об его отсутствии.

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

Литература:

1. J.Czerniak, H.Zarzycki, Application of rough sets in the presumptive diagnosis of urinary system diseases, Artifical Inteligence and Security in Computing Systems, ACS'2002 9th International Conference Proceedings, Kluwer Academic Publishers,2003, pp. 41-51

Комментариев нет:

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