![]() |
|
![]() ![]() ![]() |
|
kalexi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 9.2.2008 Репутация: нет Всего: нет |
Необходимо создать экспертную систему определяющую заболевание по наводящим вопросам. Реализация будет на языке НЕ специализированном под данные задачи.
Как я понимаю на каждый вопрос есть 5 вариантов ответа: Нет, Скорее нет, Не знаю, Скорее да, Да. Я думаю, что, в конце опроса, необходимо дать несколько вариантов ответа по порядку вероятости, т.е. не один ответ. При этом хотелось бы отсеивать лишние вопросы, т.е. если насморк, то про зуд в одном месте уже спрашивать не стоит ![]() Первое, что пришло на ум: есть список заболеваний с симптомами и вопросы. При ответе на вопрос к вероятности каждого заболевания в котором числится симптом о которором идет речь в вопросе прибавляется значение ответа: Нет(-2), Наверное нет(-1), Не знаю(0), Наверное да(+1), Да(+2). Насколько работоспрособна эта схема? Может есть какие идеи по этому поводу? ![]() Спасибо! Это сообщение отредактировал(а) kalexi - 2.3.2012, 01:35 |
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: нет Всего: 29 |
||||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
А можно узнать о каких заболеванях идет речь? Если например о гриппе, ангине и бронхите то можно и не начинать. Прежде чем начинать эту работу хорошо бы найти эксперта и попросить поставить диагноз по ответам на вопросы. Только в качестве эксперта брать не студента или интерна, а действительно эксперта. После многих лет работы с медиками такая простая система вызывает подозрение. Насколько я знаю, такие системы делают на нечеткой логике.
Хотя я не встречал ХОРОШЕГО врача, который в нормальной ситуации поставит диагноз не УВИДЕВ больного (даже при наличии анализов, кардиограмм и т.д.) -------------------- Mirkes |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Я гробанул несколько месяцев, попробовав написать что-то подобное: самообучающуюся систему со статистикой симптомов на входе и статистикой диагнозов на выходе. Все по определенной группе заболеваний с достаточно специфическими симптомами.
Получилось ерунда. Для того, чтобы достоверно научить такую систему, нужно ввести данные, наверное, по десяткам тысяч частных случаев. А у меня были только сотни. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Статистика утверждает простую оценку числа случаев. Если у нас n симптомов на входе, то нужно иметь порядка 2^n случаев. Это гроб для медицинских приложений. Поскольку при n порядка 100 (а обычно их примерно столько), то 2^n порядка 10^30, то есть бесконечность, поскольку население земного шара несколько меньше 10^10. Поэтому статистика в медицине обычно не работает. -------------------- Mirkes |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Mirkes, да нет. Статобработку влоб я отбросил сразу. Использовал Байесовскую сеть. Она позволяет на меньшем количестве данных выявить взаимосвязь между отдельными явлениями. Что-то типа вот этого http://www.hugin.com, если интересно. Но, при имеющемся количестве данный, связей нашлось мало и рванно. Так что пользы никакой этот труд не принес.
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
_Y_, А алгоритм один против всех использовали?
|
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Что-то я не вкурсе. И гугл ничего компактного под это название не выдает. Не дадите ссылку на достойное краткое описание что за алгоритм? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
_Y_, Я уже не помню где-то попадалось. Но суть в том что при обучение мы тренируем перспетрон на не только берём элементы из своего класса на который настраиваем. Но и на отрицательных результатах. В качестве отрицательных берём элементы из всех других классов.
Тем самым алгоритм менее требователен к числу образцов. |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Понятно. Проблема медицинских наблюдений в том, что для большинства случаев результат не отрицательный, а вроде как null. В смысле - оценка данного параметра не проводилась. Типа, одному больному сняли кардиограмму, другому энцефалограмму, третьему.... ну и так далее. Нельзя же назначать вскрытие 100 процентам пациентов ![]() -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
ну если не на специальном языке, то кто мешает написать на все на if'ах и у каждого вопроса проставить свой весовой коэффициент и у ответа проставить умножающий коэффициент, потом составить таблицу результатов каким "очкам" соответствует какое заболевание.
но это будет плохая экспертная система. Это сообщение отредактировал(а) mrgloom - 11.3.2012, 15:12 |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Идея хорошая и широко применяемая, однако в медицине она под большим вопросом по двум причинам. Одну четко указал А вот вторая гораздо существенней - то, что человек болеет ангиной не означает, что он не болеет гастритом и еще десятком заболеваний. То есть если в базе указано, что данному пациенту поставили диагноз ангина, это не означает, что при обучении постановке диагноза гастрит его можно использовать как пример "здорового" пациента. -------------------- Mirkes |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Мне кажется (могу и забыть - занимался этим лет несколько назад), что Байесовские сети учитывают именно такие "много-диагнозные" случаи. Но на практике, надо, видимо, выделять группу симптомов и диагнозов, достоверно "малосвязанных" с прочими (не входящими в модель) состояниями. Введение каждого дополнительного симптома или диагноза повышает мерность системы. Иначе можно прийти к ситуации, когда для постановки диагноза "вывих пятки" мы должны учесть кинетический момент каждой молекулы во вселенной ![]() -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |