【问题标题】:Tracking average number of results per query over time随着时间的推移跟踪每个查询的平均结果数
【发布时间】:2022-01-23 02:44:38
【问题描述】:

这可能更像是一个匹配问题,但由于记录设备的限制而在这里提出。

API 接受一批查询词,每个查询返回 N 个结果。 N 是一个非负整数。

例如: 请求 1 包含 100 个查询词,其中前 3 个返回 2 个匹配项。

[0] = 2 results,
[1] = 2,
[2] = 2,
[3] = 0,
...
[99] = 0

所以每个查询的平均结果 =(2 个结果 x 3 个查询)/100 个查询 = .06,我记录了。

我想不通的问题是如何在后续请求中准确平均。例如,请求 2 包含一个查询并返回一个结果,因此每个查询 1/1 = 1 个结果。

我每个查询的平均结果现在如下所示:(.06 + 1) / 2 = .53,我认为这不准确。如何对第一个请求进行加权以获得准确的数据点,然后可以在方程式中使用该数据点来跟踪一段时间内每个查询的平均结果?

【问题讨论】:

    标签: math logging newrelic


    【解决方案1】:

    您可以通过查询词的数量来衡量它们吗?那么它将是 (100 * .06 + 1 * 1) / (100 + 1) = .069。

    或者简单地说 (6 + 1) / (100 + 1) = .069。但这当然取决于您认为“正确”的平均值。

    r = nResults1 + nResults2 + ... 
    = nQueryTerms1 * avgResultsPerQuery1 + nQueryTerms2 * avgResPerQuery2 + ...
    
    q = nQueryTerms1 + nQueryTerms2 + ...
    
    avg = r / q
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 2022-06-16
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      相关资源
      最近更新 更多