IterativeImputer
已显示,当只有一列具有空值时会产生很好的结果,但是当多于一列的值都为空时如何填充缺失的值。
鉴于您不能删除列,均值/中位数/众数给出基本结果。
我们可以使用sklearn.Impute.KNNImputer
或fancyimputer.KNN
from fancyimpute import KNN
train_cols = list(train)
train = pd.DataFrame(KNN(k=5).complete(train))
但是如果大多数列中缺少值(例如6/10列中至少有3-60个丢失值(在900个值中))会很好用