Ranked or Ordered Class Classification My friend was asked this question in an interview for analytics and I cannot figure out the answer so I would like to see how could this data science problem be solved. Here's the problem:

Let's say the keyword &quot;Superman&quot; has a search volume of 250k per
month. Other related search terms can be &quot;Superman Logo&quot; (55k),
&quot;Batman vs Superman&quot; (60k), &quot;Superman returns&quot; (50k) etc. using which
users search for a certain topic in Google in a country (say US).
However, there may be thousands of keywords with the word &quot;Superman&quot;
in it, and we don't always have exact data for many of these keywords
with low volume (less than 1000). In order to find the volume of these
topics we use predictions based on the data that we already have for
high volume keywords.  For example, we may say that the term &quot;Future
Superman&quot; will not be searched by a lot of people and its volume can
be medium (close to 300).
Similarly, terms &quot;Superman image&quot; and &quot;Superman jacket&quot; will have
medium volume and terms that people rarely search will have low volume
like &quot;Long Sleeve Superman Shirt&quot; (100) and then there are terms like
&quot;cheap superman shirt&quot; or &quot;Superman college&quot; which will have very low
volume. Can you think of an approach on how you can classify keywords
into &quot;Medium&quot;, &quot;Low&quot; and &quot;Very Low&quot; by using some logic when we only
know the high volume keywords?
Your answer should be descriptive and backed by reason. (Hint- your
approach may be to classify certain words which if present will make
the keyword &quot;low&quot; volume or &quot;very low&quot; volume. Or your approach can be
based on number of words in a keyword, spellings, where exactly a term
appears in a phrase and other common human psychology that works
during a search).
This looks like it could be framed either as Ordinal Regression or Ranking using Discounted cumulative gain

Ordinal regression is useful when you are trying to classify classes that have some inherent order like &quot;Medium&quot;, &quot;Low&quot; and &quot;Very Low&quot;. Used in psychology and marketing extensively it's a fit modeling procedure for this particular problem. The implementation is quite complicated but in a nutshell can be understood as overlapping distributions that can be understood as probabilities of them belonging to said class. R has an Ordinal Regression package.

Another one is Ranking, most machine learning packages include that in the form of Discounted Cumulative Gain which is a measure of rank quality and it is often used to measure effectiveness of web search engine algorithms or related applications. In xgboost it's found as rank:ndcg.

A naive approach but that can be accurate too is a simple multi-class classification. Information about the order will not be included in the algorithm but surprisingly its results are similar in these kinds of problems because the algorithms underneath like neural nets are now quite powerful specially when you have a big dataset.