0

抱歉,这篇文章与编码无关,而与数据结构和算法有关。我有大量数据,每个数据都有不同的频率。近似的图形图似乎是贝尔曲线。我现在想在最准确地描述范围频率的范围内显示数据。例如,整个数据范围的总数没有。频率,但这个范围或桶的大小并不精确,可能会更精确。(例如,如果一些数据更集中在特定的频率区域,我们可能会建立一个数据量较小但具有更密切相关频率的桶。)
有关某些算法的任何帮助。我想到了一种与二进制搜索相关的算法。任何想法的人。

4

2 回答 2

4

不确定我是否在关注,但您似乎正在寻找kbean,对于每两个 bean,数据落在一个 bean 中的概率与它在另一个 bean 中的概率相同。

根据您的描述,您的数据似乎是正态分布的,或T-distributed

可以评估数据的均值和标准差,令提取的 SD 为s,均值为u

用于评估样本平均值和 SD 的标准公式是1

u = (x1 + x2 + ... + xn) / n (simple average)
s^2 = Sigma((xi - u)^2)/(n-1)

鉴于此信息,您可以评估数据的分布,即N(u,s^2). 鉴于此信息,您可以创建一个随机变量:X~N(u,s^2)2

现在剩下的就是找到 a,b,... 如下(假设有 10 个桶,这显然可以根据需要进行修改):

P(X<a) = 0.1
P(X<b) = 0.2
P(X<c) = 0.3
...

找到 a,b,c,... 之后,您就有了 bean: (-infinity,a], (a,b], (a,c], ...


(1) 评估方差:http
://en.wikipedia.org/wiki/Variance#Population_variance_and_sample_variance (2) 这个变量的实际分布实际上是 t 分布,因为方差是未知的 - 并且是从数据中提取的。但是 - 对于足够大的n情况 - t 分布衰减为正态分布。

于 2012-06-05T07:02:10.617 回答
-1

首先计算所有索引,然后减去重复值,这将为您提供最佳桶数。但在小水平

于 2017-05-23T19:20:37.520 回答