What does it mean to extract a good feature? Part of the answer lies in ensuring the feature is informative. But how much information should it contain? We can formally estimate this using Fano’s inequality:
where
is the binary entropy, is a random variable representing the classifier and is a number of classes.
Let’s break this down. Let be an -ary random variable we want to predict. Let be a random variable representing the features we feed into our classifier. We build a classifier to be as close as we can to match the hidden label . Suppose we aim for a small error rate, not exceeding . Formally, .
Let’s rewrite the original inequality (*) to be suitable for our needs. By definition of the conditional entropy:
substituting the above into (*) inequality we have:
then,
In plain English it means that in order to have good classification quality . we need our features to share at least bits with the original data .
Lets take an example of a classification problem with 10 classes. It can be a MNIST dataset for example. Assume it has classes uniformely distributed. That means of total information. Assume we want to design a classifier with error at least , then
Thus, to achieve 90% accuracy, we need at least bits of class information per MNIST image. Compared to the original entropy of bits, this is about 76% of the class information.
If we require the error to be zero (i.e. ), then inequality simplifies to:
That means we have to keep all the information in our. It does agree with our intuition. To have the perfect prediction we have to have all the information.
Opposite, if we don’t care about the error and set it to 0.1 (i.e. =0.1, which corresponds accuracy of 0.5 for 10 classes).
So, again, it aligns with our intuition. To produce random predictions we don’t have to have information at all.
We’ve shown that good classifiers require informative features - features that share a significant amount of information with the original data . However, this is only an upper bound on classifier quality. Even with highly informative features, we can still end up with a poor classifier.
Consider the case where we build a classifier directly from the raw data . While we have all the information, constructing a classifier directly from raw pixels or signals is extremely challenging. This is why feature engineering or automatic feature extraction (as in deep learning) is typically necessary.
Another example is encrypting the original data. While the encrypted data retains all the original information, building a model without the encryption key is nearly impossible.
This suggests that while informativeness is necessary, it is not the only requirement for good features. Intuitively, features should also be simple. This could mean linear separability, mutual independence, or some form of “disentanglement.” I strongly believe that good features should have low computational complexity (e.g., Kolmogorov complexity or the minimum description length. However, this remains an open question in general.