【问题标题】:IterativeImputer error: Input contains NaN, infinity or a value too large for dtype('float64')IterativeImputer 错误:输入包含 NaN、无穷大或对于 dtype('float64') 而言太大的值
【发布时间】:2019-03-26 16:39:48
【问题描述】:

我正在处理一个属性中存在多个缺失值的数据集。

完成数据预处理的典型过程后,我的下一步是尝试拟合回归模型以估算缺失值。但是,当我尝试使用来自fancyimputeIterativeImputer 时。我遇到了这个错误:

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 的缺失值将表示为NaNs,所以我想这不是这里的原因。在传递到插补过程之前,我是否应该将我的数据缩放到。但这不会影响插补过程吗?

谢谢!

【问题讨论】:

  • 显示重现此错误的代码和数据示例。

标签: python-3.x imputation fancyimpute


【解决方案1】:

我遇到了类似的问题。对我来说,问题是我输入到 imputer 的一些值非常大(值 > 10,000,000)并且有一个大数据集(500,000+ 行)。这些大值在 IterativeImputer 使用的算法中以某种方式复合,并溢出 numpy 的float64

尝试按比例缩放您的值、进行估算,然后在估算完成后按比例放大(与按比例缩小的过程相反)。

【讨论】:

  • 谢谢。我会试试这个。
猜你喜欢
  • 2019-10-11
  • 2017-09-06
  • 2019-06-01
  • 2019-11-27
  • 2021-05-27
  • 2017-02-19
  • 2018-02-12
  • 2016-03-25
  • 2017-11-23
相关资源
最近更新 更多