I know machine learning algorithms are good at determining/predicting what an instance is (classification and such) or how instances are related. Are there any algorithms that, given classified training data and classified test data, can describe (in some way, maybe pointing out attributes) why an test instance is classified a particular way.
An example might help as well. Say we're dealing with a binary-class dataset:
Class A B C D ... 1 T 0.5 0.7 0.3 0.9 ... 2 T 0.6 0.2 0.4 0.8 ... 3 T 0.5 0.6 0.6 0.7 ... 4 F 0.9 0.2 0.2 0.5 ... 5 F 0.9 0.8 0.4 0.5 ... ...
Now we want to train a model, given training data of this type, such that we can give a test instance and ask, "Why, or why not, is this instance
class=T? What variables have the most significant impact on the classification?
So I could then give a test instance with a classification given:
Class A B C D ... X T 0.4 0.9 0.8 0.9 ...
The algorithm could then respond, maybe indicating specific attributes which seem to be indicators of distinction between the two classes or something along those lines. For example: "Instance X would tend to be classified as
T because value
A tends to be around
D tends to be around
0.9." Or alternatively there may be no good reason for
X to be classified as
T, then the algorithm would either be inconclusive or have low confidence measure on its results.
I'm not sure if anything like this exists, but have searched around and thought it might be useful to ask here. Any help (for good or worse) is greatly appreciated. Thank you.