Multi-Target Models that accept NA values in the target variables. #57
Replies: 3 comments 2 replies
-
Hi @FirpoMarberry and thanks for your interest in the project. Using XGBoostLSS to model multi-targets of different types is something that I am very interested in, though I haven't really looked into it. What you are describing is conceptually feasible within the framework, as long as the loss is twice differentiable. XGBoostLSS builds one model for each target/parameter and then calculates the joint loss based on the loss function, from which gradients and hessians are derived. Concerning the NAs: if it is working for a NN-type of model then it is also working for XGBoostLSS. You mention that you want to model the
I am not sure if the above cross-entropy loss would also explicitly model dependencies between the targets, since it does not have a "dependency parameter" that models the co-relation as function of covariates. Since the framework is of probabilistic nature, is there a distributional assumption/density we can sample from? Thanks for your suggestion. |
Beta Was this translation helpful? Give feedback.
-
When I was referring to "Concerning the NAs: if it is working for a NN-type of model then it is also working for XGBoostLSS" I meant that given a proper way to deal with NAs and a loss function to train, XGBoostLSS is able to estimate all parameters. Hence, we first need to have a
Isn't there any PyTorch, Tensorflow or Python implementation that we can use? Not sure if we should use a MVN for a discrete (even after transformation) variable. |
Beta Was this translation helpful? Give feedback.
-
Yes, this essentially has to be done within the
Have you tried looking into copulas? |
Beta Was this translation helpful? Give feedback.
-
This is a really exciting package. Thanks for putting everything together here. I was wondering about multi-target models where we don't know the outcomes of all of the targets.
Suppose some process exists where we want to both model the probability that an agent attempts an event as well as the result of the event. The agent would only attempt the event if they expected a good outcome, so we'd want to model the correlation between the likelihood of an attempt and the quality of the outcome conditional on an attempt.
However if an attempt is not made then we wouldn't know the outcome of the attempt, so it would be NA. Right now including these observations would result in an error. Would it be possible to instead have these observations not be counted when calculating the loss for that target of the observation but still use it for the targets that do have an observation?
This is fairly easy to implement with a neural net in keras via a custom loss function (like the one below) but my particular problem has had much better performance from XGB than from any neural nets I've built.
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions