#jakarta-ee #expert-system
#джакарта-ee #экспертная система
Вопрос:
Я хочу разработать систему прогнозирования работоспособности с использованием интеллектуального анализа данных. Может кто-нибудь дать мне несколько советов о том, как ее разработать?
Требование состоит в том, что когда пользователь вводит первые симптомы, система проверяет, у скольких заболеваний есть те же симптомы, после чего система предоставит несколько вариантов, связанных с симптомами, чтобы она могла различать эти заболевания и определять, что это за заболевание.
Добавленный компонент здесь (и именно здесь входят части интеллектуального анализа данных и прогнозирования) заключается в том, что, когда пользователь вводит симптом, он также должен предлагать другие симптомы, которые они также могут испытывать. Например, если у них высокая температура, существует высокая вероятность того, что у них также есть озноб, поэтому, когда они вводят «лихорадку», это должно указывать на «озноб» в качестве дополнительного симптома.
Комментарии:
1. Я в замешательстве; каков ваш актуальный вопрос? Что вы подразумеваете под «некоторыми советами»? Не могли бы вы уточнить, в чем вам нужна помощь?
2. Я не говорю, что мне нужен весь код, но я не знаю, как его разработать, мне нужно какое-то представление о том, как двигаться вперед. С чего мне начать.
3. Неясно, что вы сделали до сих пор. У вас есть дизайн? Вы собрали свои требования?
4. Вы в основном пытаетесь разработать экспертную систему или механизм правил? en.wikipedia.org/wiki/Expert_system
5. Я хочу разработать экспертную систему
Ответ №1:
Вот один из возможных вариантов проектирования базы данных:
Вот пример того, как будут выглядеть данные: Итак, по сути, это говорит о том, что симптомами гриппа являются лихорадка, озноб и усталость, но симптомами простуды является просто «усталость». (Очевидно, что это не все, что полное, но это хорошо для иллюстрации).
Один человек искал заболевание, симптомами которого были «лихорадка» и «озноб». Второй человек искал заболевание, симптомами которого были просто «озноб». Третий человек искал заболевание, симптомами которого были «лихорадка» и «усталость».
Поиск будет выполняться с помощью хранимой процедуры: вы вводите один или несколько симптомов, и он вставляет запись о поиске в таблицу SearchHistory и извлекает список связанных с ними заболеваний.
Если вы хотите рассчитать вероятность одновременного появления двух симптомов, вы можете использовать определяемую пользователем функцию, которая вычисляет процент поисковых запросов, содержащих оба симптома. Например, если при поиске 1, 2 и 3 в качестве симптомов указаны «лихорадка» и «озноб», но при поиске 4 — «лихорадка» и «усталость», а при поиске 5 — просто «озноб», очевидно, что вероятность того, что кто-то, кто ищет «лихорадку», также будет 60%.ищите «озноб».
Также существует 20%-ная вероятность того, что кто-то, кто ищет «лихорадку», также будет искать «усталость», но в этом случае выборка, очевидно, слишком мала, чтобы точно знать, действительно ли она репрезентативна. (Это один из недостатков этой конструкции — со временем ваши прогнозы будут улучшаться, но ранние прогнозы могут быть не слишком точными).
Преимущество этого заключается в том, что вам не нужно вручную вводить какие-либо данные о вероятности одновременного появления каких-либо симптомов, и система будет «автоматически» адаптироваться и улучшаться с течением времени (т. Е. Ваши прогнозы будут улучшаться по мере получения дополнительных данных) в зависимости от того, что ищут пользователи вашей системы.
Недостатком, конечно, является то, что у вас будут данные о вероятных сопутствующих симптомах только после того, как люди начнут использовать систему, поэтому ранние пользователи не получат преимущества от наличия прогнозов, и потребуется некоторое время, прежде чем можно будет точно предсказать, какие симптомы могут возникнуть. «действуйте вместе «. (Подумайте о приведенном выше случае, когда вы прогнозировали 20%-ную вероятность одновременного появления «лихорадки» и «усталости» на основе только одного поиска).
Надеюсь, это поможет некоторым.
Комментарии:
1. Извините, но я не понимаю, как ее разработать
2. @Hetaram Не могли бы вы более конкретно рассказать о том, что вас смущает?
3. Для меня это совершенно новая концепция. Я не знаю, как это реализовать. Вы предоставили некоторые данные, в которых вы создали две таблицы, одну для симптомов, а другую для болезни, но у меня есть только одна таблица, а атрибутами являются идентификатор, имя, симптомы, тип. Итак, как я могу реализовать это, используя эту концепцию
4. @Hetaram Вы определенно хотите разделить таблицы симптомов и заболеваний; в противном случае вы получите много избыточных данных. Кроме того, у каждого заболевания может быть произвольное количество симптомов.
5. Хорошо, я сделал это, но теперь, как получить симптомы после ввода пользователем одного симптома, чтобы предсказать заболевание