Estimating box size from the contents I'm currently on week 4 of my Coursera course on ML, so I have much to learn about data science. However, I got the opportunity to apply what I've learned at work, and I'd like some guidance. Our company ships random objects to customers in boxes. We'd like to be able to estimate how big boxes will be, given the random objects inside. 

Here's an example of the input data:

box # | contents                          | box size
----- | --------------------------------- | ---------
1     | a widget, a doodad, and a trinket | 20x12x8
2     | 3 widgets                         | 12x12x12


However, our list of items has a long tail. I did a count of total items shipped by object type, ordered by count descending. Here's the result:

rank | object count | object type
---- | ------------ | -----------
1    | 500,000      | doodad
2    | 350,000      | trinket
3    | 300,000      | widget
---  | snip         | ---
50   | 6,000        | whatyoumacallits
---  | snip         | ---
300  | 5            | quarts of blinker fluid


Etc. By item number 340, the count is 1, and there are 360 distinct items. I think one way to approach this at first would be to only consider the top 50 items, and try to do a simple polynomial regression with 50 features to estimate L, W, and H (assuming each variable is less than the previous one). 

It won't be 100% accurate, but it will be better than wild guesses. But is there a better way to do this? Any advice is much appreciated.
This is known as "3D Bin Packing Problem" in literature.

https://en.wikipedia.org/wiki/Bin_packing_problem

Since this is NP-Hard; Some of the approaches  are :


Heuristics : https://www.researchgate.net/publication/226249396_A_New_Heuristic_Algorithm_for_the_3D_Bin_Packing_Problem
Deep Reinforcement Learning : https://arxiv.org/abs/1708.05930
Ensemble : https://medium.com/@alitech_2017/alibabas-ai-solution-for-the-3d-bin-packing-problem-3ce66d730ecc