我正在尝试找到一致标准化的最佳方法。
基本上我有一定数量的实例,每个实例都有一定数量的带有 float 值的属性:
例如:
At1 At2 At3
0.1 0.3 3.0
0.1 4.5 2.1
...
我想将每个属性映射到整数值,试图与数据保持一致。
例如,我尝试简单地,对于每个属性,除以该属性的最大值和最小值之间的差异,将其划分为任意值,例如 10,然后将每个属性的所有 double 值映射到它的索引相应的间隔,通过这样做,将我的属性标准化为 1 到 10 之间的整数值......
但是我想要一种方法,它可以为每个属性使用尽可能短的间隔数而不会失去一致性,例如,如果我有一个具有三个可能值的属性:1.2、3.5 和 223.3 通过我的方法使用例如 10 个可能的间隔我会为该属性设置大量不必要的间隔,并且会浪费大量空间...
有什么建议么?
最佳答案
我认为您是在询问 encoding 的 compression ,或者更具体地说,如何找到实数到整数的 1-1 映射。
Huffman encoding 可能是最著名的,并且可以证明是最小的(用您的术语来说,浪费的间隔数量最少)。 Range encoding 也很受欢迎。
关于math - 在不失去一致性的情况下将数据从 double 映射到整数的最简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4422442/