0

我试图关注 https://pypi.org/project/fancyimpute/

# print mean squared error for the four imputation methods above
ii_mse = ((X_filled_ii[missing_mask] - X[missing_mask]) ** 2).mean()
print("Iterative Imputer norm minimization MSE: %f" % ii_mse)

nnm_mse = ((X_filled_nnm[missing_mask] - X[missing_mask]) ** 2).mean()
print("Nuclear norm minimization MSE: %f" % nnm_mse)

softImpute_mse = ((X_filled_softimpute[missing_mask] - X[missing_mask]) ** 2).mean()
print("SoftImpute MSE: %f" % softImpute_mse)

knn_mse = ((X_filled_knn[missing_mask] - X[missing_mask]) ** 2).mean()
print("knnImpute MSE: %f" % knn_mse)

什么是missing_mask,如何从缺少值的数据框中获取它?

4

1 回答 1

1

丢失的掩码是一个布尔数组或一组索引,其中您的数据丢失了。例如,假设您有一个包含一些缺失值的数组,如下所示。

[ 1 2] [ 3 不适用]

丢失的掩码将是另一个布尔数组,其中条目为 True 在您的数据丢失的地方。在这种情况下,它将是:

[假假] [假真]

请参阅此页面了解 pandas 中的相关功能。https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mask.html

如果要在原始数据集上创建缺失掩码,可以使用 df.isna() 或 df.isnull()。

但是,在您的情况下,此过程无关紧要。您已经有了缺失值的数据集。只需在这个数据集上运行插补。FancyImpute 手册中的缺失掩码仅适用于您可能想要计算性能指标或人为创建具有缺失值的数据集然后执行插补。

希望这是有帮助的,祝你好运!

于 2019-03-13T18:29:20.033 回答