5
$\begingroup$

Assume we train a binary classification model using the training set. Also assume that the model returns an estimate of the probability of success $\hat f(x)$ for every feature vector $x$ and was trained with "an intent of" minimizing out of sample cross-entropy error (maximizing likelihood). Moreover, assume we actually picked the algorithm based on the training data (but never looked at the test data), so we don't trust cross-validation (because training data can't be "unseen" by researcher who created an algorithm to train $\hat f$).

We are interested in the estimation of the out of sample misclassification error $E_{out} = P((\hat f(x) \geq 0.5) \neq y)$. The commonly used approach is to interpret the number of misclassified points $n_{\text{test,misclassified}}$ in the test set as an observation of a binomial random variable with probability $p = E_{out}$ and number of trials $n = n_{\text{test}}$ (number of points in the test set). Then the classical estimate would be $\hat E_{out} = n_{\text{test,misclassified}} / n_{\text{test}}$. This gives an estimator with 0 bias but potentially high variance (if the test set is small). We may want to use additional knowlede we have to reduce the variance. We have e.g.:

  1. Test and training sets,
  2. Estimated probabilities $\hat f(x)$.

Are there any commonly occurring situations where we can leverage any additional knowledge to provide a better estimate of misclassification error?

$\endgroup$
5
  • $\begingroup$ Not trusting cross validation would seem to imply you have larger issues. $\endgroup$ Commented Jul 14, 2017 at 17:30
  • $\begingroup$ Why? Cross validation results are only fully trust-able when the training process can isolate arbitrary subset of the data as a test set, which is not the case when the model choice is performed by a researcher looking at the data. No? $\endgroup$
    – fiktor
    Commented Jul 15, 2017 at 22:01
  • $\begingroup$ Why should the researcher's choice of model affect the test set? Sepearate your train/test set with a random number generator. $\endgroup$
    – user48956
    Commented Jul 17, 2017 at 19:52
  • $\begingroup$ I'm saying that the test set should best be picked before researcher does exploratory data analysis. Otherwise rigourously speaking test set error can no longer be trusted since the model choice is not independent of the test set. $\endgroup$
    – fiktor
    Commented Jul 17, 2017 at 23:45
  • $\begingroup$ If you don't want to use cross-validation because of the effects of "researcher degrees of freedom", then it is difficult to see how "test and training sets" or "estimated probabilities" are likely to be admissible. Personally, I think I would estimate the posterior distribution of the test error rate (taking into account the uncertainties in the parameter estimates) if you have so little data, as at least that will give an indication of the uncertainty in the estimate of the quantity of interest. $\endgroup$ Commented Sep 19, 2021 at 8:54

2 Answers 2

1
$\begingroup$

If you are really worried about unaccounted "researcher degrees of freedom", I suspect the best you can do is to automate your model construction procedure (including feature selection, hyper-parameter optimisation etc.), so that the researcher is not making any choices after seeing the data. You can then use cross-validation provided you perform the whole model construction procedure independently in each fold.

In practice, it is often best to simply acknowledge there are unaccounted degrees of freedom, and make an effort not to over-analyse the data. While AutoML has become a hot topic in machine learning, I suspect "CyborgML", where the operator becomes an implicit and unaccounted part of the machine learning procedure, is likely to be a significant issue for the foreseeable future, especially in Deep Learning, where models are computationally expensive to fit. This ought to be less of a problem for more classical statistics.

$\endgroup$
0
$\begingroup$

$Eout=P((\hat f(x)≥0.5)≠y) $ is rarely used. You're assuming that 0.5 is a useful decision threshold. What if all of $\hat f(x)$ is above 0.5, or all below?

Because $\hat f(x)$ is continuous, you can set this threshold in many different ways. At one, true positive rate is maximized. At the other, false positive rate is maximized. Somewhere in between F1 is maximized. Which is best, really depends on your application.

For classification problems, AUC and Average Precision scores ingrate over all decision thresholds to give you a single number.

However these have their own problems (as do TPR and FPR). AUC is a terrible metric when class population size are imbalanced.

But to answer your specific question, which I understood as, how can I evaluate my algorithm without being 'polluted' by train data. Cross validation is the gold standard here. You separate the train/test into N non-overlapping pairs of train and test. The trainer never see the test data. You end up with k models and k independent tests.

In the extreme case, you can set the test set size=1, and train on the rest. If you assume this tiny difference in training data has little effect on the model, your test set size can be as large as your training set size (although small test sets aren't suitable for calculating AUC).

Confidence intervals on TPR, FPR, AUC can also be calculated and are useful. See: binomial CI and AUC CI

$\endgroup$
10
  • $\begingroup$ Why is AUC terrible when class population is unbalanced? It is the probability the model scores a random positive class higher than a random negative class, it seems to me it is balance agnostic. $\endgroup$ Commented Jul 14, 2017 at 17:29
  • $\begingroup$ Well -- I have an Alzheimer model with an AUC of 0.87. Sounds respectable. Is it useful? In this population (which includes a lot of young people. The model derives this AUC mainly from looking at the age feature. Young people rarely get Alzheimer's. Is this a good test for Alzheimer disease? Not really -- here's a couple of sample decision cuts: accuracy=98.8%, tpr=22.9% fpr=1% ppv=2% npv=99.8%. At the other end: accuracy=30%, tpr=98.% fpr=70% ppv=0.01% npv=99.9%. The AUC is reasonable, but age is not a good test for alheimer's $\endgroup$
    – user48956
    Commented Jul 17, 2017 at 19:30
  • $\begingroup$ ppv=2% basically means that if the model says you will get Alzheimer's, it will be right just 2% of the time. :-/ The average precision score for this same model is 0.05. This is a good reflection of the model's poor ppv, across many different FPRs. $\endgroup$
    – user48956
    Commented Jul 17, 2017 at 19:33
  • $\begingroup$ ncbi.nlm.nih.gov/pmc/articles/PMC4403252 -- argues for AP scores where the dataset is imbalanced. "The AUC lacks sensitivity in identifying cases". In my Alzheimer case, the model gets high AUC by (correctly) identifying young people won't get Alzheimer's. But performance for older people, where all the positive cases are, its basically, a crap shoot. $\endgroup$
    – user48956
    Commented Jul 17, 2017 at 19:45
  • 1
    $\begingroup$ If you're goal is to identify alzheimers in the older population, why not just leave the young out of the training and testing sets? $\endgroup$ Commented Jul 17, 2017 at 20:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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