How to predict multiple regressions from a model?

I’m not sure if I’m phrasing this right, but what I’m attempting to do is to predict five values from a single model that are continuous (e.g., predict the number of assists, blocks, points, rebounds, and steals for a given basketball player).

I’m thinking that the right approach would be to treat this like a multi-label classification problem except that instead of using binary cross entropy, I’d just use MSE as the loss function.

If anyone has done this I’d love to know if my approach makes sense, and if not, what would.

1 Like

Maybe a starting approach would be a network for each variable. You would train a model for number of assists, a model for number of blocks and so on. Using a plain MSE as loss function in a “multi-regression” layer could be problematic since the variables are on different scales. Do you have many attributes to predict?

Yes, 50+ attributes and perhaps more after feature engineering

I don’t know if this is the best idea for this context - it’d be ideal to have the weights be shared across the networks, i.e. use the same network for predicting the outputs.

I agree. I have this same problem and if I come up with somethig I will tell you.

I’m also interested in this type of task. In the literature they call it multi-task learning and the idea is that by requiring the network to predict multiple related targets, it’s forced to learn the relationship and interactions more deeply. So that in some cases, using 5 related targets even when you only care about 1 can actually significantly improve the prediction on that 1 target compared to only predicting on that target alone.

2 Likes

I think the head pose notebook has hints. But that is a dataset unlike most use cases. It would be awesome if we could get an example where data are loaded from a pandas data frame. First column is file name of image, second column is target 1, third column is target 2.