Introduction: Lately I've been looking into different machine learning methods to work around different business problems. By now I have a good, basic understanding of most regression and classification methods, and I'm able to use these methods to predict numeric values given other numeric values and/or simple categories (e.g. an employee's salary given age, years of experience and level of education) or a binary classification (e.g. will this employee leave the company based on the same variables).

What I'm looking for: However, I haven't found the right method for the problem I initially wanted to solve, which involves predicting a non-numeric, non-binary value from a mix of numeric and categorical data. I'm not looking for an in-depth explanation of how to solve the exact problem, but merely advise on which techniques/methods to look into. Ideally something that could be done with R.

The business problem: I have historical data on public tenders (i.e. public sector instutions buying goods/services from private contractors through calls for tenders). The data includes variables like:

  • Orderer - i.e. who announced the tender (1 of ~150 municipalities/state insitutions)
  • Type of procurement (1 or more of thousands of industrial classification codes)
  • Estimated value of contract - A numeric value estimating the value of the contract (at a point before the winner is chosen).
  • Winner - i.e. which contractor won the tender (1 of ~2000 private companies)

What I want to do is predict the winner of a tender given the three other variables. It's obviously not a regression problem, and the classification methods I know seem inadequate in handling the problem too. The data are clean and streamlined (no alternate spelling of the different orderer/contractor names, etc.). Any ideas about what to look into?

  • $\begingroup$ You're going to have to elaborate on what "inadequate" means. What you are describing is a multi-class (i.e. not binary) classification problem. That admittedly gets difficult. $\endgroup$
    – CalZ
    Sep 20, 2017 at 11:50
  • $\begingroup$ Right. I guess what I mean is that I'm only familiar binary classification methods. What's more the task of encoding categorical data seems problematic, when there are so many levels in these categories. I.e. it's difficult to evaluate which parameters are significant for the model (looking at the P value). $\endgroup$ Sep 20, 2017 at 12:04

1 Answer 1


Having the classifier try to predict one of 2000 possible values is going to be tough. A common approach is to either bucket the possible targets/labels or decompose the problem. For example:

  • Instead of trying to predict the exact winning company, group the winners into similar groups and predict the group. For example, predict if the winner will be a large public company, small/medium business, or an independent consultant.
  • The nature of procurement probably varies across the buyer and what is being bought. A model that is good at predicting which company will win the business of a Fortune 500 company probably has a different structure than who is good at winning the business of a small city. In a similar fashion, the competition for who is going to build a bridge is going to be different and not include the companies who will bid on implementing a new website. Partition your data into similar competitions and then try to predict the results. This will hopefully have the side effect of reducing the number of potential targets.
  • $\begingroup$ Thanks. You're absolutely right in your assumptions. I guess I thought that this partition would take place "inside the prediction model" if that makes sense? For example. the combination of a specific orderer (some local goverment) and a specific industrial code (e.g. bridge building), should narrow down the field pretty quickly from 2000 possible companies to maybe 10. Then, simply put, the most frequent winner among those 10 would be the most likely winner. So what I need to do is maybe a series of predictions that gradually narrow down the field? $\endgroup$ Sep 20, 2017 at 12:32
  • $\begingroup$ It definitely could happen within the model but there is no guarantee it would if there aren't enough examples for the algorithm to pick that separation up. For example, it might get confused by some large bidders playing in multiple markets and some bidders being single market focused. If the larger bidder is 90% in one market but 10% in another, the algorithm might consider that 10% noise when you know it is simply not popular. $\endgroup$
    – CalZ
    Sep 20, 2017 at 14:11

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.