Selecting the right technique to predict disease from symptoms 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 was 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.