Answers.Body: <p>I think you're coming at your problem slightly wrong... what you're essentially talking about is a belief network.</p>
  <p>You may want to look into existing Bayesian Learning techniques to get your head around this, but belief networks commonly use the exact scenario you're talking about; using a set of known (or uncertain facts) statements to produce some inferred probability of a particular output.</p>
  <p>Even more, they often express this through disease-symptom based examples in tutorials! Try <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.124.2195&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">here</a>.</p>
  <p>My point is that it would be better to use a belief network as the theoretical groundwork is all already there for you, instead of an ANN.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-23T16:30:25.857Z
Answers.Text: If you want to implement a bayesian network from scratch, you're going to have to understand the raw mathematics that drive them. There are a couple of suites out there to run bayesian networks on without having to understand all of the (somewhat confusing at times) maths, such as Netica (https://www.norsys.com/netica.html)
Answers.UserDisplayName: Tim Atkinson
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2016-08-22T16:17:44.060Z
Answers.LastActivityDate: 2021-04-04T15:14:19.830Z
Answers.LastEditDate: 2021-04-04T15:14:19.830Z
Answers.UserDisplayName: Tim Atkinson
Body: <p>I'm trying to come up with the right algorithm for a system in which the user enters a few symptoms and the system has to predict or determine the likelihood that a few selected symptoms are associated with those existing in the system. Then, after associating them, the result or output should be a specific disease for the symptoms.</p>
  <p>The system is comprised of a series of diseases with each assigned to specific symptoms, which also exist in the system.</p>
  <p>Let's assume that the user entered the following input:</p>
  <pre><code>A, B, C, and D
  </code></pre>
  <p>The first thing the system should do is check and associate each symptom (in this case represented by alphabetical letters) individually against a data table of symptoms that already exist. And in cases where the input doesn't exist, the system should report or send feedback about it.</p>
  <p>And also, let's say that <code>A</code> and <code>B</code> were in the data table, so we are 100% sure that they're valid or exist and the system is able to give out the disease based on the input. Then let's say that the input now is <code>C</code> and <code>D</code>, where <code>C</code> doesn't exist in the data table, but there is a possibility that <code>D</code> exists.</p>
  <p>We don't give <code>D</code> a score of 100%, but maybe something lower (let's say 90%). Then <code>C</code> just doesn't exist at all in the data table. So, <code>C</code> gets a score of 0%.</p>
  <p>Therefore, the system should have some kind of association and prediction techniques or rules to output the result by judging the user's input.</p>
  <p>Summary of generating the output:</p>
  <pre><code>If A and B were entered and exist, then output = 100%
  If D was entered and existed but C was not, then output = 90%
  If all entered don't exist, then output = 0%
  </code></pre>
  <p>What techniques would be used to produce this system?</p>
  
Tags: <machine-learning><algorithm-request>
Title: Selecting the right technique to predict disease from symptoms
UserDisplayName: quintumnia
ThreadText: # Selecting the right technique to predict disease from symptoms
  
  (Asked by: username_0 on 2016-08-21)
  
  I'm trying to come up with the right algorithm for a system in which the user enters a few symptoms and the system has to predict or determine the likelihood that a few selected symptoms are associated with those existing in the system. Then, after associating them, the result or output should be a specific disease for the symptoms.
  
  The system is comprised of a series of diseases with each assigned to specific symptoms, which also exist in the system.
  
  Let's assume that the user entered the following input:
  
  ```
  A, B, C, and D
  
  ```
  
  The first thing the system should do is check and associate each symptom (in this case represented by alphabetical letters) individually against a data table of symptoms that already exist. And in cases where the input doesn't exist, the system should report or send feedback about it.
  
  And also, let's say that `A` and `B` were in the data table, so we are 100% sure that they're valid or exist and the system is able to give out the disease based on the input. Then let's say that the input now is `C` and `D`, where `C` doesn't exist in the data table, but there is a possibility that `D` exists.
  
  We don't give `D` a score of 100%, but maybe something lower (let's say 90%). Then `C` just doesn't exist at all in the data table. So, `C` gets a score of 0%.
  
  Therefore, the system should have some kind of association and prediction techniques or rules to output the result by judging the user's input.
  
  Summary of generating the output:
  
  ```
  If A and B were entered and exist, then output = 100%
  If D was entered and existed but C was not, then output = 90%
  If all entered don't exist, then output = 0%
  
  ```
  
  What techniques would be used to produce this system?
  
  **Tags:** machine-learning, algorithm-request
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-08-22. Score: 10
  
  I think you're coming at your problem slightly wrong... what you're essentially talking about is a belief network.
  
  You may want to look into existing Bayesian Learning techniques to get your head around this, but belief networks commonly use the exact scenario you're talking about; using a set of known (or uncertain facts) statements to produce some inferred probability of a particular output.
  
  Even more, they often express this through disease-symptom based examples in tutorials! Try [here](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.124.2195&rep=rep1&type=pdf).
  
  My point is that it would be better to use a belief network as the theoretical groundwork is all already there for you, instead of an ANN.
  
  > **Comments:**
  > **username_1**: If you want to implement a bayesian network from scratch, you're going to have to understand the raw mathematics that drive them. There are a couple of suites out there to run bayesian networks on without having to understand all of the (somewhat confusing at times) maths, such as Netica (https://www.norsys.com/netica.html)  
  
  ---
  
  