【发布时间】:2020-03-11 15:18:51
【问题描述】:
在 python 中实现迭代 imputer 时,出现内存错误。 python 中的迭代插补器(类似于 R 中 MICE 技术的实现)将一行中的每个缺失值视为因变量,并将该行中的所有其他特征视为自变量。然后它对自变量应用回归并计算每一行中因变量的缺失值。因此,不是用平均值、中位数等替换缺失值,而是使用回归技术用合成值填充缺失值
X_train
Col1 Col2 Col3 Col4 ...........Col100
X_train 有 100 列,250k 行。
代码
from sklearn.experimental import enable_iterative_imputer
# now you can import normally from sklearn.impute
from sklearn.impute import IterativeImputer
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.linear_model import BayesianRidge
import random
imputer = IterativeImputer(BayesianRidge())
impute_data = pd.DataFrame(imputer.fit_transform(X_train))
错误
MemoryError Traceback (most recent call last)
<ipython-input-71-4b5dc3d8a845> in <module>
1 imputer = IterativeImputer(BayesianRidge())
----> 2 impute_data = pd.DataFrame(imputer.fit_transform(X_train))
我在实现 IterativeImputer 时遇到内存错误
环境
- Python 3.7
- Jupyter 笔记本
- Anaconda 导航器
- 联想 8GB RAM 笔记本电脑
- 英特尔 CORE i5 第 8 代处理器。
- GPU 未使用(scikit 不支持 GPU)
【问题讨论】: