我正在尝试找到一致标准化的最佳方法。

基本上我有一定数量的实例,每个实例都有一定数量的带有 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 个可能的间隔我会为该属性设置大量不必要的间隔,并且会浪费大量空间...

有什么建议么?

最佳答案

我认为您是在询问 encodingcompression ,或者更具体地说,如何找到实数到整数的 1-1 映射。

Huffman encoding 可能是最著名的,并且可以证明是最小的(用您的术语来说,浪费的间隔数量最少)。 Range encoding 也很受欢迎。

关于math - 在不失去一致性的情况下将数据从 double 映射到整数的最简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4422442/

10-16 08:42