我正在处理一个属性中缺少几个值的数据集。
已经完成了数据预处理的典型过程,下一步是尝试拟合回归模型以估算缺失值。但是,当我尝试使用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
,所以我想这不是这里的原因。在进行插补过程之前,我是否应该将数据缩放到。但这会影响插补过程吗?
谢谢!
答案 0 :(得分:0)
我有与此类似的问题。对我来说,问题在于,我输入到仿真器中的某些值非常大(值> 10,000,000),并且具有较大的数据集(500,000+行)。这些大值在IterativeImputer使用的算法中以某种方式复合,并溢出numpy的float64
。
请尝试按比例缩放值,进行插补,然后在插补完成后再按比例放大(反向执行按比例缩小的过程)。