我有一个timeseries dataset
和5M rows
。
该列具有19.5% missing values
,80% zeroes
(不要使用百分比值-尽管这意味着仅0.5%的数据有用,但是0.5M的5M足够了)。现在,我需要估算此专栏。
鉴于行数,KNN将整个事情归咎于大约需要2.5个小时。
为了使其更快,我想到了删除所有零值行,然后执行插补过程。但是我觉得在此之后使用KNN [[naively]会导致高估(由于所有零值都消失了,并且邻居数保持固定,因此期望均值会增加)。
所以,有没有办法:为了更清楚地理解问题,请考虑以下虚拟数据帧:
DATE VALUE
0 2018-01-01 0.0
1 2018-01-02 8.0
2 2018-01-03 0.0
3 2018-01-04 0.0
4 2018-01-05 0.0
5 2018-01-06 10.0
6 2018-01-07 NaN
7 2018-01-08 9.0
8 2018-01-09 0.0
9 2018-01-10 0.0
[现在,如果我使用,该值将使用KNN (k=3)
,则为零,该值将是0
,10
和9
的加权平均值。但是,如果我删除零naively
8
,10
和9
的加权平均值进行估算。 我想到但无法实现的一些粗略想法如下:1.
和2.
只是在思考如何解决问题时想到的粗略想法,可能在回答答案时会有所帮助。PS-
month
,day
等,然后将其用于插补。不需要并行处理作为答案