# How to train a model when instead of a target we have a range where it is?

Often in machine learning we have a situation when target is numeric (real or integer). Each target comes with an associated input vector. The goal is to learn the mapping from the input vectors to the target. For example:

(1.2, 'A', 3) -> 4.0
(3.2, 'C', 2) -> 1.0
...
(0.8, 'A', 2) -> 5.0
(5.7, 'B', 7) -> 1.0


However, in some cases we do not know the target. We only know that is larger or smaller that a certain value. For example:

(1.2, 'A', 3) -> >3.0
(3.2, 'C', 2) -> =1.0
...
(0.8, 'A', 2) -> >3.0
(5.7, 'B', 7) -> =1.0


In the above example, we know that for the first vector the target is larger than 3.0, but we do not know what exactly it is.

How should one consider the above described situation? Are there standard method to do it?

• Have you thought about encoding certain value with one output, and sign(greater, less, equal) with another output? E.g. ">3" -> (3, 0), "=3" -> (3, 1), "<3" -> (3, 2) – 404pio Mar 24 '15 at 10:53
• @frankov, in the end I would like to have an estimator that gives me an number (mean) or probability density but not the ranges (as in input for the training). – Roman Mar 24 '15 at 10:57
• Do you have some "strong" 3's and some "weak" 3's, or are they all weak? Do the ranges vary? – shadowtalker Mar 24 '15 at 11:38
• @ssdecontrol, I have both "strong" and "weak" 3's. I have also other numbers that can be strong or weak. For example i have the following: [=1, >3, =7, >2, >1, =7, =8, >4]. It means that some cases we know the exact target in other cases we only know the "lower bound". – Roman Mar 24 '15 at 12:06
• What about the prediction? Is the prediction output again a target range or a specific target value (classic)? – Vladislavs Dovgalecs Mar 24 '15 at 17:40