[英]Algorithm to scale large numbers by large factor and small numbers by small factor
我正在寻找一种算法,它可以通过一个很大的因子来扩展一个大的异常值,并且只对一些小的数字进行缩放(或者事件保持它们与以前相同)。 我们不必保持准确的比例,但只是一个想法,大数仍然大于小数。
例如,我有一个10,15,200的集合。让我们将min和max分别定义为0和100,并且缩放值应该在该集合内(min和max不是预定义的并且可以调整)。 使用该算法,我们可以将它们缩放到5,6,20。
关于如何扩展这些数字的公式的任何想法?
我的用例是3个重叠集的维恩图的数据。 我想保留大集合大于较小集合的事实,但是大圆圈不应该比较小集合大20倍。
你没有提供足够的细节来给出具体的建议,但总的想法是你想要一些显着的减少。 通常,我们使用以下内容处理此问题:
与您的一些不寻常的案例一起玩,看看你喜欢哪些。 您发布的示例最接近sqrt的想法。
评论后更新
如果这用于选择维恩图中的圆的半径,那么sqrt
确实是保持大小(来自区域)的认知解释的自然选择。 这适用于任何2D缩放 - 尽管注意到对具有着色( 隐含 3D)的图片执行此操作表明立方根将是适当的比例。 (参考:如何欺骗统计数据)。
在输入具有非常不同的幅度的情况下,这有时是不可能的。 例如,给定(1,1000,1000000),您可能希望使用更高的根,或更改为日志,只是为了使最小的形状易于处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.