出处:ARIMA模型用predict函数预测数值的时候报错
原因:使用pandas的Datetime时间索引的数据进行训练和预测时,时间间隔(采样频率)不规律
理论上的解决方法:创造完整的时间序列索引,使用插值法填充缺失值,使时间间隔规律化并且没有缺失值。创造完整时间序列的代码上一篇文章有。我的缺失值巨多,难办。
现在实验一下上述解决方法:
# 使用前向填充方法填充缺失值
data = data.fillna(method='ffill')
# 对缺失值进行线性插值
data['比差(%)'] = data['比差(%)'].interpolate(method='linear')
填充完毕,运行代码,出现下面问题:
numpy.core._exceptions.MemoryError: Unable to allocate 712. MiB for an array with shape (27, 3455773) and data type float64
指的是这个错误是由于内存不足,导致无法为形状为(27, 3455773)和数据类型为float64的数组分配712MB的内存。这通常是由于处理大型数据集或创建大型数组时发生的。
搜了下解决方法:
-
减小数组大小:您可以考虑减少数组的大小或使用更小的数据类型。例如,如果您将数据类型从float64更改为float32,则数组大小将减半。
-
增加系统内存:如果您的系统内存较小,则可以添加更多内存,以便可以分配所需的内存。
-
使用分块方法:您可以使用分块方法来处理大型数组而不需要将整个数组加载到内存中。这涉及将数组分成较小的块并逐个处理每个块。
-
使用分布式计算:如果您有多台计算机,则可以将计算任务分配给多台计算机并使用分布式计算。
后面试了下,可以跑得动,程序没错,只是内存不够。