1
$\begingroup$

On Kaggle, the submitted models are different and better models are expected to yield higher scores. However, these scores are calculated on a blinded test set; they are random variables and their realized values contain errors. Thus, when we rank models based on having higher (or lower) realized values of the scores, they may be such because of their underlying true value, error, or both.

It means that the first ranked model is not necessary better than the second model given the observed fact that the difference between the first models is usually 0.01. This difference is too small to say that one model is better than the others, and it can completely due to randomness.

I see no better way to rank models on Kaggle. Of course it is relevant in the sense that we need a precise measurement to rank players, but does it make sense to say that the first model is better than the second one?

$\endgroup$
5
  • $\begingroup$ @sycorax good point, but I think both terms have the same meaning in this context. $\endgroup$
    – Metariat
    Commented Sep 21, 2016 at 16:16
  • $\begingroup$ It makes sense, but it's useless to the contractors. It would be much better to use the simplest model among the first 10 to 100 (Occam's razor). That's why I only enter competitions in Kaggle to achieve a sufficiently good score, and keep my skills sharp, never to be among the first ones. $\endgroup$
    – Firebug
    Commented Sep 21, 2016 at 16:32
  • $\begingroup$ Regarding your use of terminology: why would a realization of a random variable contain an error? A realization is a realization; it will not equal the mean of the distribution if that is what you have in mind, but how would you define the error it is supposed to contain? Also, what goal are the Kaggle criteria supposed to serve? Once you tell us the goal, we can assess whether the means (the evaluation criteria) are sensible in light of the goal. Or maybe your title does not quite reflect the exact question you are after? (If anything, I find your question interesting.) $\endgroup$ Commented Sep 21, 2016 at 16:53
  • $\begingroup$ Interestingly, in the somewhat controversial "Thresholdout" paper, one of their examples of the dangers of adaptive data analysis is the over-fitting driven by leaderboard results on Kaggle, which give implicit information on the "blind" test data. Moreover, their differential-privacy based "re-usable holdout" method essentially adds noise to queries on the test data to prevent overfitting. Perhaps this noise level would be a reasonable target scale for "Kaggle epsilon"? $\endgroup$
    – GeoMatt22
    Commented Sep 21, 2016 at 17:14
  • 1
    $\begingroup$ That only applies to the public leaderboard & doesn't work on the private leaderboard (which is used for final evaluation & is a distinct subset of the test set from the public leaderboard). This means that the final rankings are not gameable in this manner. $\endgroup$
    – benhamner
    Commented Sep 21, 2016 at 22:41

2 Answers 2

5
$\begingroup$

This boils down to using sample means instead of true means to rank models.

"Does it make sense" depends a lot on what Kaggle's aim is. Is their aim to rank people by their expected true means? Then ranking by models by their sample means make sense.

If their aim is to set a rigid ranking system so that any model ranked above another model is significantly better than the lower ranked model, then their approach doesn't make sense.

One solution could be to create a confidence interval for a model's rank to give an indication of the level of uncertainty involved in the rank. But although this approach indicates the uncertainty in the model rankings it might also not make sense if Kaggle's aim isn't to quantify ranking errors.

$\endgroup$
0
3
$\begingroup$

Kaggle runs competitions, and competitions need a way of figuring out who wins. Given the nature of what Kaggle does, a statistical accuracy measure on a test dataset is as good a way of doing it as any.

You can argue about whether the winning model is the "real" best model, but this kind of question applies to any competitive pursuit. If team A wins a soccer game 1-0, or a basketball game 99-98, is it really better than team B? What if team B lost a bunch of players to injury? Or if team B won 5 games in a row prior to losing this one, while team A lost 5 in a row? And so on.

A more interesting question, IMO, is the degree to which such statistical measures of accuracy are particularly relevant, given how models are used in the real world, and the part that other, non-statistical, measures might play. In particular, the models that do well in Kaggle tend to be highly complex, maybe using multiple sub-models and combining them in various ways. If you were to implement such a model, you would also have to ask questions like:

  • How much of a maintenance burden does the model impose? If it contains several different sub-models, do they each require installing (and maintaining) a different software package? What if I use Windows (Server) and the software is only available for Unix/Linux (or vice-versa)?
  • What kind of computational performance can I expect, both when fitting and when scoring? Maybe there is a requirement that the model must be able to score a minimum X rows of data in a given amount of time. Is the model so computationally intensive that it's unacceptably slow on my hardware?

Given these types of questions, you might well conclude that the highly complex model, despite its predictive accuracy, doesn't actually suit your needs. Indeed, you might find that a simpler model is 99% as accurate as the complex one, but is also easier to install and maintain, and runs much faster when scoring.

Of course, the answers to these questions will be highly dependent on your own circumstances, so it would be unreasonable for Kaggle to take them into account for competitions. But that doesn't make them any less important outside that narrow context.

$\endgroup$

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.