My input is a set of objects having different values with respect to a set of features (F1, F2, F3, F4, F5). The output should be a set of minimal features allowing to distinguish all these objects or if not possible, the features that distinguishes most of these objects.

For example F1 distinguishes objects 4 (value of 2) and 5 (value of 11) from the rest of objects. We need to distinguish obj1, obj2 and obj3. F2 distinguishes Obj2 (value of 4) from the obj1 (value of 6) and Obj3 (value of 6). After combining both features F1 and F2, we can distinguish obj4, obj 5, obj4. I need an additional feature that allows to distinguish obj1 from obj3. F4 would do the job, since obj1 (value of 9) and obj 3 (value of 10). Our set allowing to distinguish all objects is then F1, F2, F4. Note that F6 is useless since it does not help distinguish our objects.

Is there a way to obtain this set of features that allows to distinguish all objects, knowing that I have more than 500 features and more than 500 objects.


enter image description here

| cite | improve this question | | | | |
  • $\begingroup$ Clarification: Given a set of distincts objets (Obj1, Obj2, ...etc.), each has a certain number of characteristics (F1, F2, ...etc). I would like to know what is the subset of features (minimal subset) that allows to distinguish all objects from each other. For the example above F1+F2+F4 allows to distinguish obj1 (F1=1, F2=6, F4=9) from Obj2 (F1=1, F2=4, F4=10), from obj3 (F1=1, F2=6, F4=10), from obj4 (F2=1, F6=6, F4=9). This set may not be unique. Ideally, the output would be a set of subsets with a score for each telling the percentage of distinguished objects. $\endgroup$ – Jamel Jan 5 '19 at 17:27

You can try to fit a decision tree on your data with 'Objects' being your response variable. There are some different decision tree algorithms that you can try out. You can do this by hand or using software such as R (rpart library).

| cite | improve this answer | | | | |
  • 1
    $\begingroup$ Nice approach, but this does only work in case all variables have only two levels (as in the above example), otherwise the set of variables used for splits may be sub-optimal. $\endgroup$ – bi_scholar Jan 4 '19 at 16:07
  • $\begingroup$ The feature values can take any value, not just two values as in the example above. $\endgroup$ – Jamel Jan 5 '19 at 17:18

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