当前位置: 首页 > 知识库问答 >
问题:

从值和权重流中查找运行加权中值

海叶秋
2023-03-14

样本的加权中值是50%的加权百分位数(更多信息请参见本文@ cross validated )/

我想知道如何扩展算法,以从< code>double值和权重的流中有效地计算加权中值,该算法用于查找此处详述的运行数字流的中值(有两个堆,左边是min堆,右边是max堆)。

我的一个想法是使用与从未加权的数字流计算中位数相同的方法,但如果权重不是一,只需输入额外的值(例如,权重为2的值将入两次)。但是,这不能很好地扩展可以加倍的权重,并且似乎记忆效率低下。

谢谢

共有2个答案

宋飞掣
2023-03-14

我最终实现了一种方法,该方法使用排序数组(基本上起到最小堆的作用,但搜索更容易),并持续跟踪总权重的第50个百分位。我写了一篇关于它的博客文章,其中有更深入的例子。

马泰
2023-03-14

一种具有O(nlogn)复杂度的方法是将节点插入到增强的平衡二叉查找树中。树将按值排序,树中的每个节点将通过一个给出所有子节点总权重的字段来扩充。

插入包括更新所有总权重字段的新节点需要O(logn)。

要查找中间值,您可以根据总权重除以2的目标权重来下降树。此搜索将采用O(logn)。

 类似资料:
  • 有没有办法验证元素Adam Slodowy在Selenium IDE中是粗体的? 这是站点代码片段: ... 我尝试使用verifyEval命令: 命令:验证评估 目标: var elem = window.document.querySelector(“div.thread-content-row.thread-content-row-1 价值:700 但是我不知道如何在querySelecto

  • 给我一个图中名为“a”的顶点,对于v中的每一个v,我需要找到从a到v的路径的权重,它在时间O(v+E)中权重最低。我不得不只使用BFS或DFS(尽管这很可能是BFS的问题)。 我想过要制作一个新的图,其中边为0的顶点是统一的,然后在它上面运行BFS,但是这会破坏图的方向(如果图是无向的或者权重是{2,1},对于边为2,我会创建一个新的顶点)。 如果有任何帮助,我将不胜感激。 谢谢

  • 问题内容: 我正在尝试从我训练的模型中保存和加载权重。 我用来保存模型的代码是。 让我知道这是不正确的方法,还是有更好的方法。 但是当我尝试使用它们加载它们时, 但我得到这个错误: 关于我可能在做错的任何建议吗?先感谢您。 问题答案: Keras提供了三种不同的保存方法。这些在上面(带有示例)以及下面的视频链接中进行了描述。 首先,收到错误的原因是因为您打错电话。 要保存和加载模型的权重,您首先需

  • 问题内容: 示例数据: 我正在尝试获得上述数据的平均评分。 它需要的是每行*的总和除以总数 这是我正在尝试的操作,但给出的结果不正确(49.07,应为98.15): 可以在单个查询中完成吗?我正在使用SQL Server 问题答案: 只需回到加权平均的定义即可,因此使用s和除法: 如果愿意,可以将其转换为小数:

  • 我有一个JPanel,我指定它具有GridBagLayout。我(在纸上)绘制的网格是8x8,我已经按照我希望的方式绘制了所有组件。 对于每个组件,我都指定了它的gridx、gridy、gridwidth和gridheight,但我不确定如何处理weightx和weighty。8x8网格中的所有“单元格”大小相同,但我使用了gridwidth和gridheight来指定每个组件占用的单元格数量,并