Let’s say I have tens of thousands of datasets (rows) consisting each of 300 columns of integer, double and strings (no image, no audio). Five of these target columns represent interesting resulting properties (integer) of the product that is represented by of each dataset (row) that I want to predict.

My current idea is to create classes for each target column and combine these classes: column1 has classes 1-5, column2 has also class 1-5… so I get combined target classes in the form “11111”, “15312”, “43151”, “55555”. Now I have only one target-“label” for each dataset (row) that could be the output of an ANN. This approach has at least two disadvantages:

  1. some combined classes have only a small number of datasets and
  2. the binning of each column in only five classes decreases the precision.

If I increase the number classes of each column, I get even a smaller number of datasets in some combined classes.

So my question is if I should go on with the approach or are there better ideas? It is possible to use ANN to predict several properties (i.e. classes) at the same time?


It's quite a weird problem, at least for me... Following your approach you'll end up with $5^5$ classes, which is an intractable problem with typical Neural Networks. You can visist this paper, which shows a solution with mathematical rigour:

I'll also expose three possible naive solutions, awating for people who have faced a similar problem:

  • Convert your 5 columns into binary columns (3 bits for 5 levels) and treat the problem as a multi-label classification with 15 classes https://en.wikipedia.org/wiki/Multi-label_classification.

  • You can fit 5 multi-class models for each column (divide and conquer navie approach, it seems to be the state-of-the art phylosohpy)

  • I've never tried beta-regression, but it would make sense: you can convert your target labels to frequencies of occurrence, think about pruning targets with really low probability. Then, you can perform a preliminary beta regression to predict the occurrence-target. Further on, you may have other classification models depending on the probability given by the beta regressor, let's say 5 models for targets between 0-10%, 10-20% and so on...

  • Treat your problem as a regression problem, but some questions arise: is '11111' truly close to '11112' in your dataset? i.e. are your labels a ordered set?

So my question is if I should go on with the approach or are there better ideas? It is possible to use ANN to predict several properties (i.e. classes) at the same time?

Yes, an ANN can output more than one class for a sample (but will not work in such a large scale):

  • $\begingroup$ Thanks for the hints, I'll have a closer look. Yes, the labels are ordered, so '11111' and '11112' would be close, and '21111', '11121',... would also be close. But remember, I consider these labels as a workaround tranforming the multi-class-problem into a single-class-problem. $\endgroup$
    – tardis
    Aug 20 '19 at 7:30
  • $\begingroup$ Well... I think you are confusing multi-class with multi-label. Single-class problems, which are usually called one-class problems, are problems in which there is only one class. These are the typical anomally detection scenarios. You are trying to convert a multi-label into a single-label: you have several classes but you want to predict only one of them at the same time $\endgroup$
    – ignatius
    Aug 20 '19 at 7:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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