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.