用KNN进行数据插补,软插补

2024-09-23 08:24:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用MICE、KNN和软插补对FANYIMPUTE软件包中的插补值进行比较,然而,当我运行代码时,KNN和软插补只为我的值插补0,而MICE插补的值更为敏感。在

imputed_numerical=train[['Age']].select_dtypes(include='number']).as_matrix()

Age_MICE=MICE().complete(imputed_numerical)
Age_KNN=KNN(k=3).complete(imputed_numerical)
Age_SoftImpute=SoftImpute().complete(imputed_numerical)

我把结果放在一个数据帧中,如下所示:

^{pr2}$

问:为什么KNN和软插补只插补0作为完成值?在


Tags: 代码numberageincludetrainnumericalselectcomplete
1条回答
网友
1楼 · 发布于 2024-09-23 08:24:46

问题是这些都是多变量过程,但您只使用一个变量(列)。MICE执行多元回归,KNN取最接近多维空间中缺失值的N个邻域的平均值(每个维度都是一个变量),我不确定软插补,但它可能也是一个多元过程。在

例如,请参阅knn程序中的以下警告消息:

[KNN] Warning: 3/20 still missing after imputation, replacing with 0

或者来自SoftImpute的警告:

^{pr2}$

相关问题 更多 >