IterativeImputer错误:输入包含NaN,无穷大或对于dtype('float64')而言太大的值

时间:2018-10-22 14:50:00

标签: python-3.x imputation fancyimpute

我正在处理一个属性中缺少几个值的数据集。

已经完成了数据预处理的典型过程,下一步是尝试拟合回归模型以估算缺失值。但是,当我尝试使用IterativeImputer中的fancyimpute时。我遇到此错误:

C:\Users\User.DC241-12\Anaconda3\lib\site-packages\sklearn\linear_model\ridge.py:942: RuntimeWarning: overflow encountered in square
  v = s ** 2
****hierarchy of filenames in which error is happening****
Input contains NaN, infinity or a value too large for dtype('float64')

我知道输入到IterativeImputer的缺失值将表示为NaN,所以我想这不是这里的原因。在进行插补过程之前,我是否应该将数据缩放到。但这会影响插补过程吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我有与此类似的问题。对我来说,问题在于,我输入到仿真器中的某些值非常大(值> 10,000,000),并且具有较大的数据集(500,000+行)。这些大值在IterativeImputer使用的算法中以某种方式复合,并溢出numpy的float64

请尝试按比例缩放值,进行插补,然后在插补完成后再按比例放大(反向执行按比例缩小的过程)。