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?


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.

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.

  • 1
    $\begingroup$ 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 (norsys.com/netica.html) $\endgroup$ Aug 23 '16 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.