My understanding of your sample data is that you have X1, X2 as predictors, and two things you want to predict: whether target will be 0 or 1, and how many months before that result happens.
So, one approach is to train two models. One to predict how long before you get a result, and one to predict what that result will be.
Note: "target" would not be used as a predictor in the model predicting "months", and "months" would not be used in the model predicting "target", as you don't know either in advance. Each model only uses the same X predictors.
You left your question very abstract, so a real-world example would be sales contracts for a company. You have various X predictors, such as size of company, size of contract, expected profit margin, what type of service/product is being negotiated, etc. And sometimes these contracts take 1 month to be decided and negotiated, and sometimes they take 10 months. E.g. The bigger the company the longer they take to decide. And at the end of that decision period, you get the contract, or someone else does. E.g. the better the profit margin the more competitive bids, so the less chance of you getting it.
UPDATE BASED ON Q IN COMMENT
The glib answer is that based on your example data the probability of having the outcome 1
within a month is 0.0
, as it has never been seen. No need to train a model.
Anyway, one way to use two models together is run both. If it predicts a result of 1
AND predicts a time span of less than or equal to one month, that is a 1.0, and anything else is a 0.0.
If the models give you probabilities as well then you could multiply the result from each model, to get a probability. E.g. if it says probability of a 1
is 0.6, 0
is 0.4, and probability of 1 month is 0.4
, probability of 2 months is 0.3
, and sum of probs of all longer periods is the other 0.3, then the probability of a 1
within one month is 0.6 * 0.4 = 0.24
.
The other approach, if that is all you care about, is to modify your training data. Remove both the target
and time
columns, and add a new target column that is 1
when target=1 AND time <= 1 month
and 0
for all other rows.
Then train a single model on that.