нада поставить диагноз
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.134] |
|
|
правила раздела Алгоритмы

| Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
нада поставить диагноз
|
Сообщ.
#16
,
|
|
|
|
ну, можно оценить сверху вероятность каждой болезни следующим путем:
1. Расширить объем хранимой информации. Добавим n новых событий: An+i = not Ai 2. Разбить события (симптомы) на статистически независимые группы. Т.е. мы получим группы событий G1..Gk, такие, что любая двойка событий, взятых из разных групп будет статистически независима. То же должно быть верно для любых трех событий из разных групп и т.д. вплоть для любых k событий из разных групп. Также желательно, чтобы любую из групп было нельзя разбить на две независимые подгруппы. Пример: между состоянием кожи пациента и состоянием зубов нет зависимости, тогда можно создать две группы: {«Кожа сухая», «Кожа не сухая» } {«Зубы здоровые», «Зубы не здоровые»} 3. Для событий каждой группы хранить полный список условных вероятностей: не только для одного события при условии другого, но и для одного события при условии двух других, трёх и т.д. до размера группы минус 1. 4. Симптомы каждой из болезней упорядочить по группам. Пример: (операция * обозначает пересечение событий). Группы: G1={A1,A4} G2={A2,A3 ,A5 ,A6} Болезнь1 = A1 * A2* A3 После разбиения получим Болезнь1 = (A1 ) *(A2* A3 ) 5. Тогда вероятность заболевания считается как произведение вероятностей пересечения событий, входящих в одни и те же группы: P(Болезнь1) = P(A1 ) *P(A2* A3 ) 6. Просматриваем список по группам. У нас может не хватить информации для определения вероятности пересечения событий из некоторой группы, тогда оцениваем вероятность сверху как 1 и запоминаем, что для этой группы не хватило данных, иначе см пункт 7. 7. Расчитываем вероятность пересечения событий группы как условную вероятность пересечения событий. Т.е. если мы наблюдаем события-симптомы Ak и Al, то вероятность пересечения событий Ax и Ay будет равна P(Ax*Ay | Ak,Al) 8. Получили вероятность заболевания. Просмотрев, для каких групп не хватает данных и пришлось брать по умолчанию 1, можно запросить данные по ним и уточнить диагноз. |
|
Сообщ.
#17
,
|
|
|
|
Скажи група должна хранить только пары взаимноисключающих симтомов (одновременно болеть и не болеть голова не может). Или група должна хранить все комбинации симптомов для данной болячки. Я так понял группа для данной болячки. Тогда, извини может я невнимательно читал и шото пропустил, но я так понимаю туда кудато в эту группу нада повписывать и условные вероятноти...
|
|
Сообщ.
#18
,
|
|
|
|
Цитата kogan, 12.12.02, 12:15:29 Я так понял группа для данной болячки. не совсем. Я (немного неудачно) одним и тем же словом обозначил две разные вещи. Группа (первого рода) – это набор статистически зависимых симптомов - симптомов вообще, а не симпотов конкретной болезни. А группа второго рода – это максимально большой набор необходимых для данной болезни симптомов, лежащих в одной группе первого рода. Т.е. сначала есть база данных по симптомам и про болезни пока речи не идёт. Из этих симптомов на этапе проектирования базы симптомов выделяются статистически зависимые группы первого рода. А затем, на этапе проектирования базы болезней, для каждой болезни создаем из требуемых для неё симтомов группы второго рода – и записываем в базу болезней сгруппированными. Цитата kogan, 12.12.02, 12:15:29 Скажи група должна хранить только пары взаимноисключающих симтомов (одновременно болеть и не болеть голова не может). Тоже не обязательно, зависит от подхода составителя базы. Расмотрим пример с температурой, можно привести три варианта составления группы температура. Я здесь буду указывать имя симптома и диапазон температур. Отрицания симптомов не указываю. Вариант1: Норма [36.5 , 37.0) Повышенная[37.0 , 100.0) Пониженная[0.0,36.5) + отрицания Вариант2: Норма [36.5 , 37.0)+ отрицание, «не норма» Вариант3: Норма [36.5 , 37.0) Повышенная[37.0 , 100.0) Пониженная[0.0,36.5) Крайне высокая[39.0 , 100.0) Крайне низкая[0.0,34.5) + отрицания Вариант один: шесть симптомов (из них три – дополнения). Среди них есть как взаимоисключающие, так и невзаимоисключающие. Вариант два: два симптома, то про что ты говорил. Симптомы взаимоисключающие. Вариант три: десять симптомов, иерархическая модель симптомов. Бывает просто повышенная температура, а бывает крайне высокая – как частный случай просто повышенной. Среди симптомов есть как взаимоисключающие, так и невзаимоисключающие. Третий вариант ИМХО наиболее пригодный для практики. Для одних болезней требуется, чтобы температура просто была повышенной, а для других – не менее 39. Цитата kogan, 12.12.02, 12:15:29 но я так понимаю туда кудато в эту группу нада повписывать и условные вероятноти... Верно, вероятность появления повышенной температуры при наблюдении нормальной (равна 0). Вероятность повяления крайне высокой температуры при появлении повышенной ( а это уже не ноль). И т.д. Но это самый простой случай, когда есть один параметр – температура – и предполагается, что остальные показания не зависят от него. Т.е. нет статистической зависимости между температурой и содержанием сахара в крови. Но между содержанием сахара в крови и вырабатыванием, кажется, инсулина (если ошибся и/или несу чушь – я не медик, так, краем уха слышал), зависимость уже будет. И построив по первому варианту симптомы для сахара в крови и выработки инсулина, придется считать вероятность нормального количества инсулина при повышенной концентрации сахара в крови, повышенного для пониженной и т.д. Т.е.сахар в крови и инсулин будут в одной группе первого рода, а температура в другой группе первого рода. И если при проектировании базы данных болезней появятся у одной болезни температура и сахар в крови как желаемые/нежелаемые симптомы, то растолкать их надо по разным группам второго рода. А если появятся сахар в крови и инсулин, то их надо поместить в одну группу второго рода. |
|
Сообщ.
#19
,
|
|
|
|
Скажи а скоко предполагается таких групп второго рода.
Если я правильно понял то для каждой болезни предолагается групка первого рода и второго |
|
Сообщ.
#20
,
|
|
|
|
Извини, глупый вопрос , на то что написано выше отвечать ненада.
А вот на то что ниже, если сочтеш нужным... Скажы можна ли расценить написаное выше как: первая группа - это независимые симптомы вторая - зависимые симптомы (первый сопровождается вторым с вероятностю...) Если встречаем симптомы из второй группы то пересчитуем вероятность болячки по формуле условной вероятноси для зависимых. Если два из первой группы то пересчитать для независимых. Но на практике встречаются болячки с симптомами из двух групп одновременно. Как пересчитовать , по какой формуле. |
|
Сообщ.
#21
,
|
|
|
|
Цитата kogan, 14.12.02, 02:44:39 Скажы можна ли расценить написаное выше как: первая группа - это независимые симптомы вторая - зависимые симптомы (первый сопровождается вторым с вероятностю...). Если «первая группа» - это не первого или второго рода, а первая в списке групп некоторого рода, то как раз так и не следует расценивать. Первая группа – симптомы, не зависящие от второй группы, а вторая группа – симптомы, не завясящие от первой группы. Если встречаем симптомы только из разных групп, то вероятность болезни – как вероятность пересечения независимых. Если есть симптомы, лежащие в одной группе – см. пример: Пример: требуемые симптомы A1,A2 принадлежат первой группе, A3, A4 – принадлежат второй группе. Пусть наблюдаются симптомы B1 из первой группы и B2 из второй, тогда P(A1*A2*A3*A4 | B1, B2)=P(A1 | B1, B2)*P(A2 | A1, B1, B2)*P(A3 | A2,A1, B1, B2)*P(A4 | A3,A2,A1, B1, B2). т.к. A2 и A1 не зависят от B2, и т.к. A3 и A4 не зависят от A2, A1, B1 то P(A1 | B1, B2) = P(A1 | B1) P(A2 | A1, B1, B2)= P(A2 | A1, B1) P(A3 | A2,A1, B1, B2)= P(A3 | B2) P(A4 | A3,A2,A1, B1, B2) = P(A4 | A3,B2) и получаем P(A1*A2*A3*A4 | B1,B2)=P(A1 | B1)*P(A2 | A1,B1) * P(A3 | B2)*P(A4 | A3,B2). при известных B1 и B2 и условных вероятностях можно легко всё посчитать. И кстати, теперь уже не надо задавать B1 и B2 вероятностями для «нечеткости логики», условные вероятности обеспечат всю необходимую нечеткость. Достаточно того факта, что наблюдаются B1 и B2. Такое разделение на группы позволяет не хранить вероятность того, что чешется левое ухо при условии, что человек ушибся коленкой – первое и второе никак не связаны. Т.е. получается колоссальная экономия места в оперативной памяти. |
|
Сообщ.
#22
,
|
|
|
|
Скажи , а если такая ситуацыя:
Есть болезнь В, для однозначной оценки которой требуется А1, А2, А3. Но так вышлу (ну на пример) что у нас есть еще и А4(80\%), А5(60\%) (цифры указывают вероятность А4 и А5 для данной болезни). Таким образом вышло так что есть А1, А2, А3, А4, А5. По идее если есть А1, А2, А3 можно говорить с 99\% вероятностью что это болезнь В. НО!!! Есть одно НО! По логике Заде вместо своих обещаных 99\% мы получаем только min(А1, А2, А3, А4, А5)=60\%; Почему, ведь достаточное условие выполнилось А1, А2, А3 присутствуют, а А4, А5 не отрицают, просто есть такие. Например: Для грипа достаточно Температура Головная боль Ломота А больной сказал что он ещо Чьхает Слабость То эти два симптома не отрицают грип, они не обязательны, если будут только они то грип нельзя давать, но если они есть то харашо. А вот если их подставить в формулу то вероятность Грипа не усилилась а опустилась. Скажи , что делать тогда, какой подход? Может я неправильно подставляю... |
|
Сообщ.
#23
,
|
|
|
|
Смотри у меня хранится такЖ
при присутствии симптома А лигично утверждать симптом В с уверенностю 69\% Может коректней будет хранить коефицыенты кореляции. Ведь хто его знает как зависят эти чертовы симптомы. Но явно неленейно... |
|
Сообщ.
#24
,
|
|
|
|
Значится так: я подумал и пришел к выводу, что нечеткость (проценты) в указании симптомов не имеет смысла т.к. в рамках обычного тервера эти вероятности наблюдения указанных симптомов лишь запутывают обстановку. Т.е. вместо "наблюдается А с вероятностью 60\%" надо просто говорить "наблюдается А".
Т.к. при наблюдении всегда имеет место некоторая неуверенность, то справляться с ней лучше за счет создания иерархической модели симптомов, как в примере с температурой: когда есть симптом "выше нормы" и симптом "крайне высокая", частный случай первого. И если не уверен в том, что температура "крайне высокая", говори, что "выше нормы". Цитата kogan, 15.12.02, 15:02:10 Но так вышлу (ну на пример) что у нас есть еще и А4(80\%), А5(60\%) (цифры указывают вероятность А4 и А5 для данной болезни). Ответ на вопрос: "как составишь базу данных по болезни, так и будет". Т.е. можешь просто указать симптомами {А1, А2, А3}, а можешь {А1, А2, А3, НЕ А4, НЕ А5}. Зависит от болезни. Так, если ты "чихаешь" и "повышенная температура", то это "насморк". А если "чихаешь" и НЕ "повышенная температура", то это аллергия. Но указывать обязательным условием к насморку отсутствие переломов ног - нелепо. Пациент может переломать ноги и простудиться одновременно. Так, может оказаться, что пациент болен сразу двумя болезнями - А1А2А3 и А4А5. Цитата kogan, 15.12.02, 15:02:10 По логике Заде вместо своих обещаных 99\% мы получаем только min(А1, А2, А3, А4, А5)=60\%; Почему, ведь достаточное условие выполнилось А1, А2, А3 присутствуют, а А4, А5 не отрицают Именно, что по нечеткой логике, а не по терверу. Тервер и нечеткая логика - совершенно разные науки. ИМХО, тебе надо решить, как ты подходишь к определению болезни - с позиций тервера или нечеткой логики. И после принятия решения действовать строго в рамках указанной модели и не плодить гибридов. Мне самому знакомо это желание "соединить лучшие стороны принципиально разных подходов", но без большого опыта получить осмысленные результаты можно лишь чисто случайно. Цитата при присутствии симптома А лигично утверждать симптом В с уверенностю 69\% Может коректней будет хранить коефицыенты кореляции. Ведь хто его знает как зависят эти чертовы симптомы. Но явно неленейно... понимаешь, при использовании тервера хранить придется не только то, о чем ты говоришь, но и вероятность В при А и С, при А, С, D, ..... - т.е. при наличии всех комбинаций всех статистически зависимых с ним симптомов. понимаешь, в рамках тервера считается, что если наблюдаются все нужные для болезни симптомы (и не наблюдаются все мешающие), то болезнь однозначно определена. Так вот - все эти условные вероятности нужны лишь для того, чтобы по неполным, но верным данным определить вероятность того, что наблюдении всего того, о чем доложили, наблюдается то, что нужно и не наблюдается то, что не нужно. Теперь о нелинейности - при подходе в рамках тервера никакой нелинейности быть не может - само слово лишено смысла. Либо симптом наблюдается, либо не наблюдается. Температура - не "37.94623 градуса", она "повышенная". Линейны численные величины, а не события. |
|
Сообщ.
#25
,
|
|
|
|
Забудь, о всем что писалось, просто если можна дай число
Есть Р(А) = 0,6 Р(В) = 0,8 Р(С) = 0,7 Нада посчитать Р(Е) - ? при условии выше перечесленных. Извесно что Р(Е) зависит от выше перечисленых. Если чегото хватать небудет то если уже сильно нада то Р(Е) - взять 0,02 . Это вероятность что каждий человек болен болезнью Е. Нада посчитать Р(Е/А,В,С) - ? Если можна, пожалуста число. Так вышла шо я не шарю как это сделать. Если вам в лом то скажите что за книга |
|
Сообщ.
#26
,
|
|
|
|
Может както через Дискриминантный анализ , или Многомнрное шкалирования. Ну я не компетентен в этом вопросе. Формулы - харашо. Но нада цифра...
|
|
Сообщ.
#27
,
|
|
|
|
Цитата kogan, 19.12.02, 17:50:13 Р(А) = 0,6 Р(В) = 0,8 Р(С) = 0,7 Нада посчитать Р(Е) - ? при условии выше перечесленных. P(E|A,B,C) должно задаваться при проектировании БД. А находится оно или опытным путем, или устанавливается в более-менее разумное значение. Вероятности А B С отношения к числу никакого не имеют, т.к. P(E|A,B,C) обозначает вероятность при свершившихся А В С. И не надо про дискриминатный анализ - в изложенном виде это классический тервер. |
|
Сообщ.
#28
,
|
|
|
|
Скажи , а когда больной сядет протестироватся а прога ему в выдаст заключение:
P(E|A,B,C) должно задаваться при проектировании БД. А находится оно или опытным путем, или устанавливается в более-менее разумное значение. Вероятности А B С отношения к числу никакого не имеют, т.к. P(E|A,B,C) обозначает вероятность при свершившихся А В С. И не надо про дискриминатный анализ - в изложенном виде это классический тервер. Больной подумает, подумает, что за #@$\% и будет тестироватся в той проге котороя выдает цыфры а не #@$\% разную. Но между прочем серавно спасиба за консультацию |
|
Сообщ.
#29
,
|
|
|
|
Цитата kogan, 20.12.02, 17:40:28 Скажи , а когда больной сядет протестироватся а прога ему в выдаст заключение: P(E|A,B,C) должно задаваться при проектировании БД. прога должна выдать цифры, но скажи как мне - откуда я тебе возьму P(E|A,B,C), если я 1. не знаю, что такое Е, А, В, С. 2. в силу пункта один не могу установить связь между Е и А В С. 3. не имею доступа к медицинской статистике, по которой могу проверить/уточнить свои выводы. Ты что, собираешься писать экспертную систему исходя лишь из абстрактных рассуждений и пренебрегая статистическими данными? В таком случае у тебя очень крупные шансы отправить на тот свет сотню-другую тяжело больных людей. Цитата Есть Р(А) = 0,6 Р(В) = 0,8 Р(С) = 0,7 Нада посчитать Р(Е) - ? при условии выше перечесленных. И сдается мне, то ты не понимаешь самых основ тервера. |
|
Сообщ.
#30
,
|
|
|
|
Описание и реализация системы EMYCIN http://art-int.by.ru/main.html Загляни в теоретическую часть. Сайт правда хохлятский, но понять можно
|