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.


1 Answer 1


This is known as "3D Bin Packing Problem" in literature.


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

  1. Heuristics : https://www.researchgate.net/publication/226249396_A_New_Heuristic_Algorithm_for_the_3D_Bin_Packing_Problem
  2. Deep Reinforcement Learning : https://arxiv.org/abs/1708.05930
  3. Ensemble : https://medium.com/@alitech_2017/alibabas-ai-solution-for-the-3d-bin-packing-problem-3ce66d730ecc
  • 1
    $\begingroup$ Well, we aren't trying to find the optimal way to pack bins. We're asking, if a human packs a number of items into a bin, what will be the size of the bin based on past data? The past data of course is messy, too, and we don't always have reliable data on object size. It would be ideal to say "In the past, we've had three widgets and two trinkets, and the box size is typically LxWxH." Although this is a useful approach to the problem I'll consider. $\endgroup$
    – Slothario
    Commented Mar 8, 2019 at 19:09
  • $\begingroup$ Actually, come to think of it, I believe a useful approach would be to run a bin packing algorithm on the input data but make it configurable by a few parameters (like padding, alternate placements, etc). And then I could create a cost function that I would try to minimize so that my bin packing algorithm matches the data available as closely as possible. Is that kind of what you're suggesting? $\endgroup$
    – Slothario
    Commented Mar 8, 2019 at 19:12
  • $\begingroup$ You need to know object's size to perform bin packing. Here we want to extract that knowledge from the data and use it to predict boxes for other item combinations. $\endgroup$ Commented Dec 4, 2019 at 8:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.