Классификация пациентов с сердечно-сосудистыми заболеваниями (отчет)
Материал из MachineLearning.
(→Список литературы) |
(→Описание системы) |
||
Строка 90: | Строка 90: | ||
==Описание системы== | ==Описание системы== | ||
- | Описание системы находится в файле [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ | + | Описание системы находится в файле [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Panov2009Cardio/ Systemdocs.docx] |
Файлы системы можно скачать здесь: | Файлы системы можно скачать здесь: | ||
- | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ | + | [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Panov2009Cardio/ SelRKM.m, GetRelevantFeatures.m, GetStatsIfClassification.m] |
== Отчет о вычислительных экспериментах == | == Отчет о вычислительных экспериментах == |
Версия 09:02, 12 марта 2012
Введение в проект
Описание проекта
Цель проекта
Цель проекта — классификация пациентов с подозрением на сердечно-сосудистые заболевания по группам риска.
Обоснование проекта
Полученные результаты могут быть использованы для предварительной диагностики заболевания у пациентов.
Описание данных
Дан список 100 пациентов с указанием их группы риска (по экспертной оценке) и результатов их анализов по 20 параметрам.
Критерии качества
Критериями качества являются общее количество ошибок классификации и критерий скользящего контроля Leave One Out. При этом не допускается более 1 ошибки для пациентов групп риска A1 (уже прооперированные больные) и A3 (больные с высокой вероятностью заболевания).
Требования к проекту
Алгоритм не должен допускать более одной ошибки по группам риска A1 и A3, а также минимальное количество ошибок по остальным группам риска.
Выполнимость проекта
Особенностями данных, которые могут затруднить выполнение проекта, являются малое количество прецедентов по некоторым группам риска (в особенности A2) и наличие пропусков в данных (только 66 пациентов не имеют пропусков в данных).
Используемые методы
Предполагается использовать линейные алгоритмы классификации, в частности SVM.== Постановка задачи == Дана обучающая выборка , где , .
Для каждой из задач двуклассовой классификации(отделение одного класса от трех остальных и отделение пар классов друг от друга) перекодируем классы так, что . Требуется подобрать вектор параметров оптимальной разделяющей гиперплоскости, который минимизирует функционал скользящего контроля:Описание алгоритмов
Базовые предположения
Особенностью данной задачи является большая размерность признакового пространства и малое число прецедентов. Таким образом для того, чтобы избегнуть переобучения и добиться устойчивой классификации, требуется решить задачу отбора признаков. Для этой цели предполагается использовать алгоритм Relevance Kernel Machine with supervised selectivity (далее - ), который совмещает в себе возможности решения задачи классификации и отбора признаков.
Математическое описание алгоритмов
Квази-вероятностная постановка задачи
Пусть - множество объектов, каждый из которых принадлежит одному из двух классов: . Каждый объект характеризуется признаками в некоторых шкалах . Пусть в пространстве признаков объективно определена некоторая неизвестная гиперплоскость . В качестве модели распределения объектов рассмотрим два несобственных параметрических распределения:
Далее вектор рассмотрим как случайный вектор с априорной плотностью распределения По формуле Байеса апостериорная плотность распределения параметров и :
Согласно принципу максимизации апостериорной плотности распределения:
Метод
Пусть априорные плотности распределения компонент направляющего вектора разделяющей гиперплоскости имеют нормальные распределения с нулевыми математическими ожиданиями и дисперсиями :Будем считать, что параметр имеет равномерное несобственное распределение, равное единице на всей числовой оси. Тогда плотность распределения вектора пропорциональна:
Положим, что все величины имеют априорное гамма распределение:
Примем что , где - некоторый неотрицательный параметр.
Принцип максимизации совместной апостериорной плотности приводит к критерию обучения:
Для каждой итерации при фиксированном приближении() решение данной оптимизационной задачи сводится лишь к небольшой модификации классического SVM.
Если же найдено текущее приближение , то следующее приближение может быть найдено из простого соотношения:Отбор признаков
Для повышения устойчивости алгоритма был применен дополнительный отбор признаков. Для этого производился предварительный запуск алгоритма RKM и рассматривался полученный вектор весов признаков: . Далее из набора признаков удалялись те из них , для которых , где - дополнительный параметр селективности. На модифицированном наборе признаков алгоритм RKM запускался еще раз для получения окончательной классификации.
Варианты или модификации
Параметрами алгоритма являются , наилучшие значения которых требуется выбрать в результате эксперимента.
Описание системы
Описание системы находится в файле Systemdocs.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 | Relevant features | Test error | LOO |
---|---|---|---|---|---|---|
A1 | 10000 | 1000 | 30 | 1, 3, 6, 7, 9 ,10, 12, 14, 19 | 5 | 15 |
A3 | 10000 | 1000 | 30 | 2, 3, 5, 7 ,9, 12, 14, 15, 20 | 0 | 5 |
B1 | 10000 | 1000 | 10 | 2, 3, 4 ,7 ,12 ,18 | 23 | 23 |
B2 | 100000 | 100 | 30 | 2, 3, 6, 7 , 9, 10, 12, 15 | 11 | 20 |
Параметры классификатора
Решающее правило при классификации на 2 класса методом задается следующей формулой: .
Параметры , , а также номера отобранных признаков для задач отделения одного класса от остальных выложены здесь: parameters.mat
Список литературы
- К. В. Воронцов, Лекции по линейным алгоритмам классификации
- Татарчук А. И., Сулимова В.В., Моттль В.В., Уиндридж Д. Метод релевантных потенциальных функций для селективного комбинирования разнородной информации при обучении распознаванию образов на основе байесовского подхода // Всеросcийская конференция ММРО-14.М.: МАКС Пресс, 2009.
- Айзерман М.А., Браверман Э.М., Розоноэр Л.И. Метод потенциальных функций в теории обучения машин. М.: Наука, 1970, 384 с.
- Ross A., Jain A.K. Multimodal biometrics: An overview. Proceedings of the 12th European Signal Processing Conference (EUSIPCO), 2004. Vienna, Austria, pp. 1221-1224.
Данная статья была создана в рамках учебного задания.
См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |