For more information on log/linear quantization, see this blog post.
To summarize: log/linear quantization addresses the problem of using the wrong aggregation resolution, which leads to "clogging the system with unnecessarily fine-grained data, or discarding valuable information in overly coarse-grained data".
It does this by logarithmically aggregating by order of magnitude, but linearly aggregating within an order of magnitude.
var llquantize = require('llquantize')
, llq = llquantize()
// Input some data points.
llq(0.54); llq(0.55)
llq(2); llq(3)
llq(12); llq(14)
llq(24)
llq(124); llq(199)
// Get the accumulated data.
llq()
// =>
// { "0.5": 2
// , "2": 1
// , "3": 1
// , "10": 2
// , "20": 1
// , "100": 2
// }
As you can see, the closer to zero the data points approach, the greater the precision used to track/group them (and vice-versa).
Arguments:
bucket_size
- The factor by which the bucket size should increase. (i.e. the first bucket will have the sizebucket_size
, the next will bebucket_size^2
...)steps
- The number of divisions per bucket,
$ npm install llquantize
MIT