问题标签 [percentile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
135 浏览

sql - SQL 百分位数计算

我有以下查询,即使没有大量数据(约 3k 行),执行起来仍然有点慢,而且逻辑有点过头了——希望能得到一些帮助来优化查询甚至替代方法:

PartSalesRankings 表简单地由 CompanyPartNumber(bigint) 组成,它是零件编号指定,PartTotal(decimal 38,5) 是总销售额,以及 Item_Rank(bigint) 是基于总销售额的项目排名。

我试图根据零件的百分位数将零件分类 - 所以“A”项目将是前 5%,“B”项目将是接下来的 15%,“C”项目将是较低的第 80 个百分位。我创建的视图运行良好,执行只需要近三秒钟,就我的目的而言,这非常慢。我将瓶颈缩小到上述查询 - 任何帮助将不胜感激。

0 投票
1 回答
8562 浏览

algorithm - 在 O(n) 时间内计算第 90 个百分位数

可能重复:
你能在 O(n) 摊销复杂度中对 n 个整数进行排序吗?

我必须编写一个算法,给定一个未排序的整数列表,返回“文件中超过文件中至少 90% 的数字的最小数字”,如果不存在这样的数字,则返回 -1。很简单:我使用归并排序对列表进行排序,然后从 90% 的索引处开始,并寻找第一个大于它之前的数字的数字。

问题的第 2 部分让我很困惑。我们得到了更多信息:整数代表薪水,这意味着它们都是正数,其中绝大多数都在 1,000,000 以下。显然,有了这些额外的信息,就可以编写一个在 O(n) 时间内解决原始问题的算法,但我一点也不知道这是怎么可能的。有任何想法吗?

我会发布我到目前为止所做的事情,但我无法提出任何建议。

0 投票
1 回答
3222 浏览

statistics - 加权数据的百分位数计算

我一直在努力寻找一种方法来计算向量 X 的百分位数,给定权重 W 在 W 中连续为零。也就是说,当 W 的一个元素趋于零时,我希望百分位数计算的结果与 X 的相应值没有包含在初始向量中一样。任何人都可以建议尊重此属性的加权百分位数算法吗?谢谢。

0 投票
0 回答
503 浏览

python - 将像素值设置为其在邻域中的百分位数

出于空间分析的目的,我试图设置一个过滤器,对于给定邻域中的像素,给出像素在其邻域中的百分位数(由结构元素定义)。

以下是我迄今为止最好的镜头:

它有点工作,但是: 1. 我确信代码不是真正的最佳,并且可以运行得更快 2. 我邻居的维度是硬编码的。我想要的是footprint根据这个过滤器从它的邻居中更好地识别我正在应用过滤器()的中心像素。

0 投票
2 回答
3311 浏览

algorithm - 用于有效百分位查找的数据结构?

假设您有大量键/值对集合,其中值是任意实数。您有兴趣创建支持以下操作的数据结构:

  • Insert,向集合中添加一个新的键/值对,
  • Delete,从集合中删除一个键/值对,
  • Percentile,它告诉与给定键关联的值在哪个百分位,以及
  • Tell- Percentile ,它接受一个百分位数并返回其值为至少给定百分位数的最小值的键。

例如,可以使用这种数据结构来有效地确定给定学生在接收全国测试分数流时所处的百分位数,或者识别服务质量异常好或差的医院。

有没有办法让这些操作有效地运行(比如,亚线性时间?)

0 投票
2 回答
12311 浏览

oracle - PostgreSQL 等效于 Oracle 的 PERCENTILE_CONT 函数

有没有人发现 PostgreSQL 等效于 Oracle 的 PERCENTILE_CONT 函数?找了找,没找到,就自己写了。

这是我希望对您有所帮助的解决方案。

我工作的公司希望将 Java EE Web 应用程序从使用 Oracle 数据库迁移到使用 PostgreSQL。几个存储过程严重依赖于使用 Oracle 独特的 PERCENTILE_CONT() 函数。这个函数在 PostgreSQL 中不存在。

我试图搜索是否有人将该功能“移植”到 PG 中,但无济于事。

0 投票
2 回答
52867 浏览

function - postgresql中的第n个百分位数计算

令人惊讶的是,我找不到 postgresql 的第 n 个百分位函数。

我通过 mondrian olap 工具使用它,所以我只需要一个返回 95% 的聚合函数。

我确实找到了这个链接:

http://www.postgresql.org/message-id/162867790907102334r71db0227jfa0e4bd96f48b8e4@mail.gmail.com

但由于某种原因,该百分位函数中的代码在某些情况下会返回空值,并进行某些查询。我检查了数据,数据中似乎没有什么奇怪的原因!

0 投票
3 回答
2724 浏览

unix - 使用 awk 获取文件中行的百分位数

我有一个带有数值的排序文件,例如

并希望有一个单行,将一行的百分位数放入最后一列,比如

谢谢你。

0 投票
2 回答
183 浏览

php - MySQL 在给定时间段内找到前 x%

我担心这会很快变得相当复杂,但我想知道显示按“人气”排序的最新“活动”的最佳方法是什么 - 这是“喜欢”或“观点”的衡量标准(甚至可能两者都有,如果可能的话 - 将喜欢计算为 2x 视图?)。

因此,如果我的数据库中充满了带有查看和/或喜欢的帖子,我希望能够显示过去 24 小时内最受欢迎的前 5% 的帖子。

我有 3 个表,一个用于帖子,两个用于喜欢和查看(1 行 = 1 个喜欢/查看)

表 1 = “帖子”

表 2 = "posts_likes"

表 3 =“posts_views”

使用 MySQL + PHP,运行此查询以按其整体计算的受欢迎程度对我的帖子进行排序的最佳方式是什么?

非常感谢,蒂姆

0 投票
2 回答
3025 浏览

c++ - C++ 中的快速百分位数

我的程序计算了风险价值指标的蒙特卡罗模拟。为了尽可能简化,我有:

因此,每日现金流量是一个经验给定的分布函数,需要抽样 365 次。为此,我

我需要对年度现金流进行此模拟,例如 10K 次,以获得一组模拟的年度现金流。准备好每日现金流量的分布函数后,我会像...

两个for周期内的代码都进行线性插值。如果说 1000 美元对应概率 = 0.01,10000 美元对应概率 = 0.1,那么如果我没有 p = 0.05 的经验数,我想通过插值获得 5000 美元。

问题:这段代码运行正确,尽管分析器说程序在插值本身上花费了大约 60% 的运行时间。所以我的问题是,我怎样才能使这项任务更快?VTune 报告的特定行的示例运行时如下:

破折号表示分析器没有报告这些行的运行时间。

任何提示将不胜感激。丹尼尔

编辑: c.fogelklou 和 MSalters 都指出了很大的改进。符合 c.fogelklou 所说的最佳代码是

我拥有的最好的 MSalter 路线是

第二个代码大约是。快 30%。现在,在总运行时间的 95 秒中,最后一行消耗了 68 秒。最后一行只消耗 3.2 秒,因此双 * 双乘法一定是魔鬼。我想到了 SSE - 将最后三个操作数保存到一个数组中,然后执行 this->diffs[i]*dIdx[i] 的向量乘法并将其添加到 this->distro[i] 但这段代码运行了 50%慢点。因此,我想我碰壁了。

非常感谢大家。D.