Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Помогите с разработкой программы |
Автор: maks1313 10.3.2013, 20:37 |
Нужно написать программу, тема: диагностика степени адаптации организма. Входные данные: показатели состояния пациента во время проведенных сеансов. Нужно сделать диагностику эффективности проводимых процедур лечения пациентов и потом, желательно, добавить, чтобы программа выдавала рекомендации по данным пациента и еще до прохождения им лечения, тоесть это, на сколько я понимаю по накопленным данным предыдущих пациентов. Вопрос в том как это лучше всего реализовать, какими методами? это должна быть экспертная система? или можно обойтись статистическими методами? но какими? может у кого-то есть опыт в таких задачах... помогите, пожалуйста, советом, укажите направление куда двигаться? как это легче и проще реализовать из всех возможных способов |
Автор: nworm 11.3.2013, 14:49 |
Это должна быть экспертная система. Проще всего найти что-то отдалённо напоминающее Вашу задачу и купить готовую программу. Но далеко не факт, что это лучший путь. |
Автор: maks1313 12.3.2013, 04:46 |
спасибо за ответ... про готовую программу я и сам уже думал. буду двигаться в направлении ЭС |
Автор: _Y_ 12.3.2013, 20:43 |
Я пытался сделать экспертную систему аналогичного типа. Столкнулся с общемедицинской проблемой - недостаточное количество данных для надежной статобработки. Все пациенты разные. Чтобы учитывать разницу, нужно учитывать чертову уйму параметров. А каждым новым параметром размер необходимой базы данных растет и куда-как быстрее, чем линейно. |
Автор: nworm 12.3.2013, 21:11 |
Это большая, очень интересная задача. Многие любят её. У одного моего знакомого родители несколько лет занимались. |
Автор: _Y_ 12.3.2013, 23:33 |
nworm, сколь я понял, если врач не сможет выделить небольшое количество основных параметров, программист может заниматься всю жизнь в свое удовольствие. ![]() Я бы сказал, что для более-менее приличного результата число обследованных пациентов должно быть на порядок больше числа параметров. Если же (как это обычно в медицинской статистике) пациенты обследуются не полностью (т.е. каждый пациент обследован по каким-то параметрам, но не по всему списку), то и этого количества не хватит. |
Автор: mrgloom 13.3.2013, 10:14 |
а откуда вы знаете сколько параметров у модели? они же получаются как бы скрытыми. п.с. почему обычно пишут ЭС на каких нибудь lisp'ах, почему нельзя написать просто на большой количестве if'ов? |
Автор: _Y_ 13.3.2013, 16:05 |
Из долгих лет общения с медиками. И жил с ними, и работал ![]() Можно, конечно, на входе подавать один параметр "скушал аспирин"/"не скушал аспирин", а на выходе считать статистику "как бы выздоровел"/"как бы умер". Но что толку от такой модели? Улыбнуло ![]() |
Автор: mrgloom 14.3.2013, 08:55 | ||||
имелось ввиду, что на вход мы можем подавать много параметров, у самой модели свои параметры которые как то связаны с входными, а на выходе умер\не умер.
ну я конечно подозреваю, что там есть какой то "решатель" , а на if'ах будет не так гибко, но всё же тут например http://ru.wikipedia.org/wiki/CLIPS правило: если-тогда . |
Автор: mrgloom 18.3.2013, 10:18 |
так по-моему задачи машинного обучения(типа нейросети) отличаются как раз от ЭС, т.е. тут именно идёт вывод из правил и тут как раз не обязательно иметь большую выборку. |
Автор: _Y_ 18.3.2013, 21:29 |
mrgloom, именно нейросетями и пробовал. Нейросеть, понятное дело, строится по выборке весьма скромной. Но достоверность такой сети плюс-минус трамвайная остановка. Впрочем, очень ярко выраженные правила можно найти и по маленькой выборке. Но, думаю, что вероятность найти что-то новое по маленьким выборкам будет очень низкой. Ну кого удивит найденное с помощью нейросети правило "слопал аспирин" - "снизилась температура"? |
Автор: Mirkes 4.5.2013, 20:55 |
Пара мелких советов/ответов 1. Размер базы для приличной статистики должен быть 2^n от числа параметров. Причем речь идет очисле полных записей. 2. Что делать, если записей много меньше (а в медицине в лучшем цлучае 10n:) Ответ простой - сокращать число параметров. На эту тему есть куча методик, начиная с метода главных компонент. 3. Нейронные цети это лишь один из вариантов непараметрической статистики, следовательно ограничений по количеству записей длз них никто не отменял ![]() |
Автор: mrgloom 13.5.2013, 13:28 |
Так всё таки ЭС отличается от машинного обучения\статистических методов? |
Автор: Mirkes 13.5.2013, 20:13 |
Конечно отличается. В случае со статистикой любого вида (включая нейронные сети и все другие методы машинного обучения) ответственность за качество работы лежит на исполнителе (как правило на программисте). В случае с экспертной системой ответственность по большей части лежит на экспертах, которые формулируют правила. Это ключевое различие. Оттуда совершенно разный подход к тестированию и т.д. |
Автор: mrgloom 14.5.2013, 09:29 |
как то вы странно определили различие. я вообще не до конца понимаю что такое ЭС. как я понимаю там есть просто набор правил-суждений и есть решатель, который делает логический вывод из этих правил. но они вроде могут и "с числами работать" только я не понимаю на каком уровне. |
Автор: Mirkes 14.5.2013, 10:38 |
могут они с числами работать. Например "если А+В>С то" По сути и ЭС и статистика реализуют приблизительно одно и тоже. Но в ЭС вам ЭКСПЕРТ дает правила, а в статистических методах ВЫ эти правила "извлекаете из установленных закономерностей". При этом ВЫ должны статистически подтвердить правильность выводов (т-тест, хи-квадрат и т.п.), что фактически невозможно при малых объемах базы. |