用小因子按大因子和小数量表示大数的算法

时间:2018-01-24 21:22:26

标签: algorithm math transform scale venn-diagram

我正在寻找一种算法,该算法可以通过较大的因子来扩展大的异常值,并且仅将一些小的数字缩放(或者使事件保持与之前相同)。我们不必保持准确的比例,但只是一个想法,大数字仍然大于小数字。

E.g。我有一套10,15,200。 我们将min和max分别定义为0和100,并且缩放值应该在该集合内(min和max不是预定义的并且可以调整)。 使用该算法,我们可以将它们缩放到5,6,20。

有关如何扩展此类数字的公式的任何想法?

我的用例是3个重叠集的维恩图的数据。我想保留大集合大于小集合的事实,但是大圆圈不应该比较小集合大20倍。

1 个答案:

答案 0 :(得分:3)

您还没有给出足够详细的信息来提供具体的建议,但总体思路是您希望减少一些重要的数量。通常,我们使用以下内容处理此问题:

  • 平方根(或其他分数根)
  • log(base并不重要;根据需要扩展)
  • arcTan(将结果限制在0-1范围内)

与您的一些不寻常的案例一起玩,看看您喜欢哪些。您发布的示例最接近sqrt的想法。

评论后

更新

如果这用于选择维恩图中的圆的半径,那么sqrt确实是保持大小(来自区域)的认知解释的自然选择。这适用于任何2D缩放 - 但请注意,对于带有着色的图片(暗示 3D)执行此操作表明 cube root将是适当的比例。 (参考:如何欺骗统计数据)。

在输入幅度非常不同的情况下,这有时是不可能的。例如,给定(1,1000,1000000),您可能希望使用更高的根,或更改为记录,只是为了使最小的形状易于处理。