Классификация пациентов с сердечно-сосудистыми заболеваниями (отчет)
Материал из MachineLearning.
Введение в проект
Описание проекта
Цель проекта
Цель проекта - классификация пациентов с подозрением на сердечно-сосудистые заболевания по группам риска.
Обоснование проекта
Полученные результаты могут быть использованы для предварительной диагностики заболевания у пациентов.
Описание данных
Дан список 100 пациентов с указанием их группы риска(по экспертной оценке) и результатов их анализов по 20 параметрам.
Критерии качества
Критерием качества является общее количество ошибок классификации. При этом не допускается более 1 ошибки для пациентов групп риска A1(уже прооперированные больные) и A3(больные с высокой вероятностью заболевания).
Требования к проекту
Алгоритм не должен допускать более одной ошибки по группам риска A1 и A3, а также минимальное количество ошибок по остальным группам риска.
Выполнимость проекта
Особенностями данных, которые могут затруднить выполнение проекта, являются малое количество прецедентов по некоторым группам риска(в особенности A2) и наличие пропусков в данных.
Используемые методы
Предполагается использовать линейные алгоритмы классификации, в частности SVM.
Постановка задачи
Дана обучающая выборка , где
,
.
Описание алгоритмов
Базовые предположения
Особенностью данной задачи является большая размерность признакового пространства и малое число прецедентов.
Таким образом для того, чтобы избегнуть переобучения и добиться устойчивой классификации, требуется решить задачу отбора признаков. Для этой цели предполагается использовать алгоритм Relevance Kernel Machine with supervised selectivity(далее - ), который совмещает в себе возможности решения задачи классификации и отбора признаков.
Математическое описание алгоритмов
Квази-вероятностная постановка задачи
Пусть - множество объектов, каждый из которых принадлежит одному из двух классов:
. Каждый объект
характеризуется
признаками в некоторых шкалах
. Пусть в пространстве признаков
объективно определена некоторая неизвестная гиперплоскость
. В качестве модели распределения объектов рассмотрим два несобственных параметрических распределения:
Согласно принципу максимизации апостериорной плотности распределения:
Метод
Пусть априорные плотности распределения компонент Будем считать, что параметр имеет равномерное несобственное распределение, равное единице на всей числовой оси.
Тогда плотность распределения вектора
пропорциональна:
Положим, что все величины имеют априорное гамма распределение:
Примем что , где
- некоторый неотрицательный параметр.
Принцип максимизации совместной апостериорной плотности приводит к критерию обучения:
Для каждой итерации при фиксированном приближении() решение данной оптимизационной задачи сводится лишь к небольшой модификации классического SVM.
Отбор признаков
Для повышения устойчивости алгоритма был применен дополнительный отбор признаков. Для этого производился предварительный запуск алгоритма RKM и рассматривался полученный вектор весов признаков: .
Далее из набора признаков удалялись те из них , для которых
, где
- дополнительный параметр селективности. На модифицированном наборе признаков алгоритм RKM запускался еще раз для получения окончательной классификации.
Варианты или модификации
Параметрами алгоритма являются , наилучшие значения которых требуется выбрать в результате эксперимента.
Описание системы
Описание системы находится в файле Systemdocs1.docx Файлы системы можно скачать здесь: SelRKM.m, GetRelevantFeatures.m, GetStatsIfClassification.m
Отчет о вычислительных экспериментах
% OneVsOthersTest - script which tests RKM algorithm cardiovascular diseases train set % in problems of classification one class vs 3 other classes % Author: Maxim Panov, MIPT, group 674 % % Input: excel-files with objects-features matrices of 4 types of patients % % Output: % statistics - 4 x 3 x 4 structure: % statistics(k, j, i) - statistics of classification(with fields like % in output of GetStatsOfClassification) of class i % with selectivityLevel 0.1*10^k and C = 100*10^j %% Upload data UploadData; trainSet = allData; types = [repmat(1, size(a1, 1), 1); repmat(2, size(a3, 1), 1); repmat(3, size(b1, 1), 1); repmat(4, size(b2, 1), 1)]; %% Set selectivity rate selectivityRate = 10; %% Compute statistics of classification for i = 1 : 4 supplTrainSet = [trainSet(types == i, :); trainSet(types ~= i, :)]; supplTypes = [repmat(1, size(types(types == i, :), 1), 1); repmat(-1, size(types(types ~= i, :), 1), 1)]; C = 100; for j = 1 : 3 C = C * 10; selectivity = 0.1; for k = 1 : 4 selectivity = selectivity * 10; supplStatisticsA(k, 1) = GetStatsOfClassification(supplTrainSet, supplTypes, C, selectivity, selectivityRate); end if j == 1 supplStatisticsB = supplStatisticsA; else supplStatisticsB = cat(2, supplStatisticsB, supplStatisticsA); end end if i == 1 statistics = supplStatisticsB; else statistics = cat(3, statistics, supplStatisticsB); end end
Анализ качества работы алгоритма
На основании полученных результатов для каждой из четырех подзадач классификации можно выбрать наилучшие значения параметров, статистика классификации для которых приведена в таблице:
Class | C | SelectivityLevel | SelectivityRate | Test error | LOO |
---|---|---|---|---|---|
строка 1, ячейка 1 | строка 1, ячейка 2 | строка 1, ячейка 3 | строка 1, ячейка 4 | ||
строка 2, ячейка 1 | строка 2, ячейка 2 | строка 2, ячейка 3 | строка 1, ячейка 3 | ||
строка 2, ячейка 1 | строка 2, ячейка 2 | строка 2, ячейка 3 | строка 1, ячейка 3 | ||
строка 2, ячейка 1 | строка 2, ячейка 2 | строка 2, ячейка 3 | строка 1, ячейка 3 |
Отчет о полученных результатах
Список литературы
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |