Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен совет по разработке экспертной системы... Не на специализированном языке 
:(
    Опции темы
kalexi
  Дата 2.3.2012, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 9.2.2008

Репутация: нет
Всего: нет



Необходимо создать экспертную систему определяющую заболевание по наводящим вопросам. Реализация будет на языке НЕ специализированном под данные задачи.
Как я понимаю на каждый вопрос есть 5 вариантов ответа: Нет, Скорее нет, Не знаю, Скорее да, Да.
Я думаю, что, в конце опроса, необходимо дать несколько вариантов ответа по порядку вероятости, т.е. не один ответ. При этом хотелось бы отсеивать лишние вопросы, т.е. если насморк, то про зуд в одном месте уже спрашивать не стоит smile  (правда не знаю надо ли это, может программа определит сразу несколько заболеваний).

Первое, что пришло на ум: есть список заболеваний с симптомами и вопросы. При ответе на вопрос к вероятности каждого заболевания в котором числится симптом о которором идет речь в вопросе прибавляется значение ответа: Нет(-2), Наверное нет(-1), Не знаю(0), Наверное да(+1), Да(+2).

Насколько работоспрособна эта схема? Может есть какие идеи по этому поводу? smile
Спасибо!

Это сообщение отредактировал(а) kalexi - 2.3.2012, 01:35
PM MAIL WWW   Вверх
Wolf1994
Дата 2.3.2012, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(kalexi @  2.3.2012,  01:34 Найти цитируемый пост)
Может есть какие идеи по этому поводу?

Ещё вариант.

Составить дерево. Если выбор сделан, переходить к следующей ветви, если нет - раскрывать все вопросы следующего уровня.
PM MAIL WWW   Вверх
Mirkes
Дата 2.3.2012, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



А можно узнать о каких заболеванях идет речь? Если например о гриппе, ангине и бронхите то можно и не начинать. Прежде чем начинать эту работу хорошо бы найти эксперта и попросить поставить диагноз по ответам на вопросы. Только в качестве эксперта брать не студента или интерна, а действительно эксперта. После многих лет работы с медиками такая простая система вызывает подозрение. Насколько я знаю, такие системы делают на нечеткой логике.
Хотя я не встречал ХОРОШЕГО врача, который в нормальной ситуации поставит диагноз не УВИДЕВ больного (даже при наличии анализов, кардиограмм и т.д.)


--------------------
Mirkes
PM MAIL   Вверх
_Y_
Дата 2.3.2012, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



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

Получилось ерунда. Для того, чтобы достоверно научить такую систему, нужно ввести данные, наверное, по десяткам тысяч частных случаев. А у меня были только сотни.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Mirkes
Дата 5.3.2012, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(_Y_ @ 2.3.2012,  23:12)
Я гробанул несколько месяцев, попробовав написать что-то подобное: самообучающуюся систему со статистикой симптомов на входе и статистикой диагнозов на выходе. Все по определенной группе заболеваний с достаточно специфическими симптомами. 

Получилось ерунда. Для того, чтобы достоверно научить такую систему, нужно ввести данные, наверное, по десяткам тысяч частных случаев. А у меня были только сотни.

Статистика утверждает простую оценку числа случаев. Если у нас n симптомов на входе, то нужно иметь порядка 2^n случаев.
Это гроб для медицинских приложений. Поскольку при n порядка 100 (а обычно их примерно столько), то 2^n порядка 10^30, то есть бесконечность, поскольку население земного шара несколько меньше 10^10.

Поэтому статистика в медицине обычно не работает.



--------------------
Mirkes
PM MAIL   Вверх
_Y_
Дата 5.3.2012, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Mirkes, да нет. Статобработку влоб я отбросил сразу. Использовал Байесовскую сеть. Она позволяет на меньшем количестве данных выявить взаимосвязь между отдельными явлениями. Что-то типа вот этого http://www.hugin.com, если интересно. Но, при имеющемся количестве данный, связей нашлось мало и рванно. Так что пользы никакой этот труд не принес.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Pavia
Дата 6.3.2012, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



_Y_, А алгоритм один против всех использовали?
PM MAIL   Вверх
_Y_
Дата 6.3.2012, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Pavia @  6.3.2012,  07:38 Найти цитируемый пост)
алгоритм один против всех

Что-то я не вкурсе. И гугл ничего компактного под это название не выдает. Не дадите ссылку на достойное краткое описание что за алгоритм?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Pavia
Дата 6.3.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



_Y_, Я уже не помню где-то попадалось. Но суть в том что при обучение мы тренируем перспетрон на не только берём элементы из своего класса на который настраиваем. Но и на отрицательных результатах. В качестве отрицательных берём элементы из всех других классов.

Тем самым алгоритм менее требователен к числу образцов.
PM MAIL   Вверх
_Y_
Дата 6.3.2012, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Pavia @  6.3.2012,  11:54 Найти цитируемый пост)
 Но и на отрицательных результатах. В качестве отрицательных берём элементы из всех других классов.

Понятно. Проблема медицинских наблюдений в том, что для большинства случаев результат не отрицательный, а вроде как null. В смысле - оценка данного параметра не проводилась. 

Типа, одному больному сняли кардиограмму, другому энцефалограмму, третьему.... ну и так далее. Нельзя же назначать вскрытие 100 процентам пациентов smile Вот и получаются огромные дыры в данных.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
mrgloom
Дата 11.3.2012, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



ну если не на специальном языке, то кто мешает написать на все на if'ах  и у каждого вопроса проставить свой весовой коэффициент и у ответа проставить умножающий коэффициент,  потом составить таблицу результатов каким "очкам" соответствует какое заболевание.
но это будет плохая экспертная система.

Это сообщение отредактировал(а) mrgloom - 11.3.2012, 15:12
PM MAIL   Вверх
Mirkes
Дата 11.3.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(Pavia @  6.3.2012,  11:54 Найти цитируемый пост)
_Y_, Я уже не помню где-то попадалось. Но суть в том что при обучение мы тренируем перспетрон на не только берём элементы из своего класса на который настраиваем. Но и на отрицательных результатах. В качестве отрицательных берём элементы из всех других классов.Тем самым алгоритм менее требователен к числу образцов. 


Идея хорошая и широко применяемая, однако в медицине она под большим вопросом по двум причинам. Одну четко указал 
Цитата(_Y_ @  6.3.2012,  14:43 Найти цитируемый пост)
Понятно. Проблема медицинских наблюдений в том, что для большинства случаев результат не отрицательный, а вроде как null. В смысле - оценка данного параметра не проводилась.
Типа, одному больному сняли кардиограмму, другому энцефалограмму, третьему.... ну и так далее. Нельзя же назначать вскрытие 100 процентам пациентов  Вот и получаются огромные дыры в данных. 


А вот вторая гораздо существенней - то, что человек болеет ангиной не означает, что он не болеет гастритом и еще десятком заболеваний.
То есть если в базе указано, что данному пациенту поставили диагноз ангина, это не означает, что при обучении постановке диагноза гастрит его можно использовать как пример "здорового" пациента.



--------------------
Mirkes
PM MAIL   Вверх
_Y_
Дата 11.3.2012, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Mirkes @  11.3.2012,  17:04 Найти цитируемый пост)
болеет ангиной не означает, что он не болеет гастритом и еще десятком заболеваний

Мне кажется (могу и забыть - занимался этим лет несколько назад), что Байесовские сети учитывают именно такие "много-диагнозные" случаи. Но на практике, надо, видимо, выделять группу симптомов и диагнозов, достоверно "малосвязанных" с прочими (не входящими в модель) состояниями.

Введение каждого дополнительного симптома или диагноза повышает мерность системы. Иначе можно прийти к ситуации, когда для постановки диагноза "вывих пятки" мы должны учесть кинетический момент каждой молекулы во вселенной smile



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.