我正在工作用户行为项目。基于用户交互,我得到了一些数据。有一个很好的序列,随着时间的流逝平滑地增加和减少。但是几乎没有差异,这是非常糟糕的。请引用下图:

您还可以在这里找到数据:

2.0789 2.09604 2.11472 2.13414 2.15609 2.17776 2.2021 2.22722 2.25019 2.27304 2.29724 2.31991 2.34285 2.36569 2.38682 2.40634 2.42068 2.43947 2.45099 2.46564 2.48385 2.49747 2.49031 2.51458 2.5149 2.52632 2.54689 2.56077 2.57821 2.57877 2.592.4 2.252.5 2.456.92.52 2.5982.954.52 2.59824 2.502.922.529 2.502.922.529 2.502.922.529 2.502.922.529 2.502.922.529 2.502.922.529 2.502.922.529 2.502.922.52 2.98524 2.26583 2.24054 2.2135 2.19678 2.16366 2.13945 2.11102 2.08389 2.05533 2.02899 2.00373 1.9752 1.94862 1.91982 1.89125 1.86307 1.83539 1.80641 1.77946 1.75333 1.72765 1.70417 1.68106 1.65971 1.64032 1.62386 1.6034 1.5829 1.56022 1.54167 1.241.7 1.513291.511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.711.2511.5112911.512.91.51.59251 1.6851.71.2511.71 1.6851.7127。 1.87731
1.89895 1.91676 1.92987

我想简化此顺序。该技术应该能够消除具有X和Y特征的数字,即单递增或单递减的误差。

如果不能消除,则技术应该能够移动它们,以使序列不受错误影响。

我尝试过的和失败的:

  • 我试图测试值之间的差异。在某些特殊情况下,它可以工作,但是对于这种序列,数字之间的距离并不足以消除错误
  • 我尝试应用一个计数器,它是一些X,然后仅接受更改,否则点仅映射到先前的点。在这里,我很难确定X的值,因为这是基于用户交互的,我并不是它的真正控制者。如果用户交互使它的绘制成为锯齿形,那么我将得出“根本没有检测到用户移动数据”的情况。

  • 请分享您所知道的技术。

    PS:此示例中提供的数据是特殊情况。没有出现数字的典型模式,但是我们希望所有示例在一定范围内是连续的。我正在寻找的解决方案是通用的。

    最佳答案

    由于您无法决定截止频率,甚至无法决定要使用的滤波器,因此我将实现多个,并让用户设置参数。

    我想到的第一件事是running average,您可以看到要设置很多东西以获得不同的输出。

    10-08 11:56