I think this is a version I made some improvements to long ago here: https://bigfix.me/relevance/details/2996922
Related: https://bigfix.me/analysis/details/2994751
There are definitely some refinements needed for this and the Physical vs Virtual property.
See here: Best way to determine physical vs virtual
It takes a lot of effort to get all the different potentially useful raw data and test that against a large enough set of different models.