【问题标题】:Too many data points in set. Looking for ways to prune集合中的数据点太多。寻找修剪方法
【发布时间】:2011-01-02 18:53:22
【问题描述】:

我正在从网站收集数据。我估计随着时间的推移会得到 10.000 个数据点(时间 - 值)乘以 7。那是太多了。用于在实时相似的图形中存储和绘制它(通过 jQuery flot)。 我正在寻找处理此类问题的文本。更准确地说:算法、寻找最不重要点的统计数学(如果这是个好主意的话)、处理这类问题的一般思路。如果网上有文字,那就太好了。参考一本书也可以。

【问题讨论】:

  • 这似乎更像是一个数学/统计问题,而不是编程问题。试试数学溢出。
  • 我正在寻找一种算法来解决问题。提供一个开源的 JavaScript 解决方案也可以。这对我来说是一个现实生活中的编程问题。
  • 时代有多精细?每天2个?每天 100 个?
  • 这取决于用户。这是一个网络游戏。我希望用户每天最多获得 5 次统计信息。我需要做的是拆分这七个统计数据,给它们自己的时间表。然后我预计大多数收益为零,个人统计收益为一到五。这将使我需要存储的数据翻倍;(但这给了你一个想法。也不需要存储每个数据点。

标签: javascript jquery graph statistics


【解决方案1】:

阅读 Wikipedia 上的 apha beta 修剪文章,我想到了这个想法: 最不重要的点是发生最小变化的点。在数据数组中,arr[i-1]arr[i+1] 之间的差异。然后很容易找到i

var smallest = 10000; // large to start with
var rememberI = 0;
function prune(arr){
    for(i in arr){
        if(i > 0 && i < arr.length){
            var test = arr[i+1] - arr[i-1];
            if(test < smallest){
                smallest = test;
                rememberI = i;
            }
        }
    }
    return rememberI;
}

我还没有对其进行测试,但它看起来是一个很有前途的想法。

【讨论】:

  • 我在另一个 -similar- 数据流上对此进行了测试。它似乎工作得很好。它已经修剪了时间线,现在它开始修剪最近添加的数据点,因为它们一个接一个地接近(那里没有太大变化)。
猜你喜欢
  • 1970-01-01
  • 2017-06-02
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
相关资源
最近更新 更多